"""
Marks a field as introduced in a specific version. Fields with a version higher than the current one will return null.
"""
directive @gl_introduced(
  """The version when this field was introduced (e.g. '18.1.0')"""
  version: String!
) on FIELD | INLINE_FRAGMENT

directive @granularScope(
  """Granular scope permissions required to access the field or type."""
  permissions: [String!]!

  """
  The type of authorization boundary (project, group, user, instance). Used for
  validation and documentation of the permission boundary.
  """
  boundaryType: PermissionBoundary!

  """
  Method name to call on the resolved object to extract the authorization
  boundary (Project/Group). Use when the object is already resolved (fields on
  types, nested fields).
  """
  boundary: String

  """
  Argument name containing the authorization boundary (path or GlobalID). Use
  for mutations and query fields where the boundary is passed as an argument.
  """
  boundaryArgument: String

  """
  When true, this directive only verifies the token is scoped to the boundary
  (read_boundary), without enforcing the listed permissions. Use for entry-point
  fields like Query.group(fullPath:) where downstream fields enforce the real
  permissions. Only applies to project and group boundary types. All other
  boundary types fall back to the regular permission check.
  """
  traversal: Boolean
) on FIELD_DEFINITION | OBJECT

"""
Requires that exactly one field must be supplied and that field must not be `null`.
"""
directive @oneOf on INPUT_OBJECT

"""Exposes a URL that specifies the behavior of this scalar."""
directive @specifiedBy(
  """The URL that specifies the behavior of this scalar."""
  url: String!
) on SCALAR

"""An abuse report"""
type AbuseReport {
  """Global ID of the abuse report."""
  id: AbuseReportID!
}

"""
A `AbuseReportID` is a global ID. It is encoded as a string.

An example `AbuseReportID` is: `"gid://gitlab/AbuseReport/1"`.
"""
scalar AbuseReportID

"""
Represents the Geo replication and verification state of a abuse_report_upload
"""
type AbuseReportUploadRegistry {
  """ID of the Abuse Report Upload."""
  abuseReportUploadId: ID!

  """
  Indicate if the checksums of the AbuseReportUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the AbuseReportUploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this AbuseReportUploadRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the AbuseReportUploadRegistry"""
  id: ID!

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

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

  """Indicate if the AbuseReportUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the AbuseReportUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the AbuseReportUploadRegistry is resynced"""
  retryAt: Time

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

  """Sync state of the AbuseReportUploadRegistry"""
  state: RegistryState

  """The local checksum of the AbuseReportUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the AbuseReportUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the AbuseReportUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the AbuseReportUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the AbuseReportUploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of AbuseReportUploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the AbuseReportUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the AbuseReportUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for AbuseReportUploadRegistry."""
type AbuseReportUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

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

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

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

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

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

"""
Represents the access level of a relationship between a User and object that it is related to
"""
type AccessLevel {
  """Human-readable display name for the access level."""
  humanAccess: String

  """Integer number of the access level."""
  integerValue: Int

  """Enum string of the the access level."""
  stringValue: AccessLevelEnum
}

"""Representation of a GitLab deploy key."""
type AccessLevelDeployKey {
  """Expiration date of the deploy key."""
  expiresAt: Date

  """ID of the deploy key."""
  id: ID!

  """Title of the deploy key."""
  title: String!

  """User assigned to the deploy key."""
  user: AccessLevelUser!
}

"""The connection type for AccessLevelDeployKey."""
type AccessLevelDeployKeyConnection {
  """A list of edges."""
  edges: [AccessLevelDeployKeyEdge]

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

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

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

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

"""Access level to a resource"""
enum AccessLevelEnum {
  """No access."""
  NO_ACCESS

  """Minimal access."""
  MINIMAL_ACCESS

  """Guest access."""
  GUEST

  """Planner access."""
  PLANNER

  """Reporter access."""
  REPORTER

  """Security manager access."""
  SECURITY_MANAGER

  """Developer access."""
  DEVELOPER

  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER

  """Admin access."""
  ADMIN
}

"""Representation of a GitLab group."""
type AccessLevelGroup {
  """Avatar URL of the group."""
  avatarUrl: String

  """ID of the group."""
  id: ID!

  """Name of the group."""
  name: String!

  """Parent group."""
  parent: AccessLevelGroup

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

interface AccessLevelInterface {
  """Returns true when tag rule is for tag immutability. Otherwise, false."""
  immutable: Boolean!

  """
  Minimum GitLab access level required to delete container image tags from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can delete tags. 
  """
  minimumAccessLevelForDelete: ContainerProtectionTagRuleAccessLevel

  """
  Minimum GitLab access level required to push container image tags to the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can push tags. 
  """
  minimumAccessLevelForPush: ContainerProtectionTagRuleAccessLevel
}

"""Representation of a GitLab user."""
type AccessLevelUser {
  """URL of the user's avatar."""
  avatarUrl: String

  """ID of the user."""
  id: ID!

  """
  Human-readable name of the user.
  Returns `****` if the user is a project bot and the requester does not have permission to view the project.
  
  """
  name: String!

  """User's public email."""
  publicEmail: String

  """Username of the user."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""Granular scope applied to an access token."""
type AccessTokenGranularScope {
  """Access configured on a granular scope."""
  access: AccessTokenGranularScopeAccess!

  """Namespace of the granular scope."""
  namespace: Namespace

  """List of permissions of a granular scope."""
  permissions: [AccessTokenPermission!]

  """
  Project of the granular scope, when the scope targets a specific project.
  """
  project: Project
}

"""Access configured on a granular scope."""
enum AccessTokenGranularScopeAccess {
  """
  Grants access to resources belonging to all personal projects of a user.
  """
  PERSONAL_PROJECTS

  """
  Grants access to resources belonging to all groups and projects the user is a member of.
  """
  ALL_MEMBERSHIPS

  """
  Grants access to resources belonging to selected groups and projects the user is a member of.
  """
  SELECTED_MEMBERSHIPS

  """Grants access to standalone user-level resources."""
  USER

  """Grants access to standalone instance-level resources."""
  INSTANCE
}

"""Legacy scope applied to an access token"""
type AccessTokenLegacyScope {
  """Value of the scope."""
  value: String!
}

"""Permission that belongs to a granular scope."""
type AccessTokenPermission {
  """Action of the permission."""
  action: String!

  """List of resource types that the permission can be applied to."""
  boundaries: [PermissionBoundary!]!

  """Permission category."""
  category: String!

  """Display name of the permission category."""
  categoryName: String!

  """Description of the permission."""
  description: String!

  """Name of the permission."""
  name: String!

  """Resource of the permission."""
  resource: String!

  """Description of the resource."""
  resourceDescription: String!

  """Display name of the resource."""
  resourceName: String!
}

"""Values for sorting access tokens."""
enum AccessTokenSort {
  """Sort by created_at in descending order."""
  CREATED_DESC

  """Sort by created_at in ascending order."""
  CREATED_ASC

  """Sort by updated_at in descending order."""
  UPDATED_DESC

  """Sort by updated_at in ascending order."""
  UPDATED_ASC

  """Sort by expires_at in descending order."""
  EXPIRES_DESC

  """Sort by expires_at in ascending order."""
  EXPIRES_ASC

  """Sort by last_used_at in descending order."""
  LAST_USED_DESC

  """Sort by last_used_at in ascending order."""
  LAST_USED_ASC

  """Sort by ID in descending order."""
  ID_DESC

  """Sort by ID in ascending order."""
  ID_ASC

  """Sort by name in descending order."""
  NAME_DESC

  """Sort by name in ascending order."""
  NAME_ASC
}

"""State of an access token."""
enum AccessTokenState {
  """Token is active."""
  ACTIVE

  """Token is inactive."""
  INACTIVE
}

type Achievement {
  """URL to avatar of the achievement."""
  avatarUrl: String

  """Timestamp the achievement was created."""
  createdAt: Time!

  """Description or notes for the achievement."""
  description: String

  """ID of the achievement."""
  id: AchievementsAchievementID!

  """Name of the achievement."""
  name: String!

  """Namespace of the achievement."""
  namespace: Namespace

  """
  Unique users who have received the achievement. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  uniqueUsers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Timestamp the achievement was last updated."""
  updatedAt: Time!

  """
  Recipients for the achievement. Introduced in GitLab 15.10: **Status**: Experiment.
  """
  userAchievements(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")
}

"""The connection type for Achievement."""
type AchievementConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

"""
A `AchievementsAchievementID` is a global ID. It is encoded as a string.

An example `AchievementsAchievementID` is: `"gid://gitlab/Achievements::Achievement/1"`.
"""
scalar AchievementsAchievementID

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

  """Global ID of the achievement being awarded."""
  achievementId: AchievementsAchievementID!

  """Global ID of the user being awarded the achievement."""
  userId: UserID!

  """Message to associate with the awarded achievement."""
  awardMessage: String
}

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

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

  """Achievement award."""
  userAchievement: UserAchievement
}

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

  """Namespace for the achievement."""
  namespaceId: NamespaceID!

  """Name for the achievement."""
  name: String!

  """Avatar for the achievement."""
  avatar: Upload

  """Description of or notes for the achievement."""
  description: String
}

"""Autogenerated return type of AchievementsCreate."""
type AchievementsCreatePayload {
  """Achievement created."""
  achievement: Achievement

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

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

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

  """Global ID of the achievement being deleted."""
  achievementId: AchievementsAchievementID!
}

"""Autogenerated return type of AchievementsDelete."""
type AchievementsDeletePayload {
  """Achievement."""
  achievement: Achievement

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

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

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

  """Global ID of the user achievement being revoked."""
  userAchievementId: AchievementsUserAchievementID!
}

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

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

  """Achievement award."""
  userAchievement: UserAchievement
}

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

  """Global ID of the achievement being updated."""
  achievementId: AchievementsAchievementID!

  """Name for the achievement."""
  name: String

  """Avatar for the achievement."""
  avatar: Upload

  """Description of or notes for the achievement."""
  description: String
}

"""Autogenerated return type of AchievementsUpdate."""
type AchievementsUpdatePayload {
  """Achievement."""
  achievement: Achievement

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

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

"""
A `AchievementsUserAchievementID` is a global ID. It is encoded as a string.

An example `AchievementsUserAchievementID` is: `"gid://gitlab/Achievements::UserAchievement/1"`.
"""
scalar AchievementsUserAchievementID

"""
Represents the Geo replication and verification state of an `achievement_upload`
"""
type AchievementUploadRegistry {
  """ID of the Achievement Upload."""
  achievementUploadId: ID!

  """
  Indicate if the checksums of the AchievementUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the AchievementUploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this AchievementUploadRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the AchievementUploadRegistry"""
  id: ID!

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

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

  """Indicate if the AchievementUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the AchievementUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the AchievementUploadRegistry is resynced"""
  retryAt: Time

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

  """Sync state of the AchievementUploadRegistry"""
  state: RegistryState

  """The local checksum of the AchievementUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the AchievementUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the AchievementUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the AchievementUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the AchievementUploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of AchievementUploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the AchievementUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the AchievementUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for AchievementUploadRegistry."""
type AchievementUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

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

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

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

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

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

"""Active trial information"""
type ActiveTrial {
  """Trial end date."""
  endDate: ISO8601Date

  """Trial start date."""
  startDate: ISO8601Date
}

"""Represents AddOn purchase for Namespace"""
type AddOnPurchase {
  """Number of seats assigned."""
  assignedQuantity: Int!

  """ID of AddOnPurchase."""
  id: GitlabSubscriptionsAddOnPurchaseID!

  """Name of AddOn."""
  name: String!

  """Number of seats purchased."""
  purchasedQuantity: Int!
}

"""A user with add-on data"""
type AddOnUser implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """
  Add-on purchase assignments for the user. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  addOnAssignments(
    """Global IDs of the add on purchases to find assignments for."""
    addOnPurchaseIds: [GitlabSubscriptionsAddOnPurchaseID!]!

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

    """
    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
  ): UserAddOnAssignmentConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

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

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

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

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

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

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

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

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

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

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """
  Date of the last Duo activity of the user. Refreshed on any GitLab Duo activity.
  """
  lastDuoActivityOn: Date

  """Timestamp of the last sign in."""
  lastLoginAt: Time

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

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

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

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

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

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

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

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

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

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

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

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

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

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

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

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

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

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

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

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

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

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

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

    """
    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
  ): WorkspaceConnection
}

"""The connection type for AddOnUser."""
type AddOnUserConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

"""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 the mutation."""
  errors: [String!]!

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

"""Represents an admin member role"""
type AdminMemberRole implements CustomRoleInterface & RoleInterface {
  """Timestamp of when the member role was created."""
  createdAt: Time!

  """Role description."""
  description: String

  """
  URL path to the role details webpage. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  detailsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Web UI path to edit the custom role. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  editPath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Array of all permissions enabled for the custom role. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  enabledPermissions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableAdminPermissionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """Role ID."""
  id: ID!

  """
  LDAP admin role sync configurations that will assign the admin member role.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  ldapAdminRoleLinks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LdapAdminRoleLinkConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Role name."""
  name: String

  """
  Number of users who have been directly assigned the admin member role. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  usersCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
}

"""The connection type for AdminMemberRole."""
type AdminMemberRoleConnection {
  """A list of edges."""
  edges: [AdminMemberRoleEdge]

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

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

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

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

"""Autogenerated input type of AdminRolesLdapSync"""
input AdminRolesLdapSyncInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

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

  """Errors encountered during operation."""
  errors: [String!]

  """Whether the sync was successfully enqueued."""
  success: Boolean
}

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

  """Delete jobs matching organization_id in the context metadata."""
  organizationId: String

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

  """Delete jobs matching user_id in the context metadata."""
  userId: String

  """Delete jobs matching gl_user_id in the context metadata."""
  glUserId: String

  """Delete jobs matching scoped_user in the context metadata."""
  scopedUser: String

  """Delete jobs matching scoped_user_id in the context metadata."""
  scopedUserId: String

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

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

  """Delete jobs matching client_id in the context metadata."""
  clientId: String

  """Delete jobs matching caller_id in the context metadata."""
  callerId: String

  """Delete jobs matching remote_ip in the context metadata."""
  remoteIp: String

  """Delete jobs matching job_id in the context metadata."""
  jobId: String

  """Delete jobs matching pipeline_id in the context metadata."""
  pipelineId: String

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

  """Delete jobs matching feature_category in the context metadata."""
  featureCategory: String

  """Delete jobs matching artifact_size in the context metadata."""
  artifactSize: String

  """Delete jobs matching artifact_used_cdn in the context metadata."""
  artifactUsedCdn: String

  """
  Delete jobs matching artifacts_dependencies_size in the context metadata.
  """
  artifactsDependenciesSize: String

  """
  Delete jobs matching artifacts_dependencies_count in the context metadata.
  """
  artifactsDependenciesCount: String

  """Delete jobs matching root_caller_id in the context metadata."""
  rootCallerId: String

  """Delete jobs matching merge_action_status in the context metadata."""
  mergeActionStatus: String

  """Delete jobs matching bulk_import_entity_id in the context metadata."""
  bulkImportEntityId: String

  """
  Delete jobs matching sidekiq_destination_shard_redis in the context metadata.
  """
  sidekiqDestinationShardRedis: String

  """Delete jobs matching kubernetes_agent_id in the context metadata."""
  kubernetesAgentId: String

  """Delete jobs matching mvcc_manifest in the context metadata."""
  mvccManifest: String

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

  """Delete jobs matching ai_resource in the context metadata."""
  aiResource: String

  """Delete jobs matching policy_sync_config_id in the context metadata."""
  policySyncConfigId: String

  """Delete jobs with the given worker class."""
  workerClass: String

  """Name of the queue to delete jobs from."""
  queueName: String!
}

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

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

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

"""Configuration details for an Agent"""
type AgentConfiguration {
  """Name of the agent."""
  agentName: String
}

"""The connection type for AgentConfiguration."""
type AgentConfigurationConnection {
  """A list of edges."""
  edges: [AgentConfigurationEdge]

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

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

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

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

"""Information about a connected Agent"""
type AgentMetadata {
  """Agent version commit."""
  commit: String

  """Name of the pod running the Agent."""
  podName: String

  """Namespace of the pod running the Agent."""
  podNamespace: String

  """Agent version tag."""
  version: String
}

"""Agent platform aggregated metrics by flow type"""
type AgentPlatformFlowMetric {
  """Completion rate as a percentage."""
  completionRate: Float

  """Type of the flow."""
  flowType: String!

  """Median flow execution time in seconds."""
  medianExecutionTime: Float

  """
  Total number of sessions, equivalent to the count of the
              `agent_platform_session_created` event.
  """
  sessionsCount: Int!

  """Number of unique users."""
  usersCount: Int!
}

"""Requires ClickHouse. Premium and Ultimate only."""
type agentPlatformMetrics {
  """
  Total count of `click_duo_agentic_subscription_expired_learn_more` event.
  """
  clickDuoAgenticSubscriptionExpiredLearnMoreSessionEventCount: Int

  """Total count of `click_duo_agentic_subscription_expired_upgrade` event."""
  clickDuoAgenticSubscriptionExpiredUpgradeSessionEventCount: Int

  """Total count of `agent_platform_session_created` event."""
  createdSessionEventCount: Int

  """Total count of `agent_platform_session_dropped` event."""
  droppedSessionEventCount: Int

  """Total count of `agent_platform_session_finished` event."""
  finishedSessionEventCount: Int

  """Aggregated flow metrics for Duo Agent Platform."""
  flowMetrics(
    """Sort results by flow type."""
    sort: FlowTypeSort
  ): [AgentPlatformFlowMetric!]

  """Total count of `agent_platform_session_resumed` event."""
  resumedSessionEventCount: Int

  """Total count of `agent_platform_session_started` event."""
  startedSessionEventCount: Int

  """Total count of `agent_platform_session_stopped` event."""
  stoppedSessionEventCount: Int

  """Aggregated count of flows per user."""
  userFlowCounts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AgentPlatformUserFlowCountConnection

  """
  Total count of `view_duo_agentic_subscription_expired_empty_state` event.
  """
  viewDuoAgenticSubscriptionExpiredEmptyStateSessionEventCount: Int
}

input AgentPlatformMetricsNotInput {
  """List of flow types to exclude."""
  flowTypes: [String!]
}

"""Response for `AgentPlatformSessions` aggregation engine"""
type AgentPlatformSessionsAggregationResponse {
  """Session completion rate"""
  completionRate: Float

  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: AgentPlatformSessionsAggregationResponseDimensions

  """Session duration quantile in seconds"""
  durationQuantile(quantile: Float): Float

  """Number of finished sessions"""
  finishedCount: Int

  """Average session duration in seconds"""
  meanDuration: Float

  """Total number of sessions"""
  totalCount: Int

  """Number of unique users"""
  usersCount: Int
}

"""The connection type for AgentPlatformSessionsAggregationResponse."""
type AgentPlatformSessionsAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

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

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

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

"""Response dimensions for `AgentPlatformSessions` aggregation engine"""
type AgentPlatformSessionsAggregationResponseDimensions {
  """Session creation time"""
  createdEventAt(granularity: String): Date

  """Type of session"""
  flowType: String

  """Session owner"""
  user: UserCore
}

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

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

"""
Aggregation scope for `AgentPlatformSessions`. Apply ordering and pagination on the aggregation.
"""
type AgentPlatformSessionsAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

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

    """
    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
  ): AgentPlatformSessionsAggregationResponseConnection
}

"""Agent platform flow counts aggergated per user"""
type AgentPlatformUserFlowCount {
  """Type of the flow."""
  flowType: String!

  """Total number of flow sessions."""
  sessionsCount: Int!

  """User who triggered the flow."""
  user: UserCore
}

"""The connection type for AgentPlatformUserFlowCount."""
type AgentPlatformUserFlowCountConnection {
  """A list of edges."""
  edges: [AgentPlatformUserFlowCountEdge]

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

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

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

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

"""
Agent Platform user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type agentPlatformUserMetrics {
  """Total count of `agent_platform_session_created` event."""
  agentPlatformSessionCreatedEventCount: Int

  """Total count of `agent_platform_session_dropped` event."""
  agentPlatformSessionDroppedEventCount: Int

  """Total count of `agent_platform_session_finished` event."""
  agentPlatformSessionFinishedEventCount: Int

  """Total count of `agent_platform_session_resumed` event."""
  agentPlatformSessionResumedEventCount: Int

  """Total count of `agent_platform_session_started` event."""
  agentPlatformSessionStartedEventCount: Int

  """Total count of `agent_platform_session_stopped` event."""
  agentPlatformSessionStoppedEventCount: Int

  """
  Total count of `click_duo_agentic_subscription_expired_learn_more` event.
  """
  clickDuoAgenticSubscriptionExpiredLearnMoreEventCount: Int

  """Total count of `click_duo_agentic_subscription_expired_upgrade` event."""
  clickDuoAgenticSubscriptionExpiredUpgradeEventCount: Int

  """Date of the last Agent Platform activity for the user."""
  lastDuoActivityOn: Date

  """Total count of all Agent Platform events for the user."""
  totalEventCount: Int

  """
  Total count of `view_duo_agentic_subscription_expired_empty_state` event.
  """
  viewDuoAgenticSubscriptionExpiredEmptyStateEventCount: Int
}

"""Agent token statuses"""
enum AgentTokenStatus {
  """Active agent token."""
  ACTIVE

  """Revoked agent token."""
  REVOKED
}

"""Version-related warning for a connected Agent"""
type AgentVersionWarning {
  """Warning message related to the version."""
  message: String

  """Warning type related to the version."""
  type: String
}

"""Warning object for a connected Agent"""
type AgentWarning {
  """Agent warning related to the version."""
  version: AgentVersionWarning
}

input AggregationOrder {
  """Sorting direction."""
  direction: SortDirectionEnum!

  """Dimension or metric identifier."""
  identifier: String!

  """Parameters for parameterized dimensions."""
  parameters: JSON
}

type AggregationStatus {
  """
  Whether background aggregation is enabled or disabled. For downgraded,
  non-licensed groups and projects the field is `false`.
  """
  enabled: Boolean!

  """Estimated time when the next incremental update will happen."""
  estimatedNextUpdateAt: Time

  """Last incremental update time."""
  lastUpdateAt: Time
}

"""LLMs supported by the self-hosted model features."""
enum AiAcceptedSelfHostedModels {
  """CodeGemma Code: Suitable for code suggestions."""
  CODEGEMMA

  """Code-Llama Instruct: Suitable for code suggestions."""
  CODELLAMA

  """Codestral: Suitable for code suggestions."""
  CODESTRAL

  """Mistral: Suitable for code suggestions and duo chat."""
  MISTRAL

  """Mixtral: Suitable for code suggestions and duo chat."""
  MIXTRAL

  """Deepseek Coder base or instruct."""
  DEEPSEEKCODER

  """LLaMA 3: Suitable for code suggestions and duo chat."""
  LLAMA3

  """Claude 3 model family, suitable for code generation and duo chat."""
  CLAUDE_3

  """GPT: Suitable for code suggestions."""
  GPT

  """Gemini: Suitable for duo agentic and non-agentic chat."""
  GEMINI

  """Embedding: Suitable for semantic search."""
  EMBEDDING

  """General: Any model suitable for code suggestions and duo chat."""
  GENERAL
}

"""Action to subscribe to."""
enum AiAction {
  """Chat action."""
  CHAT
}

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

  """Input for explain_vulnerability AI action."""
  explainVulnerability: AiExplainVulnerabilityInput

  """Input for resolve_vulnerability AI action."""
  resolveVulnerability: AiResolveVulnerabilityInput

  """Input for summarize_review AI action."""
  summarizeReview: AiSummarizeReviewInput

  """Input for measure_comment_temperature AI action."""
  measureCommentTemperature: AiMeasureCommentTemperatureInput

  """Input for generate_description AI action."""
  generateDescription: AiGenerateDescriptionInput

  """Input for generate_commit_message AI action."""
  generateCommitMessage: AiGenerateCommitMessageInput

  """Input for description_composer AI action."""
  descriptionComposer: AiDescriptionComposerInput

  """Input for chat AI action."""
  chat: AiChatInput

  """Input for summarize_new_merge_request AI action."""
  summarizeNewMergeRequest: AiSummarizeNewMergeRequestInput

  """Input for agentic_chat AI action."""
  agenticChat: AiAgenticChatInput

  """
  Client generated ID that can be subscribed to, to receive a response for the mutation.
  """
  clientSubscriptionId: String

  """Specifies the origin platform of the request."""
  platformOrigin: String

  """Global ID of the project the user is acting on."""
  projectId: ProjectID

  """Global ID of the top-level namespace the user is acting on."""
  rootNamespaceId: NamespaceID

  """Conversation type of the thread."""
  conversationType: AiConversationsThreadsConversationType

  """
  Global Id of the existing thread to continue the conversation. If it is not
  specified, a new thread will be created for the specified conversation_type.
  """
  threadId: AiConversationThreadID
}

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

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

  """ID of the request."""
  requestId: String

  """Global Id of the thread."""
  threadId: AiConversationThreadID
}

"""Additional context for AI message."""
type AiAdditionalContext {
  """Category of the additional context."""
  category: AiAdditionalContextCategory!

  """Content of the additional context."""
  content: String!

  """ID of the additional context."""
  id: ID!

  """Metadata of the additional context."""
  metadata: JSON
}

"""The category of the additional context"""
enum AiAdditionalContextCategory {
  """File content category."""
  FILE

  """Snippet content category."""
  SNIPPET

  """Merge_request content category."""
  MERGE_REQUEST

  """Issue content category."""
  ISSUE

  """Dependency content category."""
  DEPENDENCY

  """Local_git content category."""
  LOCAL_GIT

  """Terminal content category."""
  TERMINAL

  """User_rule content category."""
  USER_RULE

  """Repository content category."""
  REPOSITORY

  """Directory content category."""
  DIRECTORY

  """Agent_user_environment content category."""
  AGENT_USER_ENVIRONMENT
}

input AiAdditionalContextInput {
  """ID of the additional context."""
  id: String!

  """Category of the additional context."""
  category: AiAdditionalContextCategory!

  """Content of the additional context."""
  content: String!

  """Metadata of the additional context."""
  metadata: JSON
}

input AiAgenticChatInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """Content of the message."""
  content: String!

  """Global ID of the namespace the user is acting on."""
  namespaceId: NamespaceID

  """
  Information about currently selected text which can be passed for additional context.
  """
  currentFile: AiCurrentFileInput

  """Additional context to be passed for the chat."""
  additionalContext: [AiAdditionalContextInput!]
}

"""Audit event recorded for a GitLab Duo Agent Platform session."""
type AiAuditEvent {
  """User who triggered the audit event."""
  author: UserCore

  """Timestamp of when the audit event was created."""
  createdAt: Time!

  """Event-specific details payload."""
  details: JSON

  """Name of the audit event."""
  eventName: String

  """ID of the audit event."""
  id: ID!

  """IP address recorded for the audit event."""
  ipAddress: String

  """ID of the Duo Agent Platform session the event belongs to."""
  workflowId: ID!
}

"""The connection type for AiAuditEvent."""
type AiAuditEventConnection {
  """A list of edges."""
  edges: [AiAuditEventEdge]

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

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

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

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

"""An AI catalog agent"""
type AiCatalogAgent implements AiCatalogItem {
  """
  Item configuration for the given group. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  configurationForGroup(
    """Global ID of the group to return the item configuration of."""
    groupId: GroupID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Item configuration for the given project. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  configurationForProject(
    """Global ID of the project to return the item configuration of."""
    projectId: ProjectID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Timestamp of when the item was created."""
  createdAt: Time!

  """Description of the item."""
  description: String!

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

  """Whether the item is a foundational item."""
  foundational: Boolean!

  """Foundational flow reference."""
  foundationalFlowReference: String

  """ID of the item."""
  id: ID!

  """
  Whether the item is enabled in the project it is managed by. This field can
  only be resolved for one AiCatalogItem in any single request.
  """
  isEnabledInManagedByProject: Boolean!

  """Type of the item."""
  itemType: AiCatalogItemType!

  """Number of projects using the item in the last 30 days."""
  last30DayUsageCount: Int!

  """Latest version of the item."""
  latestVersion(
    """Return the latest released version."""
    released: Boolean
  ): AiCatalogItemVersion

  """Name of the item."""
  name: String!

  """Project for the item."""
  project: Project

  """Whether the item is publicly visible in the catalog."""
  public: Boolean!

  """Indicates if the item has been soft deleted."""
  softDeleted: Boolean

  """Timestamp of when the item was soft deleted."""
  softDeletedAt: Time

  """Number of stars for the item."""
  starCount: Int!

  """Whether the current user has starred the item."""
  starred: Boolean!

  """Timestamp of when the item was updated."""
  updatedAt: Time!

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

  """Verification level of the item."""
  verificationLevel: AiCatalogItemVerificationLevel!

  """Versions of the item."""
  versions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

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

  """Description for the agent."""
  description: String!

  """Name for the agent."""
  name: String!

  """Project for the agent."""
  projectId: ProjectID!

  """Whether the agent is publicly visible in the catalog."""
  public: Boolean!

  """Whether to release the latest version of the agent."""
  release: Boolean

  """System prompt for the agent."""
  systemPrompt: String!

  """List of GitLab built-in tools enabled for the agent."""
  tools: [AiCatalogBuiltInToolID!]

  """
  List of MCP tools enabled for the agent. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  mcpTools: [String!]

  """User prompt for the agent."""
  userPrompt: String

  """
  MCP servers to associate with the agent. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  mcpServers: [AiCatalogMcpServerID!]
}

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

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

  """Item created."""
  item: AiCatalogAgent
}

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

  """Global ID of the catalog Agent to delete."""
  id: AiCatalogItemID!

  """
  When true, the flow will always be hard deleted and never soft deleted. Can only be used by instance admins
  """
  forceHardDelete: Boolean
}

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

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

  """Returns true if catalog Agent was successfully deleted."""
  success: Boolean!
}

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

  """Global ID of the catalog Agent to update."""
  id: AiCatalogItemID!

  """Description for the agent."""
  description: String

  """Name for the agent."""
  name: String

  """Whether the agent is publicly visible in the catalog."""
  public: Boolean

  """Whether to release the latest version of the agent."""
  release: Boolean

  """System prompt for the agent."""
  systemPrompt: String

  """List of GitLab built-in tools enabled for the agent."""
  tools: [AiCatalogBuiltInToolID!]

  """
  List of MCP tools enabled for the agent. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  mcpTools: [String!]

  """User prompt for the agent."""
  userPrompt: String

  """Bump version, calculated from the last released version name."""
  versionBump: AiCatalogVersionBump

  """
  MCP servers to associate with the agent. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  mcpServers: [AiCatalogMcpServerID!]
}

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

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

  """Agent that was updated."""
  item: AiCatalogAgent
}

"""An AI catalog agent version"""
type AiCatalogAgentVersion implements AiCatalogItemVersion {
  """Timestamp of when the item version was created."""
  createdAt: Time!

  """User that created the item version."""
  createdBy: UserCore

  """Indicates the item version has been deprecated by the author."""
  deprecated: Boolean!

  """Human-friendly name of the item version. In the form v1.0.0-draft."""
  humanVersionName: String

  """ID of the item version."""
  id: ID!

  """Item the version belongs to."""
  item: AiCatalogItem!

  """
  MCP servers associated with the item. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  mcpServers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogMcpServerConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  List of MCP tools enabled for the agent. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  mcpTools: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Indicates the item version is released."""
  released: Boolean!

  """Timestamp of when the item version was released."""
  releasedAt: Time

  """System prompt for the agent."""
  systemPrompt: String

  """List of GitLab tools enabled for the agent."""
  tools(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogBuiltInToolConnection!

  """Timestamp of when the item version was updated."""
  updatedAt: Time!

  """User prompt for the agent."""
  userPrompt: String

  """Version name of the item version."""
  versionName: String
}

"""An AI catalog built-in tool"""
type AiCatalogBuiltInTool {
  """Description of the built-in tool."""
  description: String!

  """Global ID of the built-in tool."""
  id: AiCatalogBuiltInToolID!

  """Name of the built-in tool."""
  name: String!

  """Title of the built-in tool."""
  title: String!
}

"""The connection type for AiCatalogBuiltInTool."""
type AiCatalogBuiltInToolConnection {
  """A list of edges."""
  edges: [AiCatalogBuiltInToolEdge]

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

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

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

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

"""
A `AiCatalogBuiltInToolID` is a global ID. It is encoded as a string.

An example `AiCatalogBuiltInToolID` is: `"gid://gitlab/Ai::Catalog::BuiltInTool/1"`.
"""
scalar AiCatalogBuiltInToolID

"""An AI catalog item, which is either a custom or foundational item"""
union AiCatalogCustomAndFoundationalItem = AiCatalogAgent | AiCatalogFlow | AiCatalogThirdPartyFlow | AiFoundationalChatAgent

"""The connection type for AiCatalogCustomAndFoundationalItem."""
type AiCatalogCustomAndFoundationalItemConnection {
  """A list of edges."""
  edges: [AiCatalogCustomAndFoundationalItemEdge]

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

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

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

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

"""An AI catalog flow"""
type AiCatalogFlow implements AiCatalogItem {
  """
  Item configuration for the given group. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  configurationForGroup(
    """Global ID of the group to return the item configuration of."""
    groupId: GroupID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Item configuration for the given project. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  configurationForProject(
    """Global ID of the project to return the item configuration of."""
    projectId: ProjectID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Timestamp of when the item was created."""
  createdAt: Time!

  """Description of the item."""
  description: String!

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

  """Whether the item is a foundational item."""
  foundational: Boolean!

  """Foundational flow reference."""
  foundationalFlowReference: String

  """ID of the item."""
  id: ID!

  """
  Whether the item is enabled in the project it is managed by. This field can
  only be resolved for one AiCatalogItem in any single request.
  """
  isEnabledInManagedByProject: Boolean!

  """Type of the item."""
  itemType: AiCatalogItemType!

  """Number of projects using the item in the last 30 days."""
  last30DayUsageCount: Int!

  """Latest version of the item."""
  latestVersion(
    """Return the latest released version."""
    released: Boolean
  ): AiCatalogItemVersion

  """Name of the item."""
  name: String!

  """Project for the item."""
  project: Project

  """Whether the item is publicly visible in the catalog."""
  public: Boolean!

  """Indicates if the item has been soft deleted."""
  softDeleted: Boolean

  """Timestamp of when the item was soft deleted."""
  softDeletedAt: Time

  """Number of stars for the item."""
  starCount: Int!

  """Whether the current user has starred the item."""
  starred: Boolean!

  """Timestamp of when the item was updated."""
  updatedAt: Time!

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

  """Verification level of the item."""
  verificationLevel: AiCatalogItemVerificationLevel!

  """Versions of the item."""
  versions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

"""Possible flow configuration types for AI Catalog agents."""
enum AiCatalogFlowConfigType {
  """Chat flow configuration."""
  CHAT
}

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

  """Description for the flow."""
  description: String!

  """Name for the flow."""
  name: String!

  """Project for the flow."""
  projectId: ProjectID!

  """Whether the flow is publicly visible in the catalog."""
  public: Boolean!

  """Whether to release the latest version of the flow."""
  release: Boolean

  """YAML definition for the flow."""
  definition: String
}

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

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

  """Item created."""
  item: AiCatalogFlow
}

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

  """Global ID of the catalog flow to delete."""
  id: AiCatalogItemID!

  """
  When true, the flow will always be hard deleted and never soft deleted. Can only be used by instance admins
  """
  forceHardDelete: Boolean
}

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

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

  """Returns true if catalog flow was successfully deleted."""
  success: Boolean!
}

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

  """Global ID of the catalog flow to update."""
  id: AiCatalogItemID!

  """Description for the flow."""
  description: String

  """Name for the flow."""
  name: String

  """Whether the flow is publicly visible in the catalog."""
  public: Boolean

  """Whether to release the latest version of the flow."""
  release: Boolean

  """YAML definition for the Flow."""
  definition: String

  """Bump version, calculated from the last released version name."""
  versionBump: AiCatalogVersionBump
}

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

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

  """Flow that was updated."""
  item: AiCatalogFlow
}

"""An AI catalog flow version"""
type AiCatalogFlowVersion implements AiCatalogItemVersion {
  """Timestamp of when the item version was created."""
  createdAt: Time!

  """User that created the item version."""
  createdBy: UserCore

  """YAML definition of the flow."""
  definition: String

  """Indicates the item version has been deprecated by the author."""
  deprecated: Boolean!

  """Human-friendly name of the item version. In the form v1.0.0-draft."""
  humanVersionName: String

  """ID of the item version."""
  id: ID!

  """Item the version belongs to."""
  item: AiCatalogItem!

  """Indicates the item version is released."""
  released: Boolean!

  """Timestamp of when the item version was released."""
  releasedAt: Time

  """Timestamp of when the item version was updated."""
  updatedAt: Time!

  """Version name of the item version."""
  versionName: String
}

"""An AI catalog item"""
interface AiCatalogItem {
  """
  Item configuration for the given group. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  configurationForGroup(
    """Global ID of the group to return the item configuration of."""
    groupId: GroupID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Item configuration for the given project. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  configurationForProject(
    """Global ID of the project to return the item configuration of."""
    projectId: ProjectID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Timestamp of when the item was created."""
  createdAt: Time!

  """Description of the item."""
  description: String!

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

  """Whether the item is a foundational item."""
  foundational: Boolean!

  """Foundational flow reference."""
  foundationalFlowReference: String

  """ID of the item."""
  id: ID!

  """
  Whether the item is enabled in the project it is managed by. This field can
  only be resolved for one AiCatalogItem in any single request.
  """
  isEnabledInManagedByProject: Boolean!

  """Type of the item."""
  itemType: AiCatalogItemType!

  """Number of projects using the item in the last 30 days."""
  last30DayUsageCount: Int!

  """Latest version of the item."""
  latestVersion(
    """Return the latest released version."""
    released: Boolean
  ): AiCatalogItemVersion

  """Name of the item."""
  name: String!

  """Project for the item."""
  project: Project

  """Whether the item is publicly visible in the catalog."""
  public: Boolean!

  """Indicates if the item has been soft deleted."""
  softDeleted: Boolean

  """Timestamp of when the item was soft deleted."""
  softDeletedAt: Time

  """Number of stars for the item."""
  starCount: Int!

  """Whether the current user has starred the item."""
  starred: Boolean!

  """Timestamp of when the item was updated."""
  updatedAt: Time!

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

  """Verification level of the item."""
  verificationLevel: AiCatalogItemVerificationLevel!

  """Versions of the item."""
  versions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

"""The connection type for AiCatalogItem."""
type AiCatalogItemConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

"""An AI catalog item configuration"""
type AiCatalogItemConsumer {
  """Indicates if the configuration item is enabled."""
  enabled: Boolean

  """Trigger associated with the configured catalog item."""
  flowTrigger: AiFlowTriggerType

  """Group in which the catalog item is configured."""
  group: Group

  """ID of the configuration item."""
  id: ID!

  """Configuration catalog item."""
  item: AiCatalogItem

  """Organization in which the catalog item is configured."""
  organization: Organization

  """Parent item consumer associated with the configured catalog item."""
  parentItemConsumer: AiCatalogItemConsumer

  """
  Resolved item version according to the `pinnedVersionPrefix`.This field can
  only be resolved for 20 AiCatalogItemConsumers in any single request.
  """
  pinnedItemVersion: AiCatalogItemVersion

  """Version the item is pinned to, in the format `n.n.n`."""
  pinnedVersionPrefix: AiCatalogPinnedVersion

  """Project in which the catalog item is configured."""
  project: Project

  """Service account associated with the item consumer."""
  serviceAccount: UserCore

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

  """Web path of the catalog item consumer configuration page."""
  webPath: String
}

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

  """Global ID of the catalog item to enable."""
  itemId: AiCatalogItemID!

  """
  Global IDs of the projects to enable the catalog item in (maximum 100).
  """
  projectIds: [ProjectID!]!

  """List of event types to create flow triggers for."""
  triggerTypes: [String!]

  """
  Filter conditions for the auto-created flow triggers, keyed by event type.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  triggerFilter: JSON
}

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

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

"""The connection type for AiCatalogItemConsumer."""
type AiCatalogItemConsumerConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

  """Item to configure."""
  itemId: AiCatalogItemID!

  """
  Target project or top-level group in which the catalog item is configured.
  """
  target: ItemConsumerTargetInput!

  """
  List of event types to create flow triggers for (values can be mention, assign or assign_reviewer).
  """
  triggerTypes: [String!]

  """
  Filter conditions for the auto-created flow triggers, keyed by event type.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  triggerFilter: JSON

  """Parent item consumer belonging to the top-level group."""
  parentItemConsumerId: AiCatalogItemConsumerID
}

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

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

  """Item configuration created."""
  itemConsumer: AiCatalogItemConsumer
}

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

  """Global ID of the catalog item consumer to delete."""
  id: AiCatalogItemConsumerID!
}

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

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

  """Returns true if catalog item consumer was successfully deleted."""
  success: Boolean!
}

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

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

"""
A `AiCatalogItemConsumerID` is a global ID. It is encoded as a string.

An example `AiCatalogItemConsumerID` is: `"gid://gitlab/Ai::Catalog::ItemConsumer/1"`.
"""
scalar AiCatalogItemConsumerID

"""Check permissions for the current user on an AI catalog item consumer."""
type AiCatalogItemConsumerPermissions {
  """
  If `true`, the user can perform `admin_ai_catalog_item_consumer` on this resource
  """
  adminAiCatalogItemConsumer: Boolean!

  """
  If `true`, the user can perform `read_ai_catalog_item_consumer` on this resource
  """
  readAiCatalogItemConsumer: Boolean!
}

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

  """Global ID of the catalog item consumer to update."""
  id: AiCatalogItemConsumerID!

  """
  Version the item is pinned to, in the format `n.n.n`. Deprecated in GitLab 19.0: Use `pinnedVersion` instead.
  """
  pinnedVersionPrefix: AiCatalogPinnedVersion

  """Version the item is pinned to, in the format `n.n.n`."""
  pinnedVersion: AiCatalogPinnedVersion

  """Service account to associate with the item consumer."""
  serviceAccountId: UserID

  """
  List of event types to create flow triggers for (values can be mention, assign or assign_reviewer).
  """
  triggerTypes: [String!]
}

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

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

  """Item consumer that was updated."""
  itemConsumer: AiCatalogItemConsumer
}

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

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

"""
A `AiCatalogItemID` is a global ID. It is encoded as a string.

An example `AiCatalogItemID` is: `"gid://gitlab/Ai::Catalog::Item/1"`.
"""
scalar AiCatalogItemID

"""Check permissions for the current user on an AI catalog item."""
type AiCatalogItemPermissions {
  """
  If `true`, the user can perform `admin_ai_catalog_item` on this resource
  """
  adminAiCatalogItem: Boolean!

  """
  If `true`, the user can perform `force_hard_delete_ai_catalog_item` on this resource
  """
  forceHardDeleteAiCatalogItem: Boolean!

  """
  If `true`, the user can perform `read_ai_catalog_item` on this resource
  """
  readAiCatalogItem: Boolean!

  """
  If `true`, the user can perform `report_ai_catalog_item` on this resource
  """
  reportAiCatalogItem: Boolean!
}

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

  """Global ID of the catalog item to report."""
  id: AiCatalogItemID!

  """Reason for reporting the catalog item."""
  reason: AiCatalogItemReportReason!

  """Additional details about the report. Limited to 1000 characters."""
  body: String
}

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

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

"""Possible reasons for reporting an AI catalog item."""
enum AiCatalogItemReportReason {
  """Contains dangerous code, exploits, or harmful actions."""
  IMMEDIATE_SECURITY_THREAT

  """Hypothetical or low risk security flaws that could be exploited."""
  POTENTIAL_SECURITY_THREAT

  """Wasting compute or causing performance issues."""
  EXCESSIVE_RESOURCE_USAGE

  """Frequently failing or nuisance activity."""
  SPAM_OR_LOW_QUALITY

  """Please describe below."""
  OTHER
}

"""Values for sorting AI Catalog items."""
enum AiCatalogItemsSort {
  """By catalog priority order."""
  CATALOG_PRIORITY

  """Star count by ascending order."""
  STAR_COUNT_ASC

  """Star count by descending order."""
  STAR_COUNT_DESC

  """Last 30-day usage count by ascending order."""
  USAGE_COUNT_ASC

  """Last 30-day usage count by descending order."""
  USAGE_COUNT_DESC
}

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

  """Global ID of the catalog item to star or unstar."""
  id: AiCatalogItemID!

  """Indicates whether to star or unstar the catalog item."""
  starred: Boolean!
}

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

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

  """Number of stars for the catalog item."""
  starCount: Int!
}

"""Possible item types for AI items."""
enum AiCatalogItemType {
  """Agent."""
  AGENT

  """Flow."""
  FLOW

  """Third party flow."""
  THIRD_PARTY_FLOW

  """Foundational agent."""
  FOUNDATIONAL_AGENT
}

enum AiCatalogItemVerificationLevel {
  """The item is Gitlab Maintained"""
  GITLAB_MAINTAINED

  """The item is Gitlab Partner Maintained"""
  GITLAB_PARTNER_MAINTAINED

  """The item is Verified Creator Maintained"""
  VERIFIED_CREATOR_MAINTAINED

  """The item is Verified Creator Self Managed"""
  VERIFIED_CREATOR_SELF_MANAGED

  """The item is Unverified"""
  UNVERIFIED
}

"""An AI catalog item version"""
interface AiCatalogItemVersion {
  """Timestamp of when the item version was created."""
  createdAt: Time!

  """User that created the item version."""
  createdBy: UserCore

  """Indicates the item version has been deprecated by the author."""
  deprecated: Boolean!

  """Human-friendly name of the item version. In the form v1.0.0-draft."""
  humanVersionName: String

  """ID of the item version."""
  id: ID!

  """Item the version belongs to."""
  item: AiCatalogItem!

  """Indicates the item version is released."""
  released: Boolean!

  """Timestamp of when the item version was released."""
  releasedAt: Time

  """Timestamp of when the item version was updated."""
  updatedAt: Time!

  """Version name of the item version."""
  versionName: String
}

"""The connection type for AiCatalogItemVersion."""
type AiCatalogItemVersionConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

"""
A `AiCatalogItemVersionID` is a global ID. It is encoded as a string.

An example `AiCatalogItemVersionID` is: `"gid://gitlab/Ai::Catalog::ItemVersion/1"`.
"""
scalar AiCatalogItemVersionID

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

  """Global ID of the item version to restore from."""
  id: AiCatalogItemVersionID!

  """Whether to mark the current latest version as deprecated."""
  deprecateCurrent: Boolean = false
}

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

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

  """Newly created item version restored from the source version."""
  itemVersion: AiCatalogItemVersion
}

"""An MCP (Model Context Protocol) server"""
type AiCatalogMcpServer {
  """Authentication type for the MCP server."""
  authType: AiCatalogMcpServerAuthType!

  """Timestamp when the MCP server was created."""
  createdAt: Time!

  """Whether the current user has connected to the MCP server."""
  currentUserConnected: Boolean!

  """Description of the MCP server."""
  description: String

  """Homepage URL of the MCP server."""
  homepageUrl: String

  """ID of the MCP server."""
  id: ID!

  """Name of the MCP server."""
  name: String!

  """OAuth client ID for the MCP server."""
  oauthClientId: String

  """Organization that owns the MCP server."""
  organization: Organization!

  """Transport type for the MCP server."""
  transport: AiCatalogMcpServerTransport!

  """Timestamp when the MCP server was last updated."""
  updatedAt: Time!

  """URL of the MCP server."""
  url: String!
}

"""Authentication types for MCP servers"""
enum AiCatalogMcpServerAuthType {
  """OAuth authentication."""
  OAUTH

  """No authentication."""
  NO_AUTH
}

"""The connection type for AiCatalogMcpServer."""
type AiCatalogMcpServerConnection {
  """A list of edges."""
  edges: [AiCatalogMcpServerEdge]

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

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

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

  """Name for the MCP server."""
  name: String!

  """Description for the MCP server."""
  description: String

  """URL for the MCP server."""
  url: String!

  """Homepage URL for the MCP server."""
  homepageUrl: String

  """Transport type for the MCP server."""
  transport: AiCatalogMcpServerTransport!

  """Authentication type for the MCP server."""
  authType: AiCatalogMcpServerAuthType!

  """OAuth client ID for the MCP server."""
  oauthClientId: String

  """OAuth client secret for the MCP server."""
  oauthClientSecret: String
}

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

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

  """MCP server created."""
  mcpServer: AiCatalogMcpServer
}

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

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

"""
A `AiCatalogMcpServerID` is a global ID. It is encoded as a string.

An example `AiCatalogMcpServerID` is: `"gid://gitlab/Ai::Catalog::McpServer/1"`.
"""
scalar AiCatalogMcpServerID

"""Transport types for MCP servers"""
enum AiCatalogMcpServerTransport {
  """HTTP transport."""
  HTTP
}

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

  """Global ID of the MCP server to update."""
  id: AiCatalogMcpServerID!

  """Name for the MCP server."""
  name: String

  """Description for the MCP server."""
  description: String

  """URL for the MCP server."""
  url: String

  """Homepage URL for the MCP server."""
  homepageUrl: String

  """Transport type for the MCP server."""
  transport: AiCatalogMcpServerTransport

  """Authentication type for the MCP server."""
  authType: AiCatalogMcpServerAuthType

  """OAuth client ID for the MCP server."""
  oauthClientId: String

  """OAuth client secret for the MCP server."""
  oauthClientSecret: String
}

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

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

  """MCP server that was updated."""
  mcpServer: AiCatalogMcpServer
}

"""An MCP tool dynamically discovered from the GitLab MCP server."""
type AiCatalogMcpTool {
  """Description of the MCP tool."""
  description: String

  """Icons advertised for the MCP tool, per the MCP spec icons field."""
  icons: [AiCatalogMcpToolIcon!]!

  """Machine-readable name of the MCP tool."""
  name: ID!

  """Human-readable title of the MCP tool."""
  title: String!
}

"""The connection type for AiCatalogMcpTool."""
type AiCatalogMcpToolConnection {
  """A list of edges."""
  edges: [AiCatalogMcpToolEdge]

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

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

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

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

"""An icon advertised for an MCP tool, per the MCP spec icons field."""
type AiCatalogMcpToolIcon {
  """MIME type of the icon image."""
  mimeType: String!

  """URL to the icon image."""
  src: String!

  """Theme the icon is intended for: "light" or "dark"."""
  theme: String
}

"""
Version that an AI catalog item consumer is pinned to.

Represented as a string in the format `n.n.n`, where the major component is a
non-zero integer without leading zeros, and the minor and patch components are
non-negative integers without leading zeros. For example: `1.0.0`, `2.10.3`.

"""
scalar AiCatalogPinnedVersion

"""An AI catalog third party flow"""
type AiCatalogThirdPartyFlow implements AiCatalogItem {
  """
  Item configuration for the given group. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  configurationForGroup(
    """Global ID of the group to return the item configuration of."""
    groupId: GroupID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Item configuration for the given project. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  configurationForProject(
    """Global ID of the project to return the item configuration of."""
    projectId: ProjectID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Timestamp of when the item was created."""
  createdAt: Time!

  """Description of the item."""
  description: String!

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

  """Whether the item is a foundational item."""
  foundational: Boolean!

  """Foundational flow reference."""
  foundationalFlowReference: String

  """ID of the item."""
  id: ID!

  """
  Whether the item is enabled in the project it is managed by. This field can
  only be resolved for one AiCatalogItem in any single request.
  """
  isEnabledInManagedByProject: Boolean!

  """Type of the item."""
  itemType: AiCatalogItemType!

  """Number of projects using the item in the last 30 days."""
  last30DayUsageCount: Int!

  """Latest version of the item."""
  latestVersion(
    """Return the latest released version."""
    released: Boolean
  ): AiCatalogItemVersion

  """Name of the item."""
  name: String!

  """Project for the item."""
  project: Project

  """Whether the item is publicly visible in the catalog."""
  public: Boolean!

  """Indicates if the item has been soft deleted."""
  softDeleted: Boolean

  """Timestamp of when the item was soft deleted."""
  softDeletedAt: Time

  """Number of stars for the item."""
  starCount: Int!

  """Whether the current user has starred the item."""
  starred: Boolean!

  """Timestamp of when the item was updated."""
  updatedAt: Time!

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

  """Verification level of the item."""
  verificationLevel: AiCatalogItemVerificationLevel!

  """Versions of the item."""
  versions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

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

  """Description for the Flow."""
  description: String!

  """Name for the Flow."""
  name: String!

  """Project for the Flow."""
  projectId: ProjectID!

  """Whether the Flow is publicly visible in the catalog."""
  public: Boolean!

  """Whether to release the latest version of the Flow."""
  release: Boolean

  """YAML definition for the Flow."""
  definition: String!
}

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

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

  """Item created."""
  item: AiCatalogThirdPartyFlow
}

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

  """Global ID of the catalog Third Party Flow to delete."""
  id: AiCatalogItemID!

  """
  When true, the Third Party Flow will always be hard deleted and never soft deleted. Can only be used by instance admins
  """
  forceHardDelete: Boolean
}

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

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

  """Returns true if catalog Third Party Flow was successfully deleted."""
  success: Boolean!
}

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

  """Global ID of the catalog Flow to update."""
  id: AiCatalogItemID!

  """Description for the Flow."""
  description: String

  """Name for the Flow."""
  name: String

  """Whether the Flow is publicly visible in the catalog."""
  public: Boolean

  """Whether to release the latest version of the Flow."""
  release: Boolean

  """YAML definition for the Flow."""
  definition: String

  """Bump version, calculated from the last released version name."""
  versionBump: AiCatalogVersionBump
}

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

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

  """Flow that was updated."""
  item: AiCatalogThirdPartyFlow
}

"""An AI catalog third party flow version"""
type AiCatalogThirdPartyFlowVersion implements AiCatalogItemVersion {
  """Timestamp of when the item version was created."""
  createdAt: Time!

  """User that created the item version."""
  createdBy: UserCore

  """YAML definition of the third party flow."""
  definition: String!

  """Indicates the item version has been deprecated by the author."""
  deprecated: Boolean!

  """Human-friendly name of the item version. In the form v1.0.0-draft."""
  humanVersionName: String

  """ID of the item version."""
  id: ID!

  """Item the version belongs to."""
  item: AiCatalogItem!

  """Indicates the item version is released."""
  released: Boolean!

  """Timestamp of when the item version was released."""
  releasedAt: Time

  """Timestamp of when the item version was updated."""
  updatedAt: Time!

  """Version name of the item version."""
  versionName: String
}

"""
Ai Catalog user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type aiCatalogUserMetrics {
  """Date of the last Ai Catalog activity for the user."""
  lastDuoActivityOn: Date

  """Total count of `restore_ai_catalog_item` event."""
  restoreAiCatalogItemEventCount: Int

  """Total count of all Ai Catalog events for the user."""
  totalEventCount: Int
}

"""Possible version bumps for AI catalog items."""
enum AiCatalogVersionBump {
  """Major version bump."""
  MAJOR

  """Minor version bump."""
  MINOR

  """Patch version bump."""
  PATCH
}

input AiChatInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID

  """Global ID of the namespace the user is acting on."""
  namespaceId: NamespaceID

  """Content of the message."""
  content: String!

  """
  Information about currently selected text which can be passed for additional context.
  """
  currentFile: AiCurrentFileInput

  """Additional context to be passed for the chat."""
  additionalContext: [AiAdditionalContextInput!]
}

"""Conversation thread of the AI feature"""
type AiConversationsThread {
  """Conversation type of the thread."""
  conversationType: AiConversationsThreadsConversationType!

  """Created date of the thread."""
  createdAt: Time!

  """ID of the thread."""
  id: ID!

  """Last updated date of the thread."""
  lastUpdatedAt: Time!

  """Title of the thread."""
  title: String
}

"""The connection type for AiConversationsThread."""
type AiConversationsThreadConnection {
  """A list of edges."""
  edges: [AiConversationsThreadEdge]

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

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

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

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

"""Conversation type of the thread."""
enum AiConversationsThreadsConversationType {
  """duo_chat_legacy thread."""
  DUO_CHAT_LEGACY

  """duo_code_review thread."""
  DUO_CODE_REVIEW

  """duo_quick_chat thread."""
  DUO_QUICK_CHAT

  """duo_chat thread."""
  DUO_CHAT
}

"""
A `AiConversationThreadID` is a global ID. It is encoded as a string.

An example `AiConversationThreadID` is: `"gid://gitlab/Ai::Conversation::Thread/1"`.
"""
scalar AiConversationThreadID

input AiCurrentFileInput {
  """File name."""
  fileName: String!

  """Selected text."""
  selectedText: String!

  """Content above cursor."""
  contentAboveCursor: String

  """Content below cursor."""
  contentBelowCursor: String
}

input AiDescriptionComposerInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """ID of the project where the changes are from."""
  sourceProjectId: ID

  """Source branch of the changes."""
  sourceBranch: String

  """Target branch of where the changes will be merged into."""
  targetBranch: String

  """Current description."""
  description: String!

  """Current merge request title."""
  title: String!

  """Prompt from user."""
  userPrompt: String!

  """
  Previously AI-generated description content used for context in iterative refinements or follow-up prompts.
  
  """
  previousResponse: String
}

"""Action to perform on a domain setting list for AI features."""
enum AiDomainSettingAction {
  """Add domains to the list."""
  ADD

  """Remove domains from the list."""
  REMOVE
}

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

  """Action to perform on the domain list."""
  action: AiDomainSettingAction!

  """Type of domain setting to update."""
  domainSettingType: AiDomainSettingType!

  """List of domains to add or remove."""
  domains: [String!]!
}

"""Autogenerated return type of AiDomainSettingsInstanceUpdate."""
type AiDomainSettingsInstanceUpdatePayload {
  """Domains that were added in the operation."""
  addedDomains: [String!]

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

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

  """Domains that were removed in the operation."""
  removedDomains: [String!]
}

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

  """Action to perform on the domain list."""
  action: AiDomainSettingAction!

  """Type of domain setting to update."""
  domainSettingType: AiDomainSettingType!

  """List of domains to add or remove."""
  domains: [String!]!

  """Global ID of the root namespace to update."""
  namespaceId: NamespaceID!
}

"""Autogenerated return type of AiDomainSettingsNamespaceUpdate."""
type AiDomainSettingsNamespaceUpdatePayload {
  """Domains that were added in the operation."""
  addedDomains: [String!]

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

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

  """Domains that were removed in the operation."""
  removedDomains: [String!]
}

"""Type of domain setting to retrieve for AI features."""
enum AiDomainSettingType {
  """Domains that are allowed."""
  ALLOWED

  """Domains that are denied."""
  DENIED
}

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

  """Global ID of the project the user is acting on."""
  projectId: ProjectID

  """Global ID of the namespace the user is acting on."""
  namespaceId: NamespaceID

  """Goal of the workflow."""
  goal: String

  """Actions the agent is allowed to perform."""
  agentPrivileges: [Int!]

  """Actions the agent can perform without asking for approval."""
  preApprovedAgentPrivileges: [Int!]

  """Workflow type based on its capability."""
  workflowDefinition: String

  """
  When enabled, Duo Agent Platform may stop to ask the user questions before proceeding.
  """
  allowAgentToRequestUser: Boolean

  """Environment for the workflow."""
  environment: WorkflowEnvironment

  """ID of the catalog item the workflow is triggered from."""
  aiCatalogItemVersionId: AiCatalogItemVersionID

  """IID of the noteable (Issue) that the workflow is associated with."""
  issueId: BigInt

  """
  IID of the noteable (MergeRequest) that the workflow is associated with.
  """
  mergeRequestId: BigInt
}

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

  """Errors encountered during the creation process."""
  errors: [String!]!

  """Created workflow."""
  workflow: DuoWorkflow
}

"""
A `AiDuoWorkflowsWorkflowID` is a global ID. It is encoded as a string.

An example `AiDuoWorkflowsWorkflowID` is: `"gid://gitlab/Ai::DuoWorkflows::Workflow/1"`.
"""
scalar AiDuoWorkflowsWorkflowID

input AiExplainVulnerabilityInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """Include vulnerability source code in the AI prompt."""
  includeSourceCode: Boolean
}

"""Providers for AI features that can be configured."""
enum AiFeatureProviders {
  """Disabled option"""
  DISABLED

  """Vendored option"""
  VENDORED

  """Self hosted option"""
  SELF_HOSTED

  """Unassigned option"""
  UNASSIGNED
}

"""
AI features that can be configured through the Duo self-hosted feature settings.
"""
enum AiFeatures {
  """Code generation feature setting"""
  CODE_GENERATIONS

  """Code completion feature setting"""
  CODE_COMPLETIONS

  """Duo Chat feature setting"""
  DUO_CHAT

  """Duo chat explain code feature setting"""
  DUO_CHAT_EXPLAIN_CODE

  """Duo chat write test feature setting"""
  DUO_CHAT_WRITE_TESTS

  """Duo chat refactor code feature setting"""
  DUO_CHAT_REFACTOR_CODE

  """Duo chat fix code feature setting"""
  DUO_CHAT_FIX_CODE

  """Review merge request feature setting"""
  REVIEW_MERGE_REQUEST

  """Duo agent platform feature setting"""
  DUO_AGENT_PLATFORM

  """Duo agent platform agentic chat feature setting"""
  DUO_AGENT_PLATFORM_AGENTIC_CHAT

  """Review merge request dap feature setting"""
  REVIEW_MERGE_REQUEST_DAP

  """Secret vulnerability fp detection feature setting"""
  SECRET_VULNERABILITY_FP_DETECTION

  """Duo chat troubleshoot job feature setting"""
  DUO_CHAT_TROUBLESHOOT_JOB

  """Generate commit message feature setting"""
  GENERATE_COMMIT_MESSAGE

  """Summarize new merge request feature setting"""
  SUMMARIZE_NEW_MERGE_REQUEST

  """Duo chat explain vulnerability feature setting"""
  DUO_CHAT_EXPLAIN_VULNERABILITY

  """Resolve vulnerability feature setting"""
  RESOLVE_VULNERABILITY

  """Summarize review feature setting"""
  SUMMARIZE_REVIEW

  """Glab ask git command feature setting"""
  GLAB_ASK_GIT_COMMAND

  """Duo chat summarize comment feature setting"""
  DUO_CHAT_SUMMARIZE_COMMENTS

  """Sast vulnerability fp detection feature setting"""
  SAST_VULNERABILITY_FP_DETECTION

  """Sast vulnerability resolution feature setting"""
  SAST_VULNERABILITY_RESOLUTION

  """Security review feature setting"""
  SECURITY_REVIEW
}

"""Duo Chat feature setting"""
type AiFeatureSetting {
  """
  Model selection allowlist for the feature. Returns `null` when the current
  user cannot read the allowlist or when the feature does not support one.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  allowList: AiModelSelectionAllowList @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """LLMs Compatible with the feature."""
  compatibleLlms: [String!]

  """GitLab model selected for use with the AI feature."""
  defaultGitlabModel: AiModelSelectionOfferedModel

  """Identifier for the AI feature."""
  feature: String!

  """GitLab model selected for use with the AI feature."""
  gitlabModel: AiModelSelectionOfferedModel

  """Displayed name of the main feature."""
  mainFeature: String

  """Humanized name for the AI feature, e.g "Code Completion"."""
  provider: String!

  """Current release state of the feature."""
  releaseState: String

  """Self-hosted model selected for use with the AI feature."""
  selfHostedModel: AiSelfHostedModel

  """Displayed AI feature name."""
  title: String

  """Valid GitLab managed models for the feature."""
  validGitlabModels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiModelSelectionOfferedModelConnection!

  """Compatible self-hosted models for the feature."""
  validModels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

"""The connection type for AiFeatureSetting."""
type AiFeatureSettingConnection {
  """A list of edges."""
  edges: [AiFeatureSettingEdge]

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

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

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

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

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

  """AI feature whose model allowlist is being configured."""
  feature: AiFeatures!

  """Whether the model selection allowlist is enabled for the feature."""
  allowlistEnabled: Boolean!

  """
  Identifiers of the GitLab-managed models allowed for the feature. Ignored when `allowlistEnabled` is false.
  """
  allowlistModelRefs: [String!]!
}

"""Autogenerated return type of AiFeatureSettingModelAllowlistUpdate."""
type AiFeatureSettingModelAllowlistUpdatePayload {
  """Model selection allowlist for the feature after the update."""
  allowList: AiModelSelectionAllowList

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

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

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

  """Array of AI features being configured (for single or batch update)."""
  features: [AiFeatures!]!

  """Provider for AI setting."""
  provider: AiFeatureProviders!

  """Global ID of the self-hosted model providing the AI setting."""
  aiSelfHostedModelId: AiSelfHostedModelID

  """Identifier of the selected model for the feature."""
  offeredModelRef: String
}

"""Autogenerated return type of AiFeatureSettingUpdate."""
type AiFeatureSettingUpdatePayload {
  """List of AI feature settings after mutation."""
  aiFeatureSettings: [AiFeatureSetting!]!

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

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

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

  """Full path of the project the AI flow trigger is associated with."""
  projectPath: ID!

  """Service account for the AI flow trigger."""
  userId: UserID

  """Description of the AI flow trigger."""
  description: String!

  """Event types that triggers the AI flow."""
  eventTypes: [Int!]

  """
  Filter conditions for the AI flow trigger. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  filter: JSON

  """Path to the configuration file for the AI flow trigger."""
  configPath: String

  """AI catalog item consumer to use instead of config_path."""
  aiCatalogItemConsumerId: AiCatalogItemConsumerID
}

"""Autogenerated return type of AiFlowTriggerCreate."""
type AiFlowTriggerCreatePayload {
  """Created AI flow trigger."""
  aiFlowTrigger: AiFlowTriggerType

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

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

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

  """ID of the flow trigger to delete."""
  id: AiFlowTriggerID!
}

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

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

"""Possible event types for flow triggers."""
enum AiFlowTriggerEventType {
  """Flow trigger mention event."""
  MENTION

  """Flow trigger assign event."""
  ASSIGN

  """Flow trigger assign_reviewer event."""
  ASSIGN_REVIEWER

  """Flow trigger pipeline_hooks event."""
  PIPELINE_HOOKS

  """Flow trigger merge_request_ready event."""
  MERGE_REQUEST_READY

  """Flow trigger merge_request_code_conflict event."""
  MERGE_REQUEST_CODE_CONFLICT

  """Flow trigger merge_request event."""
  MERGE_REQUEST

  """Flow trigger work_item event."""
  WORK_ITEM
}

"""
A `AiFlowTriggerID` is a global ID. It is encoded as a string.

An example `AiFlowTriggerID` is: `"gid://gitlab/Ai::FlowTrigger/1"`.
"""
scalar AiFlowTriggerID

"""Represents an AI flow trigger"""
type AiFlowTriggerType {
  """AI catalog item consumer associated with the trigger."""
  aiCatalogItemConsumer: AiCatalogItemConsumer

  """Path to the configuration file for the trigger."""
  configPath: String

  """Web URL to the configuration file for the trigger."""
  configUrl: String

  """Timestamp of when the flow trigger was created."""
  createdAt: Time!

  """Description of the flow trigger."""
  description: String!

  """List of events that triggers the flow."""
  eventTypes: [Int!]!

  """
  Filter conditions for the AI flow trigger. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  filter: JSON @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """ID of the flow trigger."""
  id: ID!

  """
  Enforced filter conditions from the foundational flow definition. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  precondition: JSON @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Project of the flow trigger."""
  project: Project!

  """Timestamp of when the flow trigger was last updated."""
  updatedAt: Time!

  """Service account of the flow trigger."""
  user: UserCore
}

"""The connection type for AiFlowTriggerType."""
type AiFlowTriggerTypeConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

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

  """ID of the flow trigger to update."""
  id: AiFlowTriggerID!

  """Service account for the AI flow trigger."""
  userId: UserID

  """Description of the AI flow trigger."""
  description: String

  """Event types that triggers the AI flow."""
  eventTypes: [Int!]

  """Path to the configuration file for the AI flow trigger."""
  configPath: String

  """AI catalog item consumer to use instead of config_path."""
  aiCatalogItemConsumerId: AiCatalogItemConsumerID

  """
  Filter conditions for the AI flow trigger. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  filter: JSON
}

"""Autogenerated return type of AiFlowTriggerUpdate."""
type AiFlowTriggerUpdatePayload {
  """Updated AI flow trigger."""
  aiFlowTrigger: AiFlowTriggerType

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

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

"""Core Agent available for GitLab features."""
type AiFoundationalChatAgent {
  """Avatar URL of the foundational chat agent."""
  avatarUrl: String

  """Description of the agent."""
  description: String!

  """
  Flow versioning parameters used when starting a workflow for this agent. Null
  for agents that resolve versioning elsewhere (e.g. AI Catalog-backed agents).
  """
  flowConfig: AiFoundationalChatAgentFlowConfig

  """Global ID of the foundational chat agent."""
  id: AiFoundationalChatAgentID!

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

  """Reference ID of the agent."""
  reference: String!

  """Versioned reference of the agent."""
  referenceWithVersion: String

  """Whether the agent is selectable in the chat agent selection UI."""
  selectableInChat: Boolean!

  """System prompt for the agent."""
  systemPrompt: String

  """List of built-in tools enabled for the agent."""
  tools: [AiCatalogBuiltInTool!]!

  """Version of the agent."""
  version: String
}

"""The connection type for AiFoundationalChatAgent."""
type AiFoundationalChatAgentConnection {
  """A list of edges."""
  edges: [AiFoundationalChatAgentEdge]

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

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

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

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

"""Flow versioning parameters for a foundational chat agent."""
type AiFoundationalChatAgentFlowConfig {
  """Flow config ID sent to the Duo Workflow Service."""
  flowConfigId: String

  """Flow config schema version sent to the Duo Workflow Service."""
  flowConfigSchemaVersion: String

  """Flow version sent to the Duo Workflow Service."""
  flowVersion: String
}

"""
A `AiFoundationalChatAgentID` is a global ID. It is encoded as a string.

An example `AiFoundationalChatAgentID` is: `"gid://gitlab/Ai::FoundationalChatAgent/1"`.
"""
scalar AiFoundationalChatAgentID

input AiGenerateCommitMessageInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!
}

input AiGenerateDescriptionInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """Content of the message."""
  content: String!

  """Name of the description template to use to generate message off of."""
  descriptionTemplateName: String
}

"""
Instance wide usage data for events stored in either PostgreSQL (default) or
ClickHouse (when configured). Data retention: three months in PostgreSQL,
indefinite in ClickHouse. Premium and Ultimate only.
"""
type AiInstanceUsageData {
  """All Duo usage events."""
  all(
    """
    Start date for the date range. Default is 7 days before the current date.
    """
    startDate: Date

    """End date for the date range. Default is the current day."""
    endDate: Date

    """Filters by events."""
    events: [AiUsageEventType!]

    """Filters by users."""
    userIds: [UserID!]

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

    """
    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
  ): AiInstanceUsageEventConnection
}

type AiInstanceUsageEvent {
  """Type of the event."""
  event: AiUsageEventType!

  """Associated event context data."""
  extras: JSON

  """
  Namespace hierarchy for Namespace or ProjectNamespace associated with the event.
  """
  namespacePath: String

  """When the event happened."""
  timestamp: Time!

  """User associated with the event."""
  user: UserCore!
}

"""The connection type for AiInstanceUsageEvent."""
type AiInstanceUsageEventConnection {
  """A list of edges."""
  edges: [AiInstanceUsageEventEdge]

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

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

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

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

input AiMeasureCommentTemperatureInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """Content of the message."""
  content: String!
}

"""AI features communication message"""
type AiMessage {
  """
  Incremental ID for a chunk from a streamed message. Null when it is not a streamed message.
  """
  chunkId: Int

  """Raw response content."""
  content: String

  """Response content as HTML."""
  contentHtml: String

  """Message errors."""
  errors: [String!]

  """Extra message metadata."""
  extras: AiMessageExtras

  """UUID of the message."""
  id: ID

  """UUID of the original request. Shared between chat prompt and response."""
  requestId: String

  """Message owner role."""
  role: AiMessageRole!

  """Global ID of the existing thread for the Chat conversation."""
  threadId: AiConversationThreadID

  """Message creation timestamp."""
  timestamp: Time!

  """Message type."""
  type: AiMessageType
}

"""The connection type for AiMessage."""
type AiMessageConnection {
  """A list of edges."""
  edges: [AiMessageEdge]

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

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

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

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

"""Extra metadata for AI message."""
type AiMessageExtras {
  """Additional context for the message."""
  additionalContext: [AiAdditionalContext!]

  """Whether the user has provided feedback for the message."""
  hasFeedback: Boolean

  """Sources used to form the message."""
  sources: [JSON!]
}

"""Possible message roles for AI features."""
enum AiMessageRole {
  """user message."""
  USER

  """assistant message."""
  ASSISTANT

  """system message."""
  SYSTEM
}

"""Types of messages returned from AI features."""
enum AiMessageType {
  """Tool selection message."""
  TOOL
}

"""Requires ClickHouse. Premium and Ultimate only."""
type AiMetrics {
  """Duo Agent Platform metrics."""
  agentPlatform(
    """List of flow types to filter."""
    flowTypes: [String!]

    """Negation filters."""
    not: AgentPlatformMetricsNotInput
  ): agentPlatformMetrics

  """Duo Chat metrics."""
  chat: duoChatMetrics

  """Number of code contributors."""
  codeContributorsCount: Int

  """Code review metrics."""
  codeReview: codeReviewMetrics

  """Code suggestions metrics."""
  codeSuggestions(
    """Filter code suggestion metrics by one or more IDE names."""
    ideNames: [String!]

    """Filter code suggestion metrics by one or more languages."""
    languages: [String!]
  ): codeSuggestionMetrics

  """
  Total count of code suggestions accepted by code contributors. Deprecated in GitLab 18.0: moved to codeSuggestions field.
  """
  codeSuggestionsAcceptedCount: Int @deprecated(reason: "moved to codeSuggestions field. Deprecated in GitLab 18.0.")

  """
  Number of code contributors who used GitLab Duo Code Suggestions features.
  Deprecated in GitLab 18.0: moved to codeSuggestions field.
  """
  codeSuggestionsContributorsCount: Int @deprecated(reason: "moved to codeSuggestions field. Deprecated in GitLab 18.0.")

  """
  Total count of code suggestions shown to code contributors. Deprecated in GitLab 18.0: moved to codeSuggestions field.
  """
  codeSuggestionsShownCount: Int @deprecated(reason: "moved to codeSuggestions field. Deprecated in GitLab 18.0.")

  """Number of contributors who used GitLab Duo Chat features."""
  duoChatContributorsCount: Int

  """Number of contributors who used any GitLab Duo feature."""
  duoUsedCount: Int

  """Model Context Protocol metrics."""
  mcp: mcpMetrics

  """Number of users using troubleshoot within a failed pipeline."""
  rootCauseAnalysisUsersCount: Int

  """Troubleshoot job metrics."""
  troubleshoot: troubleshootJobMetrics
}

"""
AI-related metrics with three months of data retention.
Premium and Ultimate only.

"""
type AiMetricsBasic {
  """Code Suggestions metrics."""
  codeSuggestions: codeSuggestionMetricsBasic
}

"""
A `AiModelID` is a global ID. It is encoded as a string.

An example `AiModelID` is: `"gid://gitlab/Ai::Model/1"`.
"""
scalar AiModelID

"""Model selection allowlist for an AI feature"""
type AiModelSelectionAllowList {
  """Whether the model selection allowlist is enabled for the feature."""
  enabled: Boolean!

  """
  All GitLab-managed models offered for the feature with their effective
  allowlist state. Includes both allowed and disallowed models so callers can
  render a complete allowlist UI.
  """
  models(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

"""
GitLab-managed model row in the model selection allowlist for a feature
"""
type AiModelSelectionAllowListModel {
  """
  Whether the model is allowed for this feature under the effective allowlist.
  The currently chosen/default model for the feature is implicitly allowed and
  is therefore true even when the allowlist is enabled and the model is not in
  the stored allowlist refs.
  """
  allowed: Boolean!

  """
  Presentational cost indicator for model usage, e.g "$", "$$", "$$$". Introduced in GitLab 18.7: **Status**: Experiment.
  """
  costIndicator: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Whether this model is the currently chosen/default model for the feature. This
  is the admin-chosen model when set, otherwise the GitLab default model from definitions.
  """
  currentlyChosenModelForFeature: Boolean!

  """
  Brief description of the model, e.g "Fast, cost-effective responses". Introduced in GitLab 18.7: **Status**: Experiment.
  """
  modelDescription: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Provider for the model, e.g "OpenAI". Introduced in GitLab 18.6: **Status**: Experiment.
  """
  modelProvider: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Humanized name for the offered model, e.g "Chat GPT 4o"."""
  name: String!

  """Identifier for the offered model."""
  ref: String!
}

"""The connection type for AiModelSelectionAllowListModel."""
type AiModelSelectionAllowListModelConnection {
  """A list of edges."""
  edges: [AiModelSelectionAllowListModelEdge]

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

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

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

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

"""
AI features that can be configured through the Model Selection feature settings.
"""
enum AiModelSelectionFeatures {
  """Code generation feature setting"""
  CODE_GENERATIONS

  """Code completion feature setting"""
  CODE_COMPLETIONS

  """Duo Chat feature setting"""
  DUO_CHAT

  """Duo chat explain code feature setting"""
  DUO_CHAT_EXPLAIN_CODE

  """Duo chat write test feature setting"""
  DUO_CHAT_WRITE_TESTS

  """Duo chat refactor code feature setting"""
  DUO_CHAT_REFACTOR_CODE

  """Duo chat fix code feature setting"""
  DUO_CHAT_FIX_CODE

  """Duo chat troubleshoot job feature setting"""
  DUO_CHAT_TROUBLESHOOT_JOB

  """Generate commit message feature setting"""
  GENERATE_COMMIT_MESSAGE

  """Summarize new merge request feature setting"""
  SUMMARIZE_NEW_MERGE_REQUEST

  """Duo chat explain vulnerability feature setting"""
  DUO_CHAT_EXPLAIN_VULNERABILITY

  """Resolve vulnerability feature setting"""
  RESOLVE_VULNERABILITY

  """Summarize review feature setting"""
  SUMMARIZE_REVIEW

  """Glab ask git command feature setting"""
  GLAB_ASK_GIT_COMMAND

  """Duo chat summarize comment feature setting"""
  DUO_CHAT_SUMMARIZE_COMMENTS

  """Review merge request feature setting"""
  REVIEW_MERGE_REQUEST

  """Duo agent platform feature setting"""
  DUO_AGENT_PLATFORM

  """Duo agent platform agentic chat feature setting"""
  DUO_AGENT_PLATFORM_AGENTIC_CHAT

  """Sast vulnerability fp detection feature setting"""
  SAST_VULNERABILITY_FP_DETECTION

  """Secret vulnerability fp detection feature setting"""
  SECRET_VULNERABILITY_FP_DETECTION

  """Sast vulnerability resolution feature setting"""
  SAST_VULNERABILITY_RESOLUTION

  """Review merge request dap feature setting"""
  REVIEW_MERGE_REQUEST_DAP

  """Security review feature setting"""
  SECURITY_REVIEW
}

"""Model Selection feature setting for namespaces."""
type AiModelSelectionNamespaceFeatureSetting {
  """
  Model selection allowlist for the feature. Returns `null` when the current
  user cannot read the allowlist or when the feature does not support one.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  allowList: AiModelSelectionAllowList @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """LLMs Compatible with the feature."""
  defaultModel: AiModelSelectionOfferedModel

  """Identifier for the AI feature."""
  feature: String!

  """Displayed name of the main feature."""
  mainFeature: String

  """Namespace that the feature setting is set for."""
  namespace: Group!

  """LLMs Compatible with the feature."""
  selectableModels: [AiModelSelectionOfferedModel!]!

  """Identifier of the current model selected."""
  selectedModel: AiModelSelectionOfferedModel

  """Displayed AI feature name."""
  title: String
}

"""The connection type for AiModelSelectionNamespaceFeatureSetting."""
type AiModelSelectionNamespaceFeatureSettingConnection {
  """A list of edges."""
  edges: [AiModelSelectionNamespaceFeatureSettingEdge]

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

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

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

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

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

  """Group whose model allowlist is being configured."""
  groupId: GroupID!

  """AI feature whose model allowlist is being configured."""
  feature: AiFeatures!

  """Whether the model selection allowlist is enabled for the feature."""
  allowlistEnabled: Boolean!

  """
  Identifiers of the GitLab-managed models allowed for the feature. Ignored when `allowlistEnabled` is false.
  """
  allowlistModelRefs: [String!]!
}

"""
Autogenerated return type of AiModelSelectionNamespaceModelAllowlistUpdate.
"""
type AiModelSelectionNamespaceModelAllowlistUpdatePayload {
  """Model selection allowlist for the feature after the update."""
  allowList: AiModelSelectionAllowList

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

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

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

  """Group for the model selection."""
  groupId: GroupID!

  """Array of AI features being configured (for single or batch update)."""
  features: [AiModelSelectionFeatures!]!

  """Identifier of the selected model for the feature."""
  offeredModelRef: String!
}

"""Autogenerated return type of AiModelSelectionNamespaceUpdate."""
type AiModelSelectionNamespaceUpdatePayload {
  """
  List of AI feature settings after mutation. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  aiFeatureSettings: [AiModelSelectionNamespaceFeatureSetting!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

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

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

"""Model offered for Model Selection"""
type AiModelSelectionOfferedModel {
  """
  Presentational cost indicator for model usage, e.g "$", "$$", "$$$". Introduced in GitLab 18.7: **Status**: Experiment.
  """
  costIndicator: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Brief description of the model, e.g "Fast, cost-effective responses". Introduced in GitLab 18.7: **Status**: Experiment.
  """
  modelDescription: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Provider for the model, e.g "OpenAI". Introduced in GitLab 18.6: **Status**: Experiment.
  """
  modelProvider: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Humanized name for the offered model, e.g "Chat GPT 4o"."""
  name: String!

  """Identifier for the offered model."""
  ref: String!
}

"""The connection type for AiModelSelectionOfferedModel."""
type AiModelSelectionOfferedModelConnection {
  """A list of edges."""
  edges: [AiModelSelectionOfferedModelEdge]

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

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

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

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

type AiNamespaceSettings {
  """
  Indicates whether the AI Catalog is restricted to items within the top-level group's hierarchy.
  """
  aiCatalogRestrictedToGroupHierarchy: Boolean!

  """Indicates whether the namespace has MCP enabled."""
  duoWorkflowMcpEnabled: Boolean!

  """Level of prompt injection protection for the namespace."""
  promptInjectionProtectionLevel: PromptInjectionProtectionLevel!
}

input AiResolveVulnerabilityInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """
  Global ID of the merge request which the merge request containing the vulnerability resolution will target.
  """
  vulnerableMergeRequestId: MergeRequestID
}

"""Self-hosted LLM servers"""
type AiSelfHostedModel {
  """Optional API key for the self-hosted model server."""
  apiToken: String

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

  """Endpoint of the self-hosted model server."""
  endpoint: String

  """AI feature settings using the self-hosted model."""
  featureSettings(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiFeatureSettingConnection

  """Indicates if an API key is set for the self-hosted model server."""
  hasApiToken: Boolean!

  """ID of the self-hosted model server."""
  id: AiSelfHostedModelID!

  """Identifier for 3rd party model provider."""
  identifier: String

  """AI model deployed."""
  model: String!

  """Display name of the AI model deployed."""
  modelDisplayName: String!

  """Deployment name of the self-hosted model."""
  name: String!

  """Provider for the self-hosted model."""
  provider: AiSelfHostedModelProvider!

  """GitLab release status of the model."""
  releaseState: AiSelfHostedModelReleaseState!

  """Timestamp of last update."""
  updatedAt: Time
}

"""The connection type for AiSelfHostedModel."""
type AiSelfHostedModelConnection {
  """A list of edges."""
  edges: [AiSelfHostedModelEdge]

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

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

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

  """Deployment name of the self-hosted model."""
  name: String!

  """AI model deployed."""
  model: AiAcceptedSelfHostedModels!

  """Endpoint of the self-hosted model."""
  endpoint: String

  """API token to access the self-hosted model, if any."""
  apiToken: String

  """Identifier for 3rd party model provider."""
  identifier: String

  """Provider for the self-hosted model."""
  provider: AiSelfHostedModelProvider!
}

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

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

  """Self-hosted hosted connection check result."""
  result: CloudConnectorProbeResult
}

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

  """Deployment name of the self-hosted model."""
  name: String!

  """AI model deployed."""
  model: AiAcceptedSelfHostedModels!

  """Endpoint of the self-hosted model."""
  endpoint: String

  """API token to access the self-hosted model, if any."""
  apiToken: String

  """Identifier for 3rd party model provider."""
  identifier: String

  """Provider for the self-hosted model."""
  provider: AiSelfHostedModelProvider!
}

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

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

  """Self-hosted model after mutation."""
  selfHostedModel: AiSelfHostedModel
}

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

  """Global ID of the self-hosted model to delete."""
  id: AiSelfHostedModelID!
}

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

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

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

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

"""
A `AiSelfHostedModelID` is a global ID. It is encoded as a string.

An example `AiSelfHostedModelID` is: `"gid://gitlab/Ai::SelfHostedModel/1"`.
"""
scalar AiSelfHostedModelID

"""Provider for a self-hosted model."""
enum AiSelfHostedModelProvider {
  """API provider."""
  API

  """Amazon Bedrock provider."""
  BEDROCK

  """Gemini Enterprise Agent Platform provider."""
  VERTEX_AI
}

"""GitLab release state of the model"""
enum AiSelfHostedModelReleaseState {
  """Experimental status."""
  EXPERIMENTAL

  """Beta status."""
  BETA

  """GA status."""
  GA
}

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

  """Global ID of the self-hosted model to update."""
  id: AiSelfHostedModelID!

  """Deployment name of the self-hosted model."""
  name: String!

  """AI model deployed."""
  model: AiAcceptedSelfHostedModels!

  """Endpoint of the self-hosted model."""
  endpoint: String

  """API token to access the self-hosted model, if any."""
  apiToken: String

  """Identifier for 3rd party model provider."""
  identifier: String

  """Provider for the self-hosted model."""
  provider: AiSelfHostedModelProvider!
}

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

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

  """Self-hosted model after mutation."""
  selfHostedModel: AiSelfHostedModel
}

"""
Summarize a new merge request based on two branches. Returns `null` if the
`add_ai_summary_for_new_mr` feature flag is disabled.
"""
input AiSummarizeNewMergeRequestInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!

  """ID of the project where the changes are from."""
  sourceProjectId: ID

  """Source branch of the changes."""
  sourceBranch: String!

  """Target branch of where the changes will be merged into."""
  targetBranch: String!
}

input AiSummarizeReviewInput {
  """Global ID of the resource to mutate."""
  resourceId: AiModelID!
}

"""Action type categorisation for an AI tool"""
enum AiToolActionType {
  """Tool performs read-only operations."""
  READ

  """Tool performs write operations."""
  WRITE

  """Tool performs destructive operations."""
  DESTROY
}

"""Permission mode for an AI tool"""
enum AiToolPermission {
  """Tool is always allowed to run without approval."""
  ALLOW

  """Tool requires human approval before running."""
  ASK

  """Tool is always blocked from running."""
  DENY
}

"""A governance rule for an AI agent tool"""
type AiToolRule {
  """Action type categorisation for the tool."""
  actionType: AiToolActionType!

  """
  Display category for the tool. For example, GitLab Read, Files, and Commands.
  """
  category: String!

  """
  Tool name. Used as stable identifier. Always the tool name string and never a database ID.
  """
  id: ID!

  """
  Permission mode for local or IDE surface. Null means no rule set and the value is inherited from the namespace default.
  """
  localAccess: AiToolPermission

  """Name of the tool as registered in the tool registry."""
  name: String!

  """Source of the tool. Either "gitlab" or "mcp"."""
  source: AiToolSource!

  """
  Permission mode for web surface. Null means no rule set and the value is inherited from the namespace default.
  """
  webAccess: AiToolPermission
}

"""The connection type for AiToolRule."""
type AiToolRuleConnection {
  """A list of edges."""
  edges: [AiToolRuleEdge]

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

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

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

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

"""Source of an AI tool."""
enum AiToolSource {
  """Tool provided by GitLab."""
  GITLAB

  """Tool provided via MCP."""
  MCP
}

"""
Usage data for events stored in either PostgreSQL (default) or ClickHouse (when
configured). Data retention: three months in PostgreSQL, indefinite in
ClickHouse. Requires a personal access token. Works only on top-level groups.
Premium and Ultimate only.
"""
type AiUsageData {
  """All Duo usage events."""
  all(
    """
    Start date for the date range. Default is 7 days before the current date.
    """
    startDate: Date

    """End date for the date range. Default is the current day."""
    endDate: Date

    """Filters by events."""
    events: [AiUsageEventType!]

    """Filters by users."""
    userIds: [UserID!]

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

    """
    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
  ): AiUsageEventConnection

  """Events related to code suggestions."""
  codeSuggestionEvents(
    """
    Start date for the date range. Default is 7 days before the current date.
    """
    startDate: Date

    """End date for the date range. Default is the current day."""
    endDate: Date

    """Filters by events."""
    events: [AiUsageEventType!]

    """Filters by users."""
    userIds: [UserID!]

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

    """
    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
  ): CodeSuggestionEventConnection
}

type AiUsageEvent {
  """Type of the event."""
  event: AiUsageEventType!

  """When the event happened."""
  timestamp: Time!

  """User associated with the event."""
  user: UserCore!
}

"""The connection type for AiUsageEvent."""
type AiUsageEventConnection {
  """A list of edges."""
  edges: [AiUsageEventEdge]

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

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

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

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

"""Type of AI usage event"""
enum AiUsageEventType {
  """Code Suggestion was requested. Old data only."""
  CODE_SUGGESTIONS_REQUESTED

  """Code Suggestion was shown in IDE."""
  CODE_SUGGESTION_SHOWN_IN_IDE

  """Code Suggestion was accepted in IDE."""
  CODE_SUGGESTION_ACCEPTED_IN_IDE

  """Code Suggestion was rejected in IDE."""
  CODE_SUGGESTION_REJECTED_IN_IDE

  """Code Suggestion token was refreshed. Old data only."""
  CODE_SUGGESTION_DIRECT_ACCESS_TOKEN_REFRESH

  """Duo Chat response was requested."""
  REQUEST_DUO_CHAT_RESPONSE

  """Troubleshoot job feature was used."""
  TROUBLESHOOT_JOB

  """Agent platform session was created."""
  AGENT_PLATFORM_SESSION_CREATED

  """Agent platform session was started."""
  AGENT_PLATFORM_SESSION_STARTED

  """Agent platform session was finished."""
  AGENT_PLATFORM_SESSION_FINISHED

  """Agent platform session was dropped."""
  AGENT_PLATFORM_SESSION_DROPPED

  """Agent platform session was stopped."""
  AGENT_PLATFORM_SESSION_STOPPED

  """Agent platform session was resumed."""
  AGENT_PLATFORM_SESSION_RESUMED

  """Duo Code Review encountered an error."""
  ENCOUNTER_DUO_CODE_REVIEW_ERROR_DURING_REVIEW

  """Duo Code Review found no issues after review."""
  FIND_NO_ISSUES_DUO_CODE_REVIEW_AFTER_REVIEW

  """Duo Code Review found nothing to review on MR."""
  FIND_NOTHING_TO_REVIEW_DUO_CODE_REVIEW_ON_MR

  """Duo Code Review posted a diff comment."""
  POST_COMMENT_DUO_CODE_REVIEW_ON_DIFF

  """User gave thumbs-up reaction to Duo Code Review comment."""
  REACT_THUMBS_UP_ON_DUO_CODE_REVIEW_COMMENT

  """User gave thumbs-down reaction to Duo Code Review comment."""
  REACT_THUMBS_DOWN_ON_DUO_CODE_REVIEW_COMMENT

  """MR author requested Duo Code Review."""
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_AUTHOR

  """Non-author requested Duo Code Review on MR."""
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_NON_AUTHOR

  """Files were excluded from Duo Code Review."""
  EXCLUDED_FILES_FROM_DUO_CODE_REVIEW

  """Duo Workflow workload was completed."""
  DUO_WORKFLOW_WORKLOAD_COMPLETED

  """Fix pipeline suggestion was applied."""
  FIX_PIPELINE_SUGGESTION_APPLIED

  """Fix pipeline suggestion was posted."""
  FIX_PIPELINE_SUGGESTION_POSTED

  """MCP tool call was started."""
  START_MCP_TOOL_CALL

  """MCP tool call was finished."""
  FINISH_MCP_TOOL_CALL

  """Duo Agent Platform subscription expired empty state was viewed."""
  VIEW_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_EMPTY_STATE

  """User clicked upgrade on Duo Agent Platform subscription expired state."""
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_UPGRADE

  """
  User clicked learn more on Duo Agent Platform subscription expired state.
  """
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_LEARN_MORE

  """AI Catalog item version was restored as new latest version."""
  RESTORE_AI_CATALOG_ITEM
}

"""
Pre-aggregated per-user metrics for GitLab Code Suggestions and GitLab Duo Chat.
Requires ClickHouse to be enabled. Premium or Ultimate only.
"""
type AiUserMetrics {
  """Agent Platform metrics for the user."""
  agentPlatform: agentPlatformUserMetrics

  """Ai Catalog metrics for the user."""
  aiCatalog: aiCatalogUserMetrics

  """Chat metrics for the user."""
  chat: chatUserMetrics

  """Code Review metrics for the user."""
  codeReview: codeReviewUserMetrics

  """Code Suggestions metrics for the user."""
  codeSuggestions: codeSuggestionsUserMetrics

  """
  Total count of code suggestions accepted by the user. Deprecated in GitLab
  18.7: Use `codeSuggestions.codeSuggestionAcceptedInIdeEventCount` instead.
  """
  codeSuggestionsAcceptedCount: Int @deprecated(reason: "Use `codeSuggestions.codeSuggestionAcceptedInIdeEventCount` instead. Deprecated in GitLab 18.7.")

  """
  Number of user interactions with GitLab Duo Chat. Deprecated in GitLab 18.7:
  Use `chat.requestDuoChatResponseEventCount` instead.
  """
  duoChatInteractionsCount: Int @deprecated(reason: "Use `chat.requestDuoChatResponseEventCount` instead. Deprecated in GitLab 18.7.")

  """Duo Workflow metrics for the user."""
  duoWorkflow: duoWorkflowUserMetrics

  """Fix Pipeline metrics for the user."""
  fixPipeline: fixPipelineUserMetrics

  """Date of the last Duo activity across all features for the user."""
  lastDuoActivityOn: Date

  """Mcp metrics for the user."""
  mcp: mcpUserMetrics

  """Total count of all tracked events for the user."""
  totalEventCount: Int

  """
  Troubleshoot Job metrics for the user. Deprecated in GitLab 19.1: Legacy
  troubleshoot job metrics for the user (event ID 7 only). For current GitLab
  Duo Agent Platform-based troubleshoot jobs, use `agentPlatformSessions` with
  `flow_type = 'fix_pipeline/v1'`.
  """
  troubleshootJob: troubleshootJobUserMetrics @deprecated(reason: "Legacy troubleshoot job metrics for the user (event ID 7 only). For current GitLab Duo Agent Platform-based troubleshoot jobs, use `agentPlatformSessions` with `flow_type = 'fix_pipeline/v1'`. Deprecated in GitLab 19.1.")

  """User associated with metrics."""
  user: AddOnUser
}

"""The connection type for AiUserMetrics."""
type AiUserMetricsConnection {
  """A list of edges."""
  edges: [AiUserMetricsEdge]

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

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

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

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

"""Values for sorting AI user metrics."""
enum AiUserMetricsSort {
  """Total count of all AI events in descending order."""
  TOTAL_EVENTS_COUNT_DESC

  """Total count of all AI events in ascending order."""
  TOTAL_EVENTS_COUNT_ASC

  """Code Suggestions total event count in descending order."""
  CODE_SUGGESTIONS_TOTAL_COUNT_DESC

  """Code Suggestions total event count in ascending order."""
  CODE_SUGGESTIONS_TOTAL_COUNT_ASC

  """Code Suggestions Requested event count in descending order."""
  CODE_SUGGESTIONS_REQUESTED_DESC

  """Code Suggestions Requested event count in ascending order."""
  CODE_SUGGESTIONS_REQUESTED_ASC

  """Code Suggestion Shown In Ide event count in descending order."""
  CODE_SUGGESTION_SHOWN_IN_IDE_DESC

  """Code Suggestion Shown In Ide event count in ascending order."""
  CODE_SUGGESTION_SHOWN_IN_IDE_ASC

  """Code Suggestion Accepted In Ide event count in descending order."""
  CODE_SUGGESTION_ACCEPTED_IN_IDE_DESC

  """Code Suggestion Accepted In Ide event count in ascending order."""
  CODE_SUGGESTION_ACCEPTED_IN_IDE_ASC

  """Code Suggestion Rejected In Ide event count in descending order."""
  CODE_SUGGESTION_REJECTED_IN_IDE_DESC

  """Code Suggestion Rejected In Ide event count in ascending order."""
  CODE_SUGGESTION_REJECTED_IN_IDE_ASC

  """
  Code Suggestion Direct Access Token Refresh event count in descending order.
  """
  CODE_SUGGESTION_DIRECT_ACCESS_TOKEN_REFRESH_DESC

  """
  Code Suggestion Direct Access Token Refresh event count in ascending order.
  """
  CODE_SUGGESTION_DIRECT_ACCESS_TOKEN_REFRESH_ASC

  """Chat total event count in descending order."""
  CHAT_TOTAL_COUNT_DESC

  """Chat total event count in ascending order."""
  CHAT_TOTAL_COUNT_ASC

  """Request Duo Chat Response event count in descending order."""
  REQUEST_DUO_CHAT_RESPONSE_DESC

  """Request Duo Chat Response event count in ascending order."""
  REQUEST_DUO_CHAT_RESPONSE_ASC

  """Troubleshoot Job total event count in descending order."""
  TROUBLESHOOT_JOB_TOTAL_COUNT_DESC

  """Troubleshoot Job total event count in ascending order."""
  TROUBLESHOOT_JOB_TOTAL_COUNT_ASC

  """Troubleshoot Job event count in descending order."""
  TROUBLESHOOT_JOB_DESC

  """Troubleshoot Job event count in ascending order."""
  TROUBLESHOOT_JOB_ASC

  """Agent Platform total event count in descending order."""
  AGENT_PLATFORM_TOTAL_COUNT_DESC

  """Agent Platform total event count in ascending order."""
  AGENT_PLATFORM_TOTAL_COUNT_ASC

  """Agent Platform Session Created event count in descending order."""
  AGENT_PLATFORM_SESSION_CREATED_DESC

  """Agent Platform Session Created event count in ascending order."""
  AGENT_PLATFORM_SESSION_CREATED_ASC

  """Agent Platform Session Started event count in descending order."""
  AGENT_PLATFORM_SESSION_STARTED_DESC

  """Agent Platform Session Started event count in ascending order."""
  AGENT_PLATFORM_SESSION_STARTED_ASC

  """Agent Platform Session Finished event count in descending order."""
  AGENT_PLATFORM_SESSION_FINISHED_DESC

  """Agent Platform Session Finished event count in ascending order."""
  AGENT_PLATFORM_SESSION_FINISHED_ASC

  """Agent Platform Session Dropped event count in descending order."""
  AGENT_PLATFORM_SESSION_DROPPED_DESC

  """Agent Platform Session Dropped event count in ascending order."""
  AGENT_PLATFORM_SESSION_DROPPED_ASC

  """Agent Platform Session Stopped event count in descending order."""
  AGENT_PLATFORM_SESSION_STOPPED_DESC

  """Agent Platform Session Stopped event count in ascending order."""
  AGENT_PLATFORM_SESSION_STOPPED_ASC

  """Agent Platform Session Resumed event count in descending order."""
  AGENT_PLATFORM_SESSION_RESUMED_DESC

  """Agent Platform Session Resumed event count in ascending order."""
  AGENT_PLATFORM_SESSION_RESUMED_ASC

  """
  View Duo Agentic Subscription Expired Empty State event count in descending order.
  """
  VIEW_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_EMPTY_STATE_DESC

  """
  View Duo Agentic Subscription Expired Empty State event count in ascending order.
  """
  VIEW_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_EMPTY_STATE_ASC

  """
  Click Duo Agentic Subscription Expired Upgrade event count in descending order.
  """
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_UPGRADE_DESC

  """
  Click Duo Agentic Subscription Expired Upgrade event count in ascending order.
  """
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_UPGRADE_ASC

  """
  Click Duo Agentic Subscription Expired Learn More event count in descending order.
  """
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_LEARN_MORE_DESC

  """
  Click Duo Agentic Subscription Expired Learn More event count in ascending order.
  """
  CLICK_DUO_AGENTIC_SUBSCRIPTION_EXPIRED_LEARN_MORE_ASC

  """Code Review total event count in descending order."""
  CODE_REVIEW_TOTAL_COUNT_DESC

  """Code Review total event count in ascending order."""
  CODE_REVIEW_TOTAL_COUNT_ASC

  """
  Encounter Duo Code Review Error During Review event count in descending order.
  """
  ENCOUNTER_DUO_CODE_REVIEW_ERROR_DURING_REVIEW_DESC

  """
  Encounter Duo Code Review Error During Review event count in ascending order.
  """
  ENCOUNTER_DUO_CODE_REVIEW_ERROR_DURING_REVIEW_ASC

  """
  Find No Issues Duo Code Review After Review event count in descending order.
  """
  FIND_NO_ISSUES_DUO_CODE_REVIEW_AFTER_REVIEW_DESC

  """
  Find No Issues Duo Code Review After Review event count in ascending order.
  """
  FIND_NO_ISSUES_DUO_CODE_REVIEW_AFTER_REVIEW_ASC

  """
  Find Nothing To Review Duo Code Review On Mr event count in descending order.
  """
  FIND_NOTHING_TO_REVIEW_DUO_CODE_REVIEW_ON_MR_DESC

  """
  Find Nothing To Review Duo Code Review On Mr event count in ascending order.
  """
  FIND_NOTHING_TO_REVIEW_DUO_CODE_REVIEW_ON_MR_ASC

  """Post Comment Duo Code Review On Diff event count in descending order."""
  POST_COMMENT_DUO_CODE_REVIEW_ON_DIFF_DESC

  """Post Comment Duo Code Review On Diff event count in ascending order."""
  POST_COMMENT_DUO_CODE_REVIEW_ON_DIFF_ASC

  """
  React Thumbs Up On Duo Code Review Comment event count in descending order.
  """
  REACT_THUMBS_UP_ON_DUO_CODE_REVIEW_COMMENT_DESC

  """
  React Thumbs Up On Duo Code Review Comment event count in ascending order.
  """
  REACT_THUMBS_UP_ON_DUO_CODE_REVIEW_COMMENT_ASC

  """
  React Thumbs Down On Duo Code Review Comment event count in descending order.
  """
  REACT_THUMBS_DOWN_ON_DUO_CODE_REVIEW_COMMENT_DESC

  """
  React Thumbs Down On Duo Code Review Comment event count in ascending order.
  """
  REACT_THUMBS_DOWN_ON_DUO_CODE_REVIEW_COMMENT_ASC

  """
  Request Review Duo Code Review On Mr By Author event count in descending order.
  """
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_AUTHOR_DESC

  """
  Request Review Duo Code Review On Mr By Author event count in ascending order.
  """
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_AUTHOR_ASC

  """
  Request Review Duo Code Review On Mr By Non Author event count in descending order.
  """
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_NON_AUTHOR_DESC

  """
  Request Review Duo Code Review On Mr By Non Author event count in ascending order.
  """
  REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_NON_AUTHOR_ASC

  """Excluded Files From Duo Code Review event count in descending order."""
  EXCLUDED_FILES_FROM_DUO_CODE_REVIEW_DESC

  """Excluded Files From Duo Code Review event count in ascending order."""
  EXCLUDED_FILES_FROM_DUO_CODE_REVIEW_ASC

  """Mcp total event count in descending order."""
  MCP_TOTAL_COUNT_DESC

  """Mcp total event count in ascending order."""
  MCP_TOTAL_COUNT_ASC

  """Start Mcp Tool Call event count in descending order."""
  START_MCP_TOOL_CALL_DESC

  """Start Mcp Tool Call event count in ascending order."""
  START_MCP_TOOL_CALL_ASC

  """Finish Mcp Tool Call event count in descending order."""
  FINISH_MCP_TOOL_CALL_DESC

  """Finish Mcp Tool Call event count in ascending order."""
  FINISH_MCP_TOOL_CALL_ASC

  """Fix Pipeline total event count in descending order."""
  FIX_PIPELINE_TOTAL_COUNT_DESC

  """Fix Pipeline total event count in ascending order."""
  FIX_PIPELINE_TOTAL_COUNT_ASC

  """Fix Pipeline Suggestion Posted event count in descending order."""
  FIX_PIPELINE_SUGGESTION_POSTED_DESC

  """Fix Pipeline Suggestion Posted event count in ascending order."""
  FIX_PIPELINE_SUGGESTION_POSTED_ASC

  """Fix Pipeline Suggestion Applied event count in descending order."""
  FIX_PIPELINE_SUGGESTION_APPLIED_DESC

  """Fix Pipeline Suggestion Applied event count in ascending order."""
  FIX_PIPELINE_SUGGESTION_APPLIED_ASC

  """Duo Workflow total event count in descending order."""
  DUO_WORKFLOW_TOTAL_COUNT_DESC

  """Duo Workflow total event count in ascending order."""
  DUO_WORKFLOW_TOTAL_COUNT_ASC

  """Duo Workflow Workload Completed event count in descending order."""
  DUO_WORKFLOW_WORKLOAD_COMPLETED_DESC

  """Duo Workflow Workload Completed event count in ascending order."""
  DUO_WORKFLOW_WORKLOAD_COMPLETED_ASC

  """Ai Catalog total event count in descending order."""
  AI_CATALOG_TOTAL_COUNT_DESC

  """Ai Catalog total event count in ascending order."""
  AI_CATALOG_TOTAL_COUNT_ASC

  """Restore Ai Catalog Item event count in descending order."""
  RESTORE_AI_CATALOG_ITEM_DESC

  """Restore Ai Catalog Item event count in ascending order."""
  RESTORE_AI_CATALOG_ITEM_ASC
}

"""
Represents the Geo replication and verification state of an `ai_vectorizable_file_upload`
"""
type AiVectorizableFileUploadRegistry {
  """ID of the AI Vectorizable File Upload."""
  aiVectorizableFileUploadId: ID!

  """
  Indicate if the checksums of the AiVectorizableFileUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the AiVectorizableFileUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this AiVectorizableFileUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the AiVectorizableFileUploadRegistry"""
  id: ID!

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

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

  """
  Indicate if the AiVectorizableFileUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the AiVectorizableFileUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the AiVectorizableFileUploadRegistry is resynced"""
  retryAt: Time

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

  """Sync state of the AiVectorizableFileUploadRegistry"""
  state: RegistryState

  """The local checksum of the AiVectorizableFileUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the AiVectorizableFileUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the AiVectorizableFileUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the AiVectorizableFileUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the AiVectorizableFileUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of AiVectorizableFileUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the AiVectorizableFileUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the AiVectorizableFileUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for AiVectorizableFileUploadRegistry."""
type AiVectorizableFileUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

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

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

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

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

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

type AiXrayReport {
  """Language of the x-ray report."""
  language: String!
}

"""The connection type for AiXrayReport."""
type AiXrayReportConnection {
  """A list of edges."""
  edges: [AiXrayReportEdge]

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

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

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

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

"""Describes an alert from the project's Alert Management"""
type AlertManagementAlert implements NoteableInterface & Todoable {
  """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
  ): UserCoreConnection

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

    """
    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
  ): UserCoreConnection!

  """Timestamp the alert was created."""
  createdAt: Time

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

  """Alert details."""
  details: JSON

  """URL of the alert detail page."""
  detailsUrl: String!

  """All discussions on the 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 the alert."""
  eventCount: Int

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

  """ID of the alert."""
  id: ID!

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

  """Issue attached to the alert."""
  issue: Issue

  """
  Internal ID of the GitLab issue attached to the alert. Deprecated in GitLab 13.10: Use issue field.
  """
  issueIid: String @deprecated(reason: "Use issue field. Deprecated in GitLab 13.10.")

  """
  URL for metrics embed for the alert. Deprecated in GitLab 16.0: Returns no data. Underlying feature was removed in 16.0.
  """
  metricsDashboardUrl: String @deprecated(reason: "Returns no data. Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.")

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

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """
  Alert condition for Prometheus. Deprecated in GitLab 17.3: Returns no data. Underlying feature was removed in 16.0.
  """
  prometheusAlert: PrometheusAlert @deprecated(reason: "Returns no data. Underlying feature was removed in 16.0. Deprecated in GitLab 17.3.")

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

  """To-do items of the current user for the alert."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

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

    """
    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
  ): TodoConnection

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

  """URL of the alert."""
  webUrl: String!
}

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

"""
A `AlertManagementAlertID` is a global ID. It is encoded as a string.

An example `AlertManagementAlertID` is: `"gid://gitlab/AlertManagement::Alert/1"`.
"""
scalar AlertManagementAlertID

"""Values for sorting alerts"""
enum AlertManagementAlertSort {
  """Start time by ascending order."""
  STARTED_AT_ASC

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

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

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

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

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

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

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

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

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

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

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

"""Filters the alerts based on given domain"""
enum AlertManagementDomainFilter {
  """Alerts for operations domain."""
  operations

  """
  Alerts for threat monitoring domain. Deprecated in GitLab 15.0: Network
  policies are deprecated and will be removed in GitLab 16.0.
  """
  threat_monitoring @deprecated(reason: "Network policies are deprecated and will be removed in GitLab 16.0. Deprecated in GitLab 15.0.")
}

"""An endpoint and credentials used to accept alerts for a project"""
type AlertManagementHttpIntegration implements AlertManagementIntegration {
  """Whether the endpoint is currently accepting alerts."""
  active: Boolean

  """
  URL at which Prometheus metrics can be queried to populate the metrics
  dashboard. Deprecated in GitLab 18.2: Feature removed in 16.0.
  """
  apiUrl: String @deprecated(reason: "Feature removed in 16.0. Deprecated in GitLab 18.2.")

  """ID of the integration."""
  id: ID!

  """Name of the integration."""
  name: String

  """Extract alert fields from payload example for custom mapping."""
  payloadAlertFields: [AlertManagementPayloadAlertField!]

  """
  The custom mapping of GitLab alert attributes to fields from the payload_example.
  """
  payloadAttributeMappings: [AlertManagementPayloadAlertMappingField!]

  """Example of an alert payload."""
  payloadExample: JsonString

  """Token used to authenticate alert notification requests."""
  token: String

  """Type of integration."""
  type: AlertManagementIntegrationType!

  """Endpoint which accepts alert notifications."""
  url: String
}

"""The connection type for AlertManagementHttpIntegration."""
type AlertManagementHttpIntegrationConnection {
  """A list of edges."""
  edges: [AlertManagementHttpIntegrationEdge]

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

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

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

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

"""
A `AlertManagementHttpIntegrationID` is a global ID. It is encoded as a string.

An example `AlertManagementHttpIntegrationID` is: `"gid://gitlab/AlertManagement::HttpIntegration/1"`.
"""
scalar AlertManagementHttpIntegrationID

interface AlertManagementIntegration {
  """Whether the endpoint is currently accepting alerts."""
  active: Boolean

  """
  URL at which Prometheus metrics can be queried to populate the metrics
  dashboard. Deprecated in GitLab 18.2: Feature removed in 16.0.
  """
  apiUrl: String @deprecated(reason: "Feature removed in 16.0. Deprecated in GitLab 18.2.")

  """ID of the integration."""
  id: ID!

  """Name of the integration."""
  name: String

  """Token used to authenticate alert notification requests."""
  token: String

  """Type of integration."""
  type: AlertManagementIntegrationType!

  """Endpoint which accepts alert notifications."""
  url: String
}

"""The connection type for AlertManagementIntegration."""
type AlertManagementIntegrationConnection {
  """A list of edges."""
  edges: [AlertManagementIntegrationEdge]

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

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

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

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

"""Values of types of integrations"""
enum AlertManagementIntegrationType {
  """Prometheus integration."""
  PROMETHEUS

  """Integration with any monitoring tool."""
  HTTP
}

"""
Represents the Geo replication and verification state of a alert_management_metric_image_upload
"""
type AlertManagementMetricImageUploadRegistry {
  """ID of the Alert Management Metric Image Upload."""
  alertManagementMetricImageUploadId: ID!

  """
  Indicate if the checksums of the AlertManagementMetricImageUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """
  Timestamp when the AlertManagementMetricImageUploadRegistry was created
  """
  createdAt: Time

  """
  Path to the data management view for this AlertManagementMetricImageUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the AlertManagementMetricImageUploadRegistry"""
  id: ID!

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

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

  """
  Indicate if the AlertManagementMetricImageUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the AlertManagementMetricImageUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the AlertManagementMetricImageUploadRegistry is resynced
  """
  retryAt: Time

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

  """Sync state of the AlertManagementMetricImageUploadRegistry"""
  state: RegistryState

  """The local checksum of the AlertManagementMetricImageUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the AlertManagementMetricImageUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the AlertManagementMetricImageUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the AlertManagementMetricImageUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the AlertManagementMetricImageUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of AlertManagementMetricImageUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the AlertManagementMetricImageUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the AlertManagementMetricImageUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for AlertManagementMetricImageUploadRegistry."""
type AlertManagementMetricImageUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

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

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

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

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

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

"""Parsed field from an alert used for custom mappings"""
type AlertManagementPayloadAlertField {
  """Human-readable label of the payload path."""
  label: String

  """Path to value inside payload JSON."""
  path: [PayloadAlertFieldPathSegment!]

  """Type of the parsed value."""
  type: AlertManagementPayloadAlertFieldType
}

"""
Field that are available while modifying the custom mapping attributes for an HTTP integration
"""
input AlertManagementPayloadAlertFieldInput {
  """GitLab alert field name."""
  fieldName: AlertManagementPayloadAlertFieldName!

  """Path to value inside payload JSON."""
  path: [PayloadAlertFieldPathSegment!]!

  """Human-readable label of the payload path."""
  label: String

  """Type of the parsed value."""
  type: AlertManagementPayloadAlertFieldType!
}

"""Values for alert field names used in the custom mapping"""
enum AlertManagementPayloadAlertFieldName {
  """The title of the incident."""
  TITLE

  """A high-level summary of the problem."""
  DESCRIPTION

  """The time of the incident."""
  START_TIME

  """The resolved time of the incident."""
  END_TIME

  """The affected service."""
  SERVICE

  """The name of the associated monitoring tool."""
  MONITORING_TOOL

  """One or more hosts, as to where this incident occurred."""
  HOSTS

  """The severity of the alert."""
  SEVERITY

  """
  The unique identifier of the alert. This can be used to group occurrences of the same alert.
  """
  FINGERPRINT

  """The name of the associated GitLab environment."""
  GITLAB_ENVIRONMENT_NAME
}

"""Values for alert field types used in the custom mapping"""
enum AlertManagementPayloadAlertFieldType {
  """Array field type."""
  ARRAY

  """DateTime field type."""
  DATETIME

  """String field type."""
  STRING

  """Number field type."""
  NUMBER
}

"""Parsed field (with its name) from an alert used for custom mappings"""
type AlertManagementPayloadAlertMappingField {
  """GitLab alert field name."""
  fieldName: AlertManagementPayloadAlertFieldName

  """Human-readable label of the payload path."""
  label: String

  """Path to value inside payload JSON."""
  path: [PayloadAlertFieldPathSegment!]

  """Type of the parsed value."""
  type: AlertManagementPayloadAlertFieldType
}

"""
**DEPRECATED - Use AlertManagementHttpIntegration directly** An endpoint and
credentials used to accept Prometheus alerts for a project
"""
type AlertManagementPrometheusIntegration implements AlertManagementIntegration {
  """Whether the endpoint is currently accepting alerts."""
  active: Boolean

  """
  URL at which Prometheus metrics can be queried to populate the metrics
  dashboard. Deprecated in GitLab 18.2: Feature removed in 16.0.
  """
  apiUrl: String @deprecated(reason: "Feature removed in 16.0. Deprecated in GitLab 18.2.")

  """ID of the integration."""
  id: ID!

  """Name of the integration."""
  name: String

  """Token used to authenticate alert notification requests."""
  token: String

  """Type of integration."""
  type: AlertManagementIntegrationType!

  """Endpoint which accepts alert notifications."""
  url: String
}

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

  """High severity"""
  HIGH

  """Medium severity"""
  MEDIUM

  """Low severity"""
  LOW

  """Info severity"""
  INFO

  """Unknown severity"""
  UNKNOWN
}

"""Alert status values"""
enum AlertManagementStatus {
  """Investigation has not started."""
  TRIGGERED

  """Someone is actively investigating the problem."""
  ACKNOWLEDGED

  """The problem has been addressed."""
  RESOLVED

  """No action will be taken."""
  IGNORED
}

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

  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """
  Usernames to assign to the alert. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

  """Operation to perform. Defaults to REPLACE."""
  operationMode: MutationOperationMode
}

"""Autogenerated return type of AlertSetAssignees."""
type AlertSetAssigneesPayload {
  """Alert after mutation."""
  alert: AlertManagementAlert

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

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

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

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

  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!
}

"""Autogenerated return type of AlertTodoCreate."""
type AlertTodoCreatePayload {
  """Alert after mutation."""
  alert: AlertManagementAlert

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

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

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

interface AmazonS3ConfigurationInterface {
  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String!

  """Active status of the destination."""
  active: Boolean!

  """AWS region where the bucket is created."""
  awsRegion: String!

  """Name of the bucket where the audit events would be logged."""
  bucketName: String!

  """ID of the configuration."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""Stores Amazon S3 configurations for audit event streaming."""
type AmazonS3ConfigurationType implements AmazonS3ConfigurationInterface {
  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String!

  """Active status of the destination."""
  active: Boolean!

  """AWS region where the bucket is created."""
  awsRegion: String!

  """Name of the bucket where the audit events would be logged."""
  bucketName: String!

  """Group the configuration belongs to."""
  group: Group!

  """ID of the configuration."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""The connection type for AmazonS3ConfigurationType."""
type AmazonS3ConfigurationTypeConnection {
  """A list of edges."""
  edges: [AmazonS3ConfigurationTypeEdge]

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

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

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

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

"""
ClickHouse-based analytics endpoints. Data can be delayed by 10 minutes.
"""
type Analytics {
  """Aggregation engine for GitLab Duo Agent Platform sessions usage"""
  agentPlatformSessions(
    """Filter by one or many user Global IDs"""
    userId: [String!]

    """Filter by one or many flow types"""
    flowType: [String!]

    """Filter by session creation timestamp. Start of the range."""
    createdEventAtFrom: Time

    """Filter by session creation timestamp. End of the range."""
    createdEventAtTo: Time
  ): AgentPlatformSessionsAggregationScope

  """
  Aggregation engine for contribution analytics Introduced in GitLab 19.0: **Status**: Experiment.
  """
  contributions(
    """Filter by one or many author Global IDs"""
    authorId: [String!]

    """Filter by contribution timestamp. Start of the range."""
    createdAtFrom: Time

    """Filter by contribution timestamp. End of the range."""
    createdAtTo: Time
  ): ContributionsAggregationScope @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Aggregation engine for deployment analytics Introduced in GitLab 19.0: **Status**: Experiment.
  """
  deployments(
    """Filter by one or many deployment statuses"""
    status: [String!]

    """Filter by one or many environment Global IDs"""
    environmentId: [String!]

    """Filter by one or many deployment refs"""
    ref: [String!]

    """Filter by deployment creation timestamp. Start of the range."""
    createdAtFrom: Time

    """Filter by deployment creation timestamp. End of the range."""
    createdAtTo: Time

    """Filter by deployment finish timestamp. Start of the range."""
    finishedAtFrom: Time

    """Filter by deployment finish timestamp. End of the range."""
    finishedAtTo: Time
  ): DeploymentsAggregationScope @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Aggregation engine for GitLab Duo Code Suggestions usage"""
  duoCodeSuggestions(
    """Filter by one or many user Global IDs"""
    userId: [String!]

    """Filter by suggestion language"""
    language: [String!]

    """Filter by IDE name"""
    ideName: [String!]

    """Filter by suggestion timestamp. Start of the range."""
    timestampFrom: Time

    """Filter by suggestion timestamp. End of the range."""
    timestampTo: Time
  ): DuoCodeSuggestionsAggregationScope

  """Aggregation engine for GitLab Duo AI usage events"""
  duoUsageEvents(
    """Filter by one or many user Global IDs"""
    userId: [String!]

    """Filter by one or many events"""
    event: [String!]

    """Filter by one or many features"""
    feature: [String!]

    """Filter by event timestamp. Start of the range."""
    timestampFrom: Time

    """Filter by event timestamp. End of the range."""
    timestampTo: Time
  ): DuoUsageEventsAggregationScope

  """
  Aggregation engine for finished pipelines analytics Introduced in GitLab 19.0: **Status**: Experiment.
  """
  finishedPipelines(
    """Filter by one or many pipeline statuses"""
    status: [String!]

    """Filter by one or many pipeline sources"""
    source: [String!]

    """Filter by one or many pipeline refs"""
    ref: [String!]

    """Filter by pipeline start timestamp. Start of the range."""
    startedAtFrom: Time

    """Filter by pipeline start timestamp. End of the range."""
    startedAtTo: Time

    """Filter by pipeline finish timestamp. Start of the range."""
    finishedAtFrom: Time

    """Filter by pipeline finish timestamp. End of the range."""
    finishedAtTo: Time
  ): FinishedPipelinesAggregationScope @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
}

enum AnalyticsAggregationPeriod {
  """Daily aggregation."""
  DAY

  """Weekly aggregation."""
  WEEK

  """Monthly aggregation."""
  MONTH
}

"""
A `AnalyticsCustomDashboardsDashboardID` is a global ID. It is encoded as a string.

An example `AnalyticsCustomDashboardsDashboardID` is: `"gid://gitlab/Analytics::CustomDashboards::Dashboard/1"`.
"""
scalar AnalyticsCustomDashboardsDashboardID

"""
A `AnalyticsCycleAnalyticsStageID` is a global ID. It is encoded as a string.

An example `AnalyticsCycleAnalyticsStageID` is: `"gid://gitlab/Analytics::CycleAnalytics::Stage/1"`.
"""
scalar AnalyticsCycleAnalyticsStageID

"""
A `AnalyticsCycleAnalyticsValueStreamID` is a global ID. It is encoded as a string.

An example `AnalyticsCycleAnalyticsValueStreamID` is: `"gid://gitlab/Analytics::CycleAnalytics::ValueStream/1"`.
"""
scalar AnalyticsCycleAnalyticsValueStreamID

"""
A `AnalyticsDevopsAdoptionEnabledNamespaceID` is a global ID. It is encoded as a string.

An example `AnalyticsDevopsAdoptionEnabledNamespaceID` is: `"gid://gitlab/Analytics::DevopsAdoption::EnabledNamespace/1"`.
"""
scalar AnalyticsDevopsAdoptionEnabledNamespaceID

"""Input type for filtering projects by analyzer type and status"""
input AnalyzerFilterInput {
  """Type of analyzer to filter by."""
  analyzerType: AnalyzerTypeEnum!

  """Status of the analyzer to filter by."""
  status: AnalyzerStatusEnum!
}

"""Counts for each analyzer status in the group and subgroups."""
type AnalyzerGroupStatusType {
  """Analyzer type."""
  analyzerType: AnalyzerTypeEnum!

  """Number of projects where `analyzer_type` failed to execute."""
  failure: Int!

  """Namespace ID."""
  namespaceId: Int!

  """Number of projects where `analyzer_type` is not configured."""
  notConfigured: Int!

  """
  Number of projects where `analyzer_type` has not run in three consecutive pipelines in the default branch.
  """
  stale: Int!

  """Number of projects where `analyzer_type` completed successfully."""
  success: Int!

  """Total number of projects descending from the group."""
  totalProjectsCount: Int!

  """Timestamp of when the status was last updated."""
  updatedAt: ISO8601DateTime!
}

"""Analyzer status (success/fail) for projects"""
type AnalyzerProjectStatusType {
  """Analyzer type."""
  analyzerType: AnalyzerTypeEnum!

  """Build ID."""
  buildId: JobID

  """Last time analyzer was called."""
  lastCall: Time!

  """Project ID."""
  projectId: Int!

  """
  Source of the build associated with the analyzer status. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  source: AnalyzerSourceEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Analyzer status."""
  status: AnalyzerStatusEnum!

  """Timestamp of when the status was last updated."""
  updatedAt: ISO8601DateTime!
}

"""Source of the build that ran the analyzer"""
enum AnalyzerSourceEnum {
  """Job source is a scan execution policy."""
  SCAN_EXECUTION_POLICY

  """Job source is a pipeline execution policy."""
  PIPELINE_EXECUTION_POLICY

  """Job source is a security scan profile."""
  SECURITY_SCAN_PROFILES

  """Job source is a scheduled pipeline execution policy."""
  PIPELINE_EXECUTION_POLICY_SCHEDULE

  """Job source is a security orchestration policy."""
  SECURITY_ORCHESTRATION_POLICY

  """Job source is an on-demand DAST scan."""
  ON_DEMAND_DAST_SCAN

  """Job source is an on-demand DAST site profile validation."""
  ON_DEMAND_DAST_VALIDATION

  """Job source is defined or included in .gitlab-ci.yml."""
  YML
}

"""Enum for types of analyzers """
enum AnalyzerStatusEnum {
  """Last analyzer execution finished successfully."""
  SUCCESS

  """Last analyzer execution failed."""
  FAILED

  """Analyzer is not configured."""
  NOT_CONFIGURED

  """Analyzer is configured, but has not run in any recent pipelines."""
  STALE
}

"""Enum for types of analyzers """
enum AnalyzerTypeEnum {
  """Sast analyzer."""
  SAST

  """Sast advanced analyzer."""
  SAST_ADVANCED

  """Sast iac analyzer."""
  SAST_IAC

  """Dast analyzer."""
  DAST

  """Dependency scanning analyzer."""
  DEPENDENCY_SCANNING

  """Coverage fuzzing analyzer."""
  COVERAGE_FUZZING

  """Api fuzzing analyzer."""
  API_FUZZING

  """Cluster image scanning analyzer."""
  CLUSTER_IMAGE_SCANNING

  """Secret detection analyzer."""
  SECRET_DETECTION_PIPELINE_BASED

  """Container scanning analyzer."""
  CONTAINER_SCANNING_PIPELINE_BASED

  """Secret push protection. Managed via project security settings."""
  SECRET_DETECTION_SECRET_PUSH_PROTECTION

  """
  Container scanning for registry. Managed via project security settings.
  """
  CONTAINER_SCANNING_FOR_REGISTRY

  """Any kind of container scanning."""
  CONTAINER_SCANNING

  """Any kind of secret detection."""
  SECRET_DETECTION
}

type AncestorType {
  """Name of the ancestor."""
  name: String

  """Version of the ancestor."""
  version: String
}

"""Data associated with configuring API fuzzing scans in GitLab CI"""
type ApiFuzzingCiConfiguration {
  """All available scan modes."""
  scanModes: [ApiFuzzingScanMode!]

  """All default scan profiles."""
  scanProfiles: [ApiFuzzingScanProfile!]
}

"""All possible ways to specify the API surface for an API fuzzing scan."""
enum ApiFuzzingScanMode {
  """The API surface is specified by a HAR file."""
  HAR

  """The API surface is specified by a OPENAPI file."""
  OPENAPI

  """The API surface is specified by a POSTMAN file."""
  POSTMAN
}

"""An API fuzzing scan profile."""
type ApiFuzzingScanProfile {
  """Short description of the profile."""
  description: String

  """Unique name of the profile."""
  name: String

  """Syntax highlighted HTML representation of the YAML."""
  yaml: String
}

"""Represents the approval policy"""
type ApprovalPolicy implements OrchestrationPolicy {
  """Multiple approvers action."""
  actionApprovers: [PolicyApproversType!]

  """
  All potential approvers of the group type, including groups inaccessible to the user.
  """
  allGroupApprovers: [PolicyApprovalGroup!]

  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Approvers of the custom role type. Users belonging to these role(s) alone will be approvers.
  """
  customRoles: [MemberRole!]

  """
  All deprecated properties in the policy. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  deprecatedProperties: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """Enforcement type of the policy. Can be "enforce" or "warn"."""
  enforcementType: PolicyEnforcementType

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """
  Approvers of the role type. Users belonging to these role(s) alone will be approvers.
  """
  roleApprovers: [MemberAccessLevelName!]

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """Approvers of the user type."""
  userApprovers: [UserCore!]

  """YAML definition of the policy."""
  yaml: String!
}

"""Represents policy fields related to the approval policy."""
type ApprovalPolicyAttributesType {
  """Multiple approvers action."""
  actionApprovers: [PolicyApproversType!]

  """
  All potential approvers of the group type, including groups inaccessible to the user.
  """
  allGroupApprovers: [PolicyApprovalGroup!]

  """
  Approvers of the custom role type. Users belonging to these role(s) alone will be approvers.
  """
  customRoles: [MemberRole!]

  """
  All deprecated properties in the policy. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  deprecatedProperties: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Enforcement type of the policy. Can be "enforce" or "warn"."""
  enforcementType: PolicyEnforcementType

  """
  Approvers of the role type. Users belonging to these role(s) alone will be approvers.
  """
  roleApprovers: [MemberAccessLevelName!]

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Approvers of the user type."""
  userApprovers: [UserCore!]
}

"""The connection type for ApprovalPolicy."""
type ApprovalPolicyConnection {
  """A list of edges."""
  edges: [ApprovalPolicyEdge]

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

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

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

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

"""
Describes a project approval rule regarding who can approve merge requests.
"""
type ApprovalProjectRule {
  """Number of required approvals."""
  approvalsRequired: Int

  """
  List of users eligible to approve merge requests for the approval rule.
  """
  eligibleApprovers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection

  """ID of the rule."""
  id: GlobalID!

  """Name of the rule."""
  name: String

  """Type of the rule."""
  type: ApprovalRuleType
}

"""The connection type for ApprovalProjectRule."""
type ApprovalProjectRuleConnection {
  """A list of edges."""
  edges: [ApprovalProjectRuleEdge]

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

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

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

  """Global ID of the approval project rule to delete."""
  id: ApprovalProjectRuleID!
}

"""Autogenerated return type of approvalProjectRuleDelete."""
type approvalProjectRuleDeletePayload {
  """Deleted approval rule."""
  approvalRule: ApprovalProjectRule

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

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

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

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

"""
A `ApprovalProjectRuleID` is a global ID. It is encoded as a string.

An example `ApprovalProjectRuleID` is: `"gid://gitlab/ApprovalProjectRule/1"`.
"""
scalar ApprovalProjectRuleID

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

  """Global ID of the approval rule to destroy."""
  id: ApprovalProjectRuleID!

  """Name of the approval rule."""
  name: String!

  """How many approvals are required to satisfy rule."""
  approvalsRequired: Int!

  """List of IDs of Users that can approval rule."""
  userIds: [ID!]

  """List of IDs of Groups that can approval rule."""
  groupIds: [ID!]
}

"""Autogenerated return type of approvalProjectRuleUpdate."""
type approvalProjectRuleUpdatePayload {
  """Approval rule after mutation."""
  approvalRule: ApprovalProjectRule

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

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

enum ApprovalReportType {
  """Represents report_type for vulnerability check related approval rules."""
  SCAN_FINDING

  """Represents report_type for license scanning related approval rules."""
  LICENSE_SCANNING

  """Represents report_type for any_merge_request related approval rules."""
  ANY_MERGE_REQUEST
}

"""Describes a rule for who can approve merge requests."""
type ApprovalRule {
  """Indicates if the rule can be ignored if it is invalid."""
  allowMergeWhenInvalid: Boolean

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

  """Indicates if the rule is satisfied."""
  approved: Boolean

  """List of users defined in the rule that 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
  ): UserCoreConnection

  """
  List of users, defined in the rule, who commented on the merge request.
  """
  commentedBy(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection

  """Indicates if the rule contains approvers from a hidden group."""
  containsHiddenGroups: Boolean

  """
  List of all users eligible to approve the merge request (defined explicitly and from associated groups).
  """
  eligibleApprovers: [UserCore!]

  """List of groups added as approvers for the rule."""
  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
  ): GroupConnection

  """ID of the rule."""
  id: GlobalID!

  """Indicates if the rule is invalid and cannot be approved."""
  invalid: Boolean

  """Name of the rule."""
  name: String

  """Indicates if the rule was overridden for the merge request."""
  overridden: Boolean

  """List of scan result policies associated with the rule."""
  scanResultPolicies: [ApprovalScanResultPolicy!]

  """Named section of the Code Owners file that the rule applies to."""
  section: String

  """Source rule used to create the rule."""
  sourceRule: ApprovalRule

  """Type of the rule."""
  type: ApprovalRuleType

  """List of users added as approvers for the rule."""
  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

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

"""The kind of an approval rule."""
enum ApprovalRuleType {
  """A `regular` approval rule."""
  REGULAR

  """A `code_owner` approval rule."""
  CODE_OWNER

  """A `report_approver` approval rule."""
  REPORT_APPROVER

  """A `any_approver` approval rule."""
  ANY_APPROVER
}

"""Represents the scan result policy"""
type ApprovalScanResultPolicy {
  """Represents the required approvals defined in the policy."""
  approvalsRequired: Int!

  """Represents the name of the policy."""
  name: String!

  """Represents the report_type of the approval rule."""
  reportType: ApprovalReportType!
}

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

  """ID of the deployment."""
  id: DeploymentID!

  """Status of the approval (either `APPROVED` or `REJECTED`)."""
  status: DeploymentsApprovalStatus!

  """Comment to go with the approval."""
  comment: String

  """
  Name of the User/Group/Role to use for the approval, when the user belongs to multiple approval rules.
  """
  representedAs: String
}

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

  """DeploymentApproval after mutation."""
  deploymentApproval: DeploymentApproval

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

"""
A `AppSecFuzzingCoverageCorpusID` is a global ID. It is encoded as a string.

An example `AppSecFuzzingCoverageCorpusID` is: `"gid://gitlab/AppSec::Fuzzing::Coverage::Corpus/1"`.
"""
scalar AppSecFuzzingCoverageCorpusID

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

  """ID of the artifact to delete."""
  id: CiJobArtifactID!
}

"""Autogenerated return type of ArtifactDestroy."""
type ArtifactDestroyPayload {
  """Deleted artifact."""
  artifact: CiJobArtifact

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

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

"""A logical component of a project identified by ASCP security scanning"""
type AscpComponent {
  """Timestamp when the component was created."""
  createdAt: Time!

  """Components the component depends on."""
  dependencies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AscpComponentConnection!

  """Description of the component."""
  description: String

  """Expected user behavior for the component."""
  expectedUserBehavior: String

  """Global ID of the component."""
  id: SecurityAscpComponentID!

  """Scan when the component was identified."""
  scan: AscpScan!

  """Security context for the component."""
  securityContext: AscpSecurityContext

  """Sub-directory containing the component."""
  subDirectory: String!

  """Title of the component."""
  title: String!

  """Timestamp when the component was last updated."""
  updatedAt: Time!
}

"""The connection type for AscpComponent."""
type AscpComponentConnection {
  """A list of edges."""
  edges: [AscpComponentEdge]

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

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

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

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

  """Component title."""
  title: String!

  """Sub-directory path containing the component."""
  subDirectory: String!

  """Component description."""
  description: String

  """Expected user behavior for the component."""
  expectedUserBehavior: String

  """ID of the scan when the component was discovered."""
  scanId: SecurityAscpScanID!
}

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

  """Created component. Introduced in GitLab 18.11: **Status**: Experiment."""
  component: AscpComponent @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

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

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

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

"""An ASCP scan of a project"""
type AscpScan {
  """Base commit SHA for incremental scans."""
  baseCommitSha: String

  """Reference to the base scan for incremental scans."""
  baseScan: AscpScan

  """Git commit SHA that was scanned."""
  commitSha: String!

  """Timestamp when the scan was created."""
  createdAt: Time!

  """ID of the scan."""
  id: SecurityAscpScanID!

  """Sequence number of the scan within the project."""
  scanSequence: Int!

  """Type of scan (full or incremental)."""
  scanType: AscpScanType!

  """Timestamp when the scan was last updated."""
  updatedAt: Time!
}

"""The connection type for AscpScan."""
type AscpScanConnection {
  """A list of edges."""
  edges: [AscpScanEdge]

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

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

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

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

  """Git commit SHA that was scanned."""
  commitSha: String!

  """Type of scan (default: full)."""
  scanType: AscpScanType = FULL

  """ID of the base scan for incremental scans."""
  baseScanId: SecurityAscpScanID

  """Base commit SHA for incremental scans."""
  baseCommitSha: String
}

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

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

  """Created scan. Introduced in GitLab 18.10: **Status**: Experiment."""
  scan: AscpScan @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
}

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

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

"""Type of ASCP scan (full or incremental)."""
enum AscpScanType {
  """Full scan of the entire codebase."""
  FULL

  """Incremental scan based on changes since last scan."""
  INCREMENTAL
}

"""Security context for an ASCP component"""
type AscpSecurityContext {
  """How users authenticate to the component."""
  authenticationModel: String

  """How access is controlled for the component."""
  authorizationModel: String

  """Types of sensitive data handled by the component."""
  dataSensitivity: String

  """ID of the security context."""
  id: SecurityAscpSecurityContextID!

  """Scan when the security context was generated."""
  scan: AscpScan!

  """Security guidelines for the context."""
  securityGuidelines(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AscpSecurityGuidelineConnection!

  """High-level threat model summary."""
  summary: String
}

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

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

  """ID of the component."""
  componentId: SecurityAscpComponentID!

  """ID of the scan when the security context was created."""
  scanId: SecurityAscpScanID!

  """High-level threat model summary."""
  summary: String

  """How users authenticate to the component."""
  authenticationModel: String

  """How access is controlled."""
  authorizationModel: String

  """Types of sensitive data handled."""
  dataSensitivity: String

  """List of security guidelines."""
  guidelines: [AscpSecurityGuidelineInput!]!
}

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

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

  """
  Created security context. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  securityContext: AscpSecurityContext @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""A security guideline for an ASCP component"""
type AscpSecurityGuideline {
  """How to assess business impact if violated."""
  businessContext: String

  """ID of the guideline."""
  id: SecurityAscpSecurityGuidelineID!

  """When the operation is expected and acceptable."""
  legitimateUse: String

  """Policy name."""
  name: String!

  """Security-sensitive operation."""
  operation: String!

  """When the operation becomes a security risk."""
  securityBoundary: String

  """Severity level if the guideline is violated."""
  severityIfViolated: AscpSeverity!
}

"""The connection type for AscpSecurityGuideline."""
type AscpSecurityGuidelineConnection {
  """A list of edges."""
  edges: [AscpSecurityGuidelineEdge]

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

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

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

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

"""Input type for creating a security guideline"""
input AscpSecurityGuidelineInput {
  """Policy name."""
  name: String!

  """Security-sensitive operation."""
  operation: String!

  """When the operation is expected and acceptable."""
  legitimateUse: String

  """When the operation becomes a security risk."""
  securityBoundary: String

  """How to assess business impact if violated."""
  businessContext: String

  """Severity level if the guideline is violated."""
  severityIfViolated: AscpSeverity = MEDIUM
}

"""Severity levels for ASCP security guidelines"""
enum AscpSeverity {
  """Low severity."""
  LOW

  """Medium severity."""
  MEDIUM

  """High severity."""
  HIGH

  """Critical severity."""
  CRITICAL
}

"""Represents a vulnerability asset type."""
type AssetType {
  """Name of the asset."""
  name: String!

  """Type of the asset."""
  type: String!

  """URL of the asset."""
  url: String!
}

"""Assignee ID wildcard values"""
enum AssigneeWildcardId {
  """No assignee is assigned."""
  NONE

  """An assignee is assigned."""
  ANY
}

"""Input type for filtering projects by security attributes"""
input AttributeFilterInput {
  """Operator to apply for the attribute filter."""
  operator: AttributeFilterOperator!

  """Global IDs of the security attributes to filter by. Up to 20 values."""
  attributes: [SecurityAttributeID!]!
}

"""Operators for filtering by security attributes"""
enum AttributeFilterOperator {
  """Project has one or more of the specified attributes."""
  IS_ONE_OF

  """Project does not have any of the specified attributes."""
  IS_NOT_ONE_OF
}

"""Audit event."""
type AuditEvent {
  """User who triggered the event."""
  author: UserCore

  """Timestamp when the audit event was created."""
  createdAt: Time!

  """Additional details of the audit event."""
  details: String

  """ID of the entity."""
  entityId: ID

  """Path of the entity."""
  entityPath: String

  """Type of the entity."""
  entityType: String

  """Name of the event."""
  eventName: String

  """Group associated with the audit event."""
  group: Group

  """Audit Event ID."""
  id: ID!

  """IP address of the user."""
  ipAddress: String

  """Project associated with the audit event."""
  project: Project

  """Additional details of the target."""
  targetDetails: String

  """ID of the target of the audit event."""
  targetId: ID

  """Type of the target of the audit event."""
  targetType: String

  """User associated with the audit event."""
  user: UserCore
}

"""
Represents the YAML definitions for audit events defined in
`ee/config/audit_events/types/<event-type-name>.yml` and
`config/audit_events/types/<event-type-name>.yml`.
"""
type AuditEventDefinition {
  """Description of what action the audit event tracks."""
  description: String!

  """Feature category associated with the event."""
  featureCategory: String!

  """
  Link to the issue introducing the event. For olderaudit events, it can be a commit URL rather than amerge request URL.
  """
  introducedByIssue: String

  """
  Link to the merge request introducing the event. Forolder audit events, it can
  be a commit URL rather thana merge request URL.
  """
  introducedByMr: String

  """Milestone the event was introduced in."""
  milestone: String!

  """Key name of the audit event."""
  name: String!

  """Indicates if the event is saved to PostgreSQL database."""
  savedToDatabase: Boolean!

  """Indicates if the event is streamed to an external destination."""
  streamed: Boolean!
}

"""The connection type for AuditEventDefinition."""
type AuditEventDefinitionConnection {
  """A list of edges."""
  edges: [AuditEventDefinitionEdge]

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

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

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

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

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

  """Destination name."""
  name: String

  """Group path."""
  groupPath: ID!

  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String!

  """Secret access key of the Amazon S3 account."""
  secretAccessKey: String!

  """Name of the bucket where the audit events would be logged."""
  bucketName: String!

  """AWS region where the bucket is created."""
  awsRegion: String!
}

"""Autogenerated return type of AuditEventsAmazonS3ConfigurationCreate."""
type AuditEventsAmazonS3ConfigurationCreatePayload {
  """configuration created."""
  amazonS3Configuration: AmazonS3ConfigurationType

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

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

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

  """ID of the Amazon S3 configuration to destroy."""
  id: AuditEventsAmazonS3ConfigurationID!
}

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

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

"""
A `AuditEventsAmazonS3ConfigurationID` is a global ID. It is encoded as a string.

An example `AuditEventsAmazonS3ConfigurationID` is: `"gid://gitlab/AuditEvents::AmazonS3Configuration/1"`.
"""
scalar AuditEventsAmazonS3ConfigurationID

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

  """ID of the Amazon S3 configuration to update."""
  id: AuditEventsAmazonS3ConfigurationID!

  """Destination name."""
  name: String

  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String

  """Secret access key of the Amazon S3 account."""
  secretAccessKey: String

  """Name of the bucket where the audit events would be logged."""
  bucketName: String

  """Active status of the destination."""
  active: Boolean

  """AWS region where the bucket is created."""
  awsRegion: String
}

"""Autogenerated return type of AuditEventsAmazonS3ConfigurationUpdate."""
type AuditEventsAmazonS3ConfigurationUpdatePayload {
  """Updated Amazon S3 configuration."""
  amazonS3Configuration: AmazonS3ConfigurationType

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

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

"""
A `AuditEventsExternalAuditEventDestinationID` is a global ID. It is encoded as a string.

An example `AuditEventsExternalAuditEventDestinationID` is: `"gid://gitlab/AuditEvents::ExternalAuditEventDestination/1"`.
"""
scalar AuditEventsExternalAuditEventDestinationID

"""
A `AuditEventsGoogleCloudLoggingConfigurationID` is a global ID. It is encoded as a string.

An example `AuditEventsGoogleCloudLoggingConfigurationID` is:
`"gid://gitlab/AuditEvents::GoogleCloudLoggingConfiguration/1"`.
"""
scalar AuditEventsGoogleCloudLoggingConfigurationID

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

  """Destination id."""
  destinationId: AuditEventsGroupExternalStreamingDestinationID!

  """List of event type filters to add to the denylist."""
  eventTypeFilters: [String!]!
}

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

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

  """
  List of denylisted event type filters for the audit event external destination.
  """
  eventTypeFilters: [String!]
}

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

  """Destination id."""
  destinationId: AuditEventsGroupExternalStreamingDestinationID!

  """List of event type filters to remove from the denylist."""
  eventTypeFilters: [String!]!
}

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

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

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

  """List of event type filters to add for streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsGroupExternalStreamingDestinationID!
}

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

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

  """List of event type filters for the audit event external destination."""
  eventTypeFilters: [String!]
}

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

  """List of event type filters to remove from streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsGroupExternalStreamingDestinationID!
}

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

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

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

  """Destination ID."""
  destinationId: AuditEventsGroupExternalStreamingDestinationID!

  """Full path of the namespace(only project or group)."""
  namespacePath: String
}

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

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

  """Namespace filter created."""
  namespaceFilter: GroupAuditEventNamespaceFilter
}

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

  """Namespace filter ID."""
  namespaceFilterId: AuditEventsGroupNamespaceFilterID!
}

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

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

"""
A `AuditEventsGroupExternalStreamingDestinationID` is a global ID. It is encoded as a string.

An example `AuditEventsGroupExternalStreamingDestinationID` is:
`"gid://gitlab/AuditEvents::Group::ExternalStreamingDestination/1"`.
"""
scalar AuditEventsGroupExternalStreamingDestinationID

"""
A `AuditEventsGroupNamespaceFilterID` is a global ID. It is encoded as a string.

An example `AuditEventsGroupNamespaceFilterID` is: `"gid://gitlab/AuditEvents::Group::NamespaceFilter/1"`.
"""
scalar AuditEventsGroupNamespaceFilterID

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

  """Destination name."""
  name: String

  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String!

  """Secret access key of the Amazon S3 account."""
  secretAccessKey: String!

  """Name of the bucket where the audit events would be logged."""
  bucketName: String!

  """AWS region where the bucket is created."""
  awsRegion: String!
}

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

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

  """Created instance Amazon S3 configuration."""
  instanceAmazonS3Configuration: InstanceAmazonS3ConfigurationType
}

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

  """ID of the instance-level Amazon S3 configuration to delete."""
  id: AuditEventsInstanceAmazonS3ConfigurationID!
}

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

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

"""
A `AuditEventsInstanceAmazonS3ConfigurationID` is a global ID. It is encoded as a string.

An example `AuditEventsInstanceAmazonS3ConfigurationID` is: `"gid://gitlab/AuditEvents::Instance::AmazonS3Configuration/1"`.
"""
scalar AuditEventsInstanceAmazonS3ConfigurationID

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

  """ID of the instance-level Amazon S3 configuration to update."""
  id: AuditEventsInstanceAmazonS3ConfigurationID!

  """Destination name."""
  name: String

  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String

  """Secret access key of the Amazon S3 account."""
  secretAccessKey: String

  """Name of the bucket where the audit events would be logged."""
  bucketName: String

  """AWS region where the bucket is created."""
  awsRegion: String

  """Active status of the destination."""
  active: Boolean
}

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

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

  """Updated instance-level Amazon S3 configuration."""
  instanceAmazonS3Configuration: InstanceAmazonS3ConfigurationType
}

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

  """List of event type filters to add for streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsInstanceExternalStreamingDestinationID!
}

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

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

  """List of event type filters for the audit event external destination."""
  eventTypeFilters: [String!]
}

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

  """List of event type filters to remove from streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsInstanceExternalStreamingDestinationID!
}

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

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

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

  """Destination ID."""
  destinationId: AuditEventsInstanceExternalStreamingDestinationID!

  """Full path of the namespace. Project or group namespaces only."""
  namespacePath: String
}

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

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

  """Namespace filter to be created."""
  namespaceFilter: InstanceAuditEventNamespaceFilter
}

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

  """Namespace filter ID."""
  namespaceFilterId: AuditEventsInstanceNamespaceFilterID!
}

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

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

"""
A `AuditEventsInstanceExternalAuditEventDestinationID` is a global ID. It is encoded as a string.

An example `AuditEventsInstanceExternalAuditEventDestinationID` is:
`"gid://gitlab/AuditEvents::InstanceExternalAuditEventDestination/1"`.
"""
scalar AuditEventsInstanceExternalAuditEventDestinationID

"""
A `AuditEventsInstanceExternalStreamingDestinationID` is a global ID. It is encoded as a string.

An example `AuditEventsInstanceExternalStreamingDestinationID` is:
`"gid://gitlab/AuditEvents::Instance::ExternalStreamingDestination/1"`.
"""
scalar AuditEventsInstanceExternalStreamingDestinationID

"""
A `AuditEventsInstanceGoogleCloudLoggingConfigurationID` is a global ID. It is encoded as a string.

An example `AuditEventsInstanceGoogleCloudLoggingConfigurationID` is:
`"gid://gitlab/AuditEvents::Instance::GoogleCloudLoggingConfiguration/1"`.
"""
scalar AuditEventsInstanceGoogleCloudLoggingConfigurationID

"""
A `AuditEventsInstanceNamespaceFilterID` is a global ID. It is encoded as a string.

An example `AuditEventsInstanceNamespaceFilterID` is: `"gid://gitlab/AuditEvents::Instance::NamespaceFilter/1"`.
"""
scalar AuditEventsInstanceNamespaceFilterID

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

  """List of event type filters to add for streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsExternalAuditEventDestinationID!
}

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

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

  """List of event type filters for the audit event external destination."""
  eventTypeFilters: [String!]
}

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

  """List of event type filters to remove from streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsExternalAuditEventDestinationID!
}

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

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

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

  """List of event type filters to add for streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsInstanceExternalAuditEventDestinationID!
}

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

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

  """List of event type filters for the audit event external destination."""
  eventTypeFilters: [String!]
}

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

  """List of event type filters to remove from streaming."""
  eventTypeFilters: [String!]!

  """Destination id."""
  destinationId: AuditEventsInstanceExternalAuditEventDestinationID!
}

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

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

"""
A `AuditEventsStreamingHeaderID` is a global ID. It is encoded as a string.

An example `AuditEventsStreamingHeaderID` is: `"gid://gitlab/AuditEvents::Streaming::Header/1"`.
"""
scalar AuditEventsStreamingHeaderID

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

  """Header key."""
  key: String!

  """Header value."""
  value: String!

  """Destination to associate header with."""
  destinationId: AuditEventsExternalAuditEventDestinationID!

  """Boolean option determining whether header is active or not."""
  active: Boolean = true
}

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

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

  """Created header."""
  header: AuditEventStreamingHeader
}

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

  """Header to delete."""
  headerId: AuditEventsStreamingHeaderID!
}

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

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

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

  """Header to update."""
  headerId: AuditEventsStreamingHeaderID!

  """Header key."""
  key: String = null

  """Header value."""
  value: String = null

  """Boolean option determining whether header is active or not."""
  active: Boolean = null
}

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

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

  """Updates header."""
  header: AuditEventStreamingHeader
}

"""
A `AuditEventsStreamingHTTPNamespaceFilterID` is a global ID. It is encoded as a string.

An example `AuditEventsStreamingHTTPNamespaceFilterID` is: `"gid://gitlab/AuditEvents::Streaming::HTTP::NamespaceFilter/1"`.
"""
scalar AuditEventsStreamingHTTPNamespaceFilterID

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

  """Destination ID."""
  destinationId: AuditEventsExternalAuditEventDestinationID!

  """Full path of the group."""
  groupPath: ID

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

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

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

  """Namespace filter created."""
  namespaceFilter: AuditEventStreamingHTTPNamespaceFilter
}

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

  """Namespace filter ID."""
  namespaceFilterId: AuditEventsStreamingHTTPNamespaceFilterID!
}

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

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

"""
Represents a HTTP header key/value that belongs to an instance level audit streaming destination.
"""
type AuditEventsStreamingInstanceHeader implements BaseHeaderInterface {
  """Header is active or not."""
  active: Boolean!

  """ID of the header."""
  id: ID!

  """Key of the header."""
  key: String!

  """Value of the header."""
  value: String!
}

"""The connection type for AuditEventsStreamingInstanceHeader."""
type AuditEventsStreamingInstanceHeaderConnection {
  """A list of edges."""
  edges: [AuditEventsStreamingInstanceHeaderEdge]

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

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

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

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

"""
A `AuditEventsStreamingInstanceHeaderID` is a global ID. It is encoded as a string.

An example `AuditEventsStreamingInstanceHeaderID` is: `"gid://gitlab/AuditEvents::Streaming::InstanceHeader/1"`.
"""
scalar AuditEventsStreamingInstanceHeaderID

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

  """Header key."""
  key: String!

  """Header value."""
  value: String!

  """Instance level external destination to associate header with."""
  destinationId: AuditEventsInstanceExternalAuditEventDestinationID!

  """Boolean option determining whether header is active or not."""
  active: Boolean = true
}

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

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

  """Created header."""
  header: AuditEventsStreamingInstanceHeader
}

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

  """Header to delete."""
  headerId: AuditEventsStreamingInstanceHeaderID!
}

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

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

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

  """Header to update."""
  headerId: AuditEventsStreamingInstanceHeaderID!

  """Header key."""
  key: String = null

  """Header value."""
  value: String = null

  """Boolean option determining whether header is active or not."""
  active: Boolean = null
}

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

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

  """Updates header."""
  header: AuditEventsStreamingInstanceHeader
}

interface AuditEventStreamingDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Category of the external destination to send audit events to."""
  category: String!

  """Config of the external destination."""
  config: JSON!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """
  Secret token for the destination, will be non-empty value only for http category.
  """
  secretToken: String!
}

"""
Represents a HTTP header key/value that belongs to an audit streaming destination.
"""
type AuditEventStreamingHeader implements BaseHeaderInterface {
  """Header is active or not."""
  active: Boolean!

  """ID of the header."""
  id: ID!

  """Key of the header."""
  key: String!

  """Value of the header."""
  value: String!
}

"""The connection type for AuditEventStreamingHeader."""
type AuditEventStreamingHeaderConnection {
  """A list of edges."""
  edges: [AuditEventStreamingHeaderEdge]

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

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

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

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

"""
Represents a subgroup or project filter that belongs to an external audit event streaming destination.
"""
type AuditEventStreamingHTTPNamespaceFilter {
  """Destination to which the filter belongs."""
  externalAuditEventDestination: ExternalAuditEventDestination!

  """ID of the filter."""
  id: ID!

  """Group or project namespace the filter belongs to."""
  namespace: Namespace!
}

"""
A `AuthzLdapAdminRoleLinkID` is a global ID. It is encoded as a string.

An example `AuthzLdapAdminRoleLinkID` is: `"gid://gitlab/Authz::LdapAdminRoleLink/1"`.
"""
scalar AuthzLdapAdminRoleLinkID

"""Core representation of a GitLab user."""
type AutocompletedUser implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

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

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

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

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

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

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if the user has composite identity enforcement enabled."""
  compositeIdentityEnforced: Boolean!

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

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

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

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

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """Merge request state related to the user."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

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

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

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

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

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

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

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

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

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

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

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

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

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

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

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

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

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

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

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

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

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

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

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

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

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

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

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

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

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

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

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

    """
    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
  ): WorkspaceConnection
}

"""Auto stop setting."""
enum AutoStopSetting {
  """Always"""
  ALWAYS

  """With Action"""
  WITH_ACTION
}

"""User availability status"""
enum AvailabilityEnum {
  """Not Set"""
  NOT_SET

  """Busy"""
  BUSY
}

"""Available fields to be exported as CSV"""
enum AvailableExportFields {
  """Assignee(s) name of the work item."""
  ASSIGNEE

  """Assignee(s) username of the work item."""
  ASSIGNEE_USERNAME

  """Author name of the work item."""
  AUTHOR

  """Author username of the work item."""
  AUTHOR_USERNAME

  """Confidentiality flag of the work item."""
  CONFIDENTIAL

  """Description of the work item."""
  DESCRIPTION

  """Unique identifier of the work item."""
  ID

  """IID identifier of the work item."""
  IID

  """Locked discussions flag of the work item."""
  LOCKED

  """Start date (UTC) of the work item."""
  START_DATE

  """Due date (UTC) of the work item."""
  DUE_DATE

  """Closed at (UTC) date of the work item."""
  CLOSED_AT

  """Created at (UTC) date of the work item."""
  CREATED_AT

  """Updated at (UTC) date of the work item."""
  UPDATED_AT

  """Milestone of the work item."""
  MILESTONE

  """Parent ID of the work item."""
  PARENT_ID

  """Parent IID of the work item."""
  PARENT_IID

  """Parent title of the work item."""
  PARENT_TITLE

  """State of the work item."""
  STATE

  """Title of the work item."""
  TITLE

  """Time estimate of the work item."""
  TIME_ESTIMATE

  """Time spent of the work item."""
  TIME_SPENT

  """Type of the work item."""
  TYPE

  """Web URL to the work item."""
  URL

  """Weight of the work item."""
  WEIGHT
}

"""Available models for Duo Agentic Chat"""
type AvailableModels {
  """Default LLM for Duo Agentic Chat."""
  defaultModel: AiModelSelectionOfferedModel

  """Pinned model for Duo Agentic Chat if set via feature settings."""
  pinnedModel: AiModelSelectionOfferedModel

  """LLMs compatible with Duo Agentic Chat."""
  selectableModels: [AiModelSelectionOfferedModel!]
}

"""
A `AwardableID` is a global ID. It is encoded as a string.

An example `AwardableID` is: `"gid://gitlab/Awardable/1"`.
"""
scalar AwardableID

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

  """Emoji as an icon."""
  emoji: String

  """Emoji name."""
  name: String!

  """Emoji in Unicode."""
  unicode: String!

  """Unicode version for the emoji."""
  unicodeVersion: String!

  """User who awarded the emoji."""
  user: UserCore!
}

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

  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!
}

"""Autogenerated return type of AwardEmojiAdd."""
type AwardEmojiAddPayload {
  """Emoji reactions after mutation."""
  awardEmoji: AwardEmoji

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

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

"""The connection type for AwardEmoji."""
type AwardEmojiConnection {
  """A list of edges."""
  edges: [AwardEmojiEdge]

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

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

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

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

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

  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!
}

"""Autogenerated return type of AwardEmojiRemove."""
type AwardEmojiRemovePayload {
  """Emoji reactions after mutation."""
  awardEmoji: AwardEmoji

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

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

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

  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!
}

"""Autogenerated return type of AwardEmojiToggle."""
type AwardEmojiTogglePayload {
  """Emoji reactions after mutation."""
  awardEmoji: AwardEmoji

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

  """Errors encountered during 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!
}

interface BaseDiscussionInterface {
  """Timestamp of the discussion's creation."""
  createdAt: Time!

  """ID of the discussion."""
  id: DiscussionID!

  """ID used to reply to the discussion."""
  replyId: DiscussionID!

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

interface BaseHeaderInterface {
  """Header is active or not."""
  active: Boolean!

  """ID of the header."""
  id: ID!

  """Key of the header."""
  key: String!

  """Value of the header."""
  value: String!
}

interface BaseNoteInterface {
  """User who wrote the note."""
  author: UserCore

  """List of emoji reactions associated with the note."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """Content of the note."""
  body: String!

  """First line of the note content."""
  bodyFirstLineHtml: String!

  """GitLab Flavored Markdown rendering of the content of the note."""
  bodyHtml: String

  """Timestamp of the note creation."""
  createdAt: Time!

  """Timestamp when note was last edited."""
  lastEditedAt: Time

  """User who last edited the note."""
  lastEditedBy: UserCore

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

  """Timestamp of the note's last activity."""
  updatedAt: Time!

  """URL to view the note in the Web UI."""
  url: String
}

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

  """Type of the service."""
  serviceType: ServiceType

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

"""
Represents non-fractional signed whole numeric values. Since the value may
exceed the size of a 32-bit integer, it's encoded as a string.
"""
scalar BigInt

type Blame {
  """First line of Git Blame for given range."""
  firstLine: String

  """Git Blame grouped by contiguous lines for commit."""
  groups: [Groups!]
}

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!

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

"""Full JSON structure of multi-match results in a single file"""
type BlobSearch {
  """
  Duration of the request in seconds. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  durationS: Float @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """
  Total number of files with matches. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  fileCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  List of files with matches. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  files: [SearchBlobFileType!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Total number of matches. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  matchCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Total number of files per page. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  perPage: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Level of search performed. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  searchLevel: SearchLevel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Type of search performed. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  searchType: SearchType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
}

"""Represents how the blob content should be displayed"""
type BlobViewer {
  """Shows whether the blob should be displayed collapsed."""
  collapsed: Boolean!

  """Content file type."""
  fileType: String!

  """Shows whether the blob content is loaded asynchronously."""
  loadAsync: Boolean!

  """Loading partial name."""
  loadingPartialName: String!

  """Error rendering the blob content."""
  renderError: String

  """Shows whether the blob is too large to be displayed."""
  tooLarge: Boolean!

  """Type of blob viewer."""
  type: BlobViewersType!
}

"""Types of blob viewers"""
enum BlobViewersType {
  """Rich blob viewers type."""
  rich

  """Simple blob viewers type."""
  simple

  """Auxiliary blob viewers type."""
  auxiliary
}

"""
Information about the rules that must be satisfied to merge this merge request.
"""
type BlockingMergeRequests {
  """Blocking merge requests not visible to the user."""
  hiddenCount: Int!

  """Total number of blocking merge requests."""
  totalCount: Int!

  """Blocking merge requests visible to the user."""
  visibleMergeRequests: [MergeRequest!]
}

"""Represents a project or group issue board"""
type Board {
  """Board assignee."""
  assignee: UserCore

  """Timestamp of when the board was created."""
  createdAt: Time!

  """Epics associated with board issues."""
  epics(
    """Filters applied when selecting issues on the board."""
    issueFilters: BoardIssueInput

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

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

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

  """Board iteration."""
  iteration: Iteration

  """Board iteration cadence."""
  iterationCadence: IterationCadence

  """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(
    """Find a list by its global ID."""
    id: ListID

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

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

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

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

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

  """Board milestone."""
  milestone: Milestone

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

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

  """Web path of the board."""
  webPath: String!

  """Web URL of the board."""
  webUrl: 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 & Eventable & NoteableInterface & Todoable {
  """Ancestors (parents) of the epic."""
  ancestors(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

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

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

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

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

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

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

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

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

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include epics from ancestor groups."""
    includeAncestorGroups: Boolean = true

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: 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
  ): EpicConnection

  """Author of the epic."""
  author: UserCore!

  """List of emoji reactions associated with the epic."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """Indicates the epic is blocked."""
  blocked: Boolean

  """Count of epics blocking the epic."""
  blockedByCount: Int

  """Epics blocking the epic."""
  blockedByEpics(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EpicConnection

  """Count of epics that the epic is blocking."""
  blockingCount: Int

  """Children (sub-epics) of the epic."""
  children(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

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

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

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

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

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

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

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

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

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include child epics from ancestor groups."""
    includeAncestorGroups: Boolean = true

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: 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
  ): EpicConnection

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

  """Color of the epic."""
  color: String

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

    """
    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
  ): UserCoreConnection!

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

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

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """
  Default Project for issue creation. Based on the project the user created the last issue in.
  """
  defaultProjectForIssueCreation: Project

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

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

  """All discussions on the 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 child epics or milestones."""
  dueDateFromInheritedSource: Time

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

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

  """List of events associated with the object."""
  events(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

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

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

  """Indicates if the epic has children in the specified timeframe."""
  hasChildrenWithinTimeframe: 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: String!

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

  """Work items linked to the epic."""
  linkedWorkItems(
    """
    Filter by link type. Supported values: RELATED, BLOCKED_BY, and BLOCKS. Returns all types if omitted.
    """
    filter: WorkItemRelatedLinkType

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

    """
    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
  ): LinkedWorkItemTypeConnection

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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
  ): UserCoreConnection

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

  """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 child epics or milestones."""
  startDateFromInheritedSource: 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!

  """Text color generated for the epic."""
  textColor: String

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

  """HTML rendering of `title`"""
  titleHtml: String

  """Timestamp of when the epic was updated."""
  updatedAt: Time

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

  """Number of user discussions in the epic."""
  userDiscussionsCount: Int!

  """Number of user notes of the epic."""
  userNotesCount: 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!

  """ID of the corresponding work item for a legacy epic."""
  workItemId: WorkItemID!
}

"""The connection type for BoardEpic."""
type BoardEpicConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

  """Group the epic to create is in."""
  groupPath: ID!

  """Global ID of the board that the epic is in."""
  boardId: BoardsEpicBoardID!

  """Global ID of the epic board list in which epic will be created."""
  listId: BoardsEpicListID!

  """Title of the epic."""
  title: String!
}

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

  """Epic after creation."""
  epic: Epic

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

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

"""
A `BoardID` is a global ID. It is encoded as a string.

An example `BoardID` is: `"gid://gitlab/Board/1"`.
"""
scalar BoardID

input BoardIssueInput {
  """Filter by label name."""
  labelName: [String]

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

  """
  Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
  """
  myReactionEmoji: String

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

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

  """Filter by assignee username."""
  assigneeUsername: [String]

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

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

  """Filter by work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Filter by milestone ID wildcard."""
  milestoneWildcardId: MilestoneWildcardId

  """
  Filter by epic ID. Incompatible with epicWildcardId. Deprecated in GitLab
  17.5: This will be replaced by WorkItem hierarchyWidget.
  """
  epicId: EpicID

  """Filter by iteration title."""
  iterationTitle: String

  """Filter by weight."""
  weight: String

  """
  Filter by a list of iteration IDs. Incompatible with iterationWildcardId.
  """
  iterationId: [IterationID!]

  """List of negated arguments."""
  not: NegatedBoardIssueInput

  """List of arguments with inclusive OR."""
  or: UnionedIssueFilterInput

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

  """
  Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
  """
  assigneeWildcardId: AssigneeWildcardId

  """Filter by confidentiality."""
  confidential: Boolean

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

  """Whether to include subepics when filtering issues by epicId."""
  includeSubepics: Boolean

  """Filter by iteration ID wildcard."""
  iterationWildcardId: IterationWildcardId

  """Filter by a list of iteration cadence IDs."""
  iterationCadenceId: [IterationsCadenceID!]

  """Filter by weight ID wildcard. Incompatible with weight."""
  weightWildcardId: WeightWildcardId

  """Health status of the issue, "none" and "any" values are supported."""
  healthStatusFilter: HealthStatusFilter

  """
  Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]

  """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
  status: WorkItemWidgetStatusFilterInput
}

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

  """Indicates if the list is collapsed for the user."""
  collapsed: Boolean

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

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

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

    """
    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
  ): IssueConnection

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

  """Iteration of the list."""
  iteration: Iteration

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

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

  """Status of the list. Introduced in GitLab 18.0: **Status**: Experiment."""
  status: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

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

  """Total weight of all issues in the list, encoded as a string."""
  totalIssueWeight: BigInt
}

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

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

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

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

  """Position of the list."""
  position: Int

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

  """Global ID of an existing iteration."""
  iterationId: IterationID

  """Global ID of an existing user."""
  assigneeId: UserID

  """
  Global ID of an existing status. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  statusId: WorkItemsStatusesStatusID
}

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

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

  """Issue list in 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

  """Global ID of the list."""
  listId: ListID!

  """New limit metric type for the list."""
  limitMetric: ListLimitMetric

  """New maximum issue count limit."""
  maxIssueCount: Int

  """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 the mutation."""
  errors: [String!]!

  """Updated list."""
  list: BoardList
}

"""
A `BoardsEpicBoardID` is a global ID. It is encoded as a string.

An example `BoardsEpicBoardID` is: `"gid://gitlab/Boards::EpicBoard/1"`.
"""
scalar BoardsEpicBoardID

"""
A `BoardsEpicListID` is a global ID. It is encoded as a string.

An example `BoardsEpicListID` is: `"gid://gitlab/Boards::EpicList/1"`.
"""
scalar BoardsEpicListID

"""an expression with a boolean value."""
type BooleanExpression implements ExpressionInterface {
  """Field the expression applies to."""
  field: String!

  """Operator of the expression."""
  operator: String!

  """Boolean value of the expression."""
  value: Boolean!
}

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

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

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

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

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

"""Autogenerated return type of BranchDelete."""
type BranchDeletePayload {
  """Branch after mutation."""
  branch: Branch

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

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

"""Branch protection details for a branch rule."""
type BranchProtection {
  """Toggle force push to the branch for users with write access."""
  allowForcePush: Boolean!

  """Enforce code owner approvals before allowing a merge."""
  codeOwnerApprovalRequired: Boolean!

  """
  Indicates whether the branch protection rule was created at the group level.
  Introduced in GitLab 18.3: **Status**: Experiment.
  """
  isGroupLevel: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """Details about who can merge when the branch is the source branch."""
  mergeAccessLevels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeAccessLevelConnection

  """Indicates if a security policy prevents modification."""
  modificationBlockedByPolicy: Boolean!

  """Indicates if a security policy prevents push or force push."""
  protectedFromPushBySecurityPolicy: Boolean!

  """Details about who can push when the branch is the source branch."""
  pushAccessLevels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PushAccessLevelConnection

  """Details about who can unprotect the branch."""
  unprotectAccessLevels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UnprotectAccessLevelConnection

  """Indicates if a warn mode security policy would prevent modification."""
  warnModificationBlockedByPolicy: Boolean!

  """
  Indicates if a warn mode security policy would prevent push or force push.
  """
  warnProtectedFromPushBySecurityPolicy: Boolean!
}

input BranchProtectionInput {
  """Details about who can merge into the branch rule target."""
  mergeAccessLevels: [MergeAccessLevelInput!] = []

  """Details about who can push to the branch rule target."""
  pushAccessLevels: [PushAccessLevelInput!] = []

  """
  Allows users with write access to the branch rule target to force push changes.
  """
  allowForcePush: Boolean = false

  """Enforce code owner approvals before allowing a merge."""
  codeOwnerApprovalRequired: Boolean = true
}

"""Branch rules configured for a rule target."""
type BranchRule {
  """Merge request approval rules configured for the branch rule."""
  approvalRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ApprovalProjectRuleConnection

  """Branch protections configured for the branch rule."""
  branchProtection: BranchProtection

  """Timestamp of when the branch rule was created."""
  createdAt: Time

  """External status checks configured for the branch rule."""
  externalStatusChecks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ExternalStatusCheckConnection

  """ID of the branch rule."""
  id: ProjectsBranchRuleID

  """Check if the branch rule protects the project's default branch."""
  isDefault: Boolean!

  """Check if the branch rule protects access for the branch."""
  isProtected: Boolean!

  """Number of existing branches that match the branch rule."""
  matchingBranchesCount: Int!

  """Name of the branch rule target. Includes wildcards."""
  name: String!

  """
  Default behavior for squashing in merge requests. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  squashOption: SquashOption @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Timestamp of when the branch rule was last updated."""
  updatedAt: Time
}

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

  """Global ID of the branch rule to destroy."""
  branchRuleId: ProjectsBranchRuleID!

  """Name of the approval rule."""
  name: String!

  """How many approvals are required to satisfy rule."""
  approvalsRequired: Int!

  """List of IDs of Users that can approval rule."""
  userIds: [ID!]

  """List of IDs of Groups that can approval rule."""
  groupIds: [ID!]
}

"""Autogenerated return type of branchRuleApprovalProjectRuleCreate."""
type branchRuleApprovalProjectRuleCreatePayload {
  """Approval rule after mutation."""
  approvalRule: ApprovalProjectRule

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

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

"""The connection type for BranchRule."""
type BranchRuleConnection {
  """A list of edges."""
  edges: [BranchRuleEdge]

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

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

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

  """Full path to the project that the branch is associated with."""
  projectPath: ID!

  """Branch name, with wildcards, for the branch rules."""
  name: String!
}

"""Autogenerated return type of BranchRuleCreate."""
type BranchRuleCreatePayload {
  """Branch rule after mutation."""
  branchRule: BranchRule

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

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

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

  """Global ID of the branch rule to destroy."""
  id: ProjectsBranchRuleID!
}

"""Autogenerated return type of BranchRuleDelete."""
type BranchRuleDeletePayload {
  """Branch rule after mutation."""
  branchRule: BranchRule

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

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

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

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

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

  """Global ID of the branch rule to update."""
  branchRuleId: ProjectsBranchRuleID!

  """Name of the external status check."""
  name: String!

  """URL of external status check resource."""
  externalUrl: String!

  """HMAC shared secret for authenticating external status check requests."""
  sharedSecret: String
}

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

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

  """New status check after mutation."""
  externalStatusCheck: ExternalStatusCheck
}

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

  """Global ID of the external status check to destroy."""
  id: MergeRequestsExternalStatusCheckID!

  """Global ID of the branch rule."""
  branchRuleId: ProjectsBranchRuleID!
}

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

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

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

  """Global ID of the external status check to update."""
  id: MergeRequestsExternalStatusCheckID!

  """Global ID of the branch rule."""
  branchRuleId: ProjectsBranchRuleID!

  """Name of the external status check."""
  name: String!

  """External URL of the external status check."""
  externalUrl: String!

  """HMAC shared secret for authenticating external status check requests."""
  sharedSecret: String
}

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

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

  """Updated external status check after mutation."""
  externalStatusCheck: ExternalStatusCheck
}

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

  """Global ID of the branch rule."""
  branchRuleId: ProjectsBranchRuleID!
}

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

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

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

  """Global ID of the branch rule."""
  branchRuleId: ProjectsBranchRuleID!

  """Squash option after mutation."""
  squashOption: SquashOptionSetting!
}

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

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

  """Updated squash option after mutation."""
  squashOption: SquashOption
}

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

  """Global ID of the branch rule to update."""
  id: ProjectsBranchRuleID!

  """Branch name, with wildcards, for the branch rules."""
  name: String!

  """Branch protections configured for the branch rule."""
  branchProtection: BranchProtectionInput
}

"""Autogenerated return type of BranchRuleUpdate."""
type BranchRuleUpdatePayload {
  """Branch rule after mutation."""
  branchRule: BranchRule

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

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

"""Input for a per-user budget cap override."""
input BudgetCapUserOverrideInput {
  """Global ID of the user."""
  userId: UserID!

  """Budget cap amount for the user."""
  cap: Float!

  """Whether the budget cap is enabled for the user."""
  enabled: Boolean!
}

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

  """Global IDs of the job artifacts to destroy."""
  ids: [CiJobArtifactID!]!

  """
  Global Project ID of the job artifacts to destroy. Incompatible with projectPath.
  """
  projectId: ProjectID!
}

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

  """Number of job artifacts deleted."""
  destroyedCount: Int

  """IDs of job artifacts that were deleted."""
  destroyedIds: [CiJobArtifactID!]

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

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

  """List of Namespace IDs."""
  namespaceIds: [NamespaceID!]!

  """Display namespace ID."""
  displayNamespaceId: NamespaceID
}

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

  """Enabled namespaces after mutation."""
  enabledNamespaces: [DevopsAdoptionEnabledNamespace!]

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

"""
Represents the Geo replication and verification state of a `bulk_import_export_upload_upload`
"""
type BulkImportExportUploadUploadRegistry {
  """ID of the bulk import/export archive upload."""
  bulkImportExportUploadUploadId: ID!

  """
  Indicate if the checksums of the BulkImportExportUploadUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the BulkImportExportUploadUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this BulkImportExportUploadUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the BulkImportExportUploadUploadRegistry"""
  id: ID!

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

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

  """
  Indicate if the BulkImportExportUploadUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the BulkImportExportUploadUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the BulkImportExportUploadUploadRegistry is resynced
  """
  retryAt: Time

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

  """Sync state of the BulkImportExportUploadUploadRegistry"""
  state: RegistryState

  """The local checksum of the BulkImportExportUploadUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the BulkImportExportUploadUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the BulkImportExportUploadUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the BulkImportExportUploadUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the BulkImportExportUploadUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of BulkImportExportUploadUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the BulkImportExportUploadUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the BulkImportExportUploadUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for BulkImportExportUploadUploadRegistry."""
type BulkImportExportUploadUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

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

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

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

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

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

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

  """IDs of the runners to delete."""
  ids: [CiRunnerID!]
}

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

  """
  Number of records effectively deleted. Only present if operation was performed synchronously.
  """
  deletedCount: Int

  """
  IDs of records effectively deleted. Only present if operation was performed synchronously.
  """
  deletedIds: [CiRunnerID!]

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

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

  """
  List of finding UUIDs with due dates.
  A maximum of 1000 updates is allowed per request.
  """
  updates: [FindingDueDatesSetInput!]!

  """Full path of the project."""
  projectFullPath: String!
}

"""Input for a single tool rule update within a bulk operation."""
input BulkToolRuleInput {
  """
  Tool name string identifying the tool to update. For example, "create_issue".
  """
  toolId: String!

  """
  Permission mode for web surface. Omitting the field sets it to null, clearing any existing value.
  """
  webAccess: AiToolPermission

  """
  Permission mode for local or IDE surface. Omitting the field sets it to null, clearing any existing value.
  """
  localAccess: AiToolPermission
}

"""Result for a single tool rule update within a bulk operation."""
type BulkToolRuleResult {
  """Errors for the specific tool rule update."""
  errors: [String!]!

  """Tool name that was processed."""
  toolId: String!

  """Updated tool rule, if successful."""
  toolRule: AiToolRule
}

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

  """Full path of the root namespace to update tool rules for."""
  fullPath: ID!

  """
  Full path of the project to update tool rules for. When provided, rules can only be stricter than the namespace rule.
  """
  projectPath: ID

  """Tool rules to update (maximum 100 entries)."""
  toolRules: [BulkToolRuleInput!]!
}

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

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

  """Results for each tool rule update, including any per-item errors."""
  results: [BulkToolRuleResult!]!
}

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

  """Global IDs of groups and projects to update."""
  items: [ID!]!

  """Global IDs of security attributes to apply."""
  attributes: [SecurityAttributeID!]!

  """Update mode: add, remove, or replace attributes."""
  mode: SecurityAttributeBulkUpdateMode!
}

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

  """Errors encountered while initiating the bulk update operation."""
  errors: [String!]!
}

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

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

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

  """Number of issues as of the day."""
  scopeCount: Int!

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

"""Check user's permission for the car."""
type CarPermissions {
  """
  If `true`, the user can perform `delete_merge_train_car` on this resource
  """
  deleteMergeTrainCar: Boolean!
}

"""Status of a merge train's car"""
enum CarStatus {
  """Car's status: idle"""
  IDLE

  """Car's status: stale"""
  STALE

  """Car's status: fresh"""
  FRESH

  """Car's status: merging"""
  MERGING

  """Car's status: merged"""
  MERGED

  """Car's status: skip_merged"""
  SKIP_MERGED
}

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

  """Project path belonging to the catalog resource."""
  projectPath: ID!
}

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

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

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

  """Project path belonging to the catalog resource."""
  projectPath: ID!
}

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

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

"""Continuous deployment application."""
type CdApplication {
  """Timestamp of when the application was created."""
  createdAt: Time!

  """Description of the application."""
  description: String

  """Global ID of the application."""
  id: CdApplicationID!

  """Name of the application."""
  name: String!

  """Organization the application belongs to."""
  organization: Organization

  """Services belonging to the application."""
  services(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CdServiceConnection

  """Timestamp of when the application was last updated."""
  updatedAt: Time!
}

"""The connection type for CdApplication."""
type CdApplicationConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

  """Global ID of the organization to create the application in."""
  organizationId: OrganizationsOrganizationID!

  """Name of the application."""
  name: String!

  """Description of the application."""
  description: String
}

"""Autogenerated return type of CdApplicationCreate."""
type CdApplicationCreatePayload {
  """Application created by the mutation."""
  application: CdApplication

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

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

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

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

"""
A `CdApplicationID` is a global ID. It is encoded as a string.

An example `CdApplicationID` is: `"gid://gitlab/Cd::Application/1"`.
"""
scalar CdApplicationID

"""Continuous deployment environment."""
type CdEnvironment {
  """Timestamp of when the environment was created."""
  createdAt: Time!

  """Description of the environment."""
  description: String

  """Global ID of the environment."""
  id: CdEnvironmentID!

  """Name of the environment."""
  name: String!

  """Organization the environment belongs to."""
  organization: Organization

  """Timestamp of when the environment was last updated."""
  updatedAt: Time!
}

"""The connection type for CdEnvironment."""
type CdEnvironmentConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

  """Global ID of the organization to create the environment in."""
  organizationId: OrganizationsOrganizationID!

  """Name of the environment."""
  name: String!

  """Description of the environment."""
  description: String
}

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

  """Environment created by the mutation."""
  environment: CdEnvironment

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

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

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

"""
A `CdEnvironmentID` is a global ID. It is encoded as a string.

An example `CdEnvironmentID` is: `"gid://gitlab/Cd::Environment/1"`.
"""
scalar CdEnvironmentID

"""Continuous deployment service."""
type CdService {
  """Application the service belongs to."""
  application: CdApplication!

  """Timestamp of when the service was created."""
  createdAt: Time!

  """Description of the service."""
  description: String

  """Global ID of the service."""
  id: CdServiceID!

  """Name of the service."""
  name: String!

  """Timestamp of when the service was last updated."""
  updatedAt: Time!
}

"""The connection type for CdService."""
type CdServiceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

"""
A `CdServiceID` is a global ID. It is encoded as a string.

An example `CdServiceID` is: `"gid://gitlab/Cd::Service/1"`.
"""
scalar CdServiceID

"""
Chat user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type chatUserMetrics {
  """Date of the last Chat activity for the user."""
  lastDuoActivityOn: Date

  """Total count of `request_duo_chat_response` event."""
  requestDuoChatResponseEventCount: Int

  """Total count of all Chat events for the user."""
  totalEventCount: Int
}

type CiApplicationSettings {
  """Whether to keep the latest jobs artifacts."""
  keepLatestArtifact: Boolean
}

"""
A `CiBuildID` is a global ID. It is encoded as a string.

An example `CiBuildID` is: `"gid://gitlab/Ci::Build/1"`.
"""
scalar CiBuildID

type CiBuildNeed {
  """ID of the BuildNeed."""
  id: ID!

  """Name of the job we need to complete."""
  name: String
}

"""The connection type for CiBuildNeed."""
type CiBuildNeedConnection {
  """A list of edges."""
  edges: [CiBuildNeedEdge]

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

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

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

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

type CiCatalogResource {
  """Indicates the archived status of the project."""
  archived: Boolean

  """Description of the catalog resource."""
  description: String

  """
  Full project path of the catalog resource. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  fullPath: ID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """Icon for the catalog resource."""
  icon: String

  """ID of the catalog resource."""
  id: ID!

  """
  Number of projects that used a component from this catalog project in a
  pipeline, by using `include:component` in the last 30 days. Introduced in
  GitLab 17.0: **Status**: Experiment.
  """
  last30DayUsageCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Release date of the catalog resource's latest version. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  latestReleasedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Name of the catalog resource."""
  name: String

  """
  Projects using components from this catalog resource. Only available to
  maintainers of the catalog resource project. This field can only be resolved
  for one catalog resource in any single request. Introduced in GitLab 18.11:
  **Status**: Experiment.
  """
  projectComponentUsages(
    """Filter to projects using a specific version of the catalog resource."""
    versionId: CiCatalogResourcesVersionID

    """
    Returns projects that used one or more specific versions of the catalog resource.
    """
    versionIds: [CiCatalogResourcesVersionID!]

    """
    Filter to projects using a component with this name. Matches across all versions of the catalog resource.
    """
    componentName: String

    """Sort projects by given criteria."""
    sort: CiCatalogResourceProjectUsageSort = OLDEST_VERSION_ASC

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

    """
    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
  ): CiCatalogResourceProjectUsageConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Number of times the catalog resource has been starred."""
  starCount: Int!

  """Relative path to the starrers page for the catalog resource project."""
  starrersPath: String

  """Topics for the catalog resource."""
  topics: [String!]

  """Verification level of the catalog resource."""
  verificationLevel: CiCatalogResourceVerificationLevel

  """
  Versions of the catalog resource. This field can only be resolved for one catalog resource in any single request.
  """
  versions(
    """Name of the version."""
    name: String

    """Search term to filter versions by name."""
    search: String

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

    """
    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
  ): CiCatalogResourceVersionConnection

  """Visibility level of the catalog resource."""
  visibilityLevel: VisibilityLevelsEnum

  """
  Web path of the catalog resource. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  webPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")
}

type CiCatalogResourceComponent {
  """Description of the component."""
  description: String

  """ID of the component."""
  id: CiCatalogResourcesComponentID!

  """Path used to include the component."""
  includePath: String

  """Inputs for the component."""
  inputs: [CiInputsSpec!]

  """
  Number of times the component has been used in the last 30 days in a pipeline using `include`.
  """
  last30DayUsageCount: Int

  """Name of the component."""
  name: String
}

"""The connection type for CiCatalogResourceComponent."""
type CiCatalogResourceComponentConnection {
  """A list of edges."""
  edges: [CiCatalogResourceComponentEdge]

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

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

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

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

"""Represents a component usage in a project"""
type CiCatalogResourceComponentUsage {
  """When the component was last used."""
  lastUsedDate: ISO8601Date

  """Name of the component."""
  name: String

  """Version of the component."""
  version: String
}

"""The connection type for CiCatalogResourceComponentUsage."""
type CiCatalogResourceComponentUsageConnection {
  """A list of edges."""
  edges: [CiCatalogResourceComponentUsageEdge]

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

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

"""Details of a project's usage of a component from a catalog resource."""
type CiCatalogResourceComponentUsageDetail {
  """
  Component being used. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  component: CiCatalogResourceComponent! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Date when the component was last used by the project. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  lastUsedDate: ISO8601Date! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Whether the project is using a component version older than the catalog
  resource latest version. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  outdated: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Version of the component being used. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  version: CiCatalogResourceVersion @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

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

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

"""The connection type for CiCatalogResource."""
type CiCatalogResourceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

"""
A `CiCatalogResourceID` is a global ID. It is encoded as a string.

An example `CiCatalogResourceID` is: `"gid://gitlab/Ci::Catalog::Resource/1"`.
"""
scalar CiCatalogResourceID

"""A project that uses components from a catalog resource"""
type CiCatalogResourceProjectUsage {
  """
  List of components from the catalog resource used by the project. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  componentsUsed: [CiCatalogResourceComponentUsageDetail!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Project using the components. Returns null if user cannot access the project.
  Introduced in GitLab 18.11: **Status**: Experiment.
  """
  project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""The connection type for CiCatalogResourceProjectUsage."""
type CiCatalogResourceProjectUsageConnection {
  """A list of edges."""
  edges: [CiCatalogResourceProjectUsageEdge]

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

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

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

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

"""
Values for sorting projects that use components from a catalog resource.
"""
enum CiCatalogResourceProjectUsageSort {
  """Oldest version a project uses by ascending order."""
  OLDEST_VERSION_ASC

  """Oldest version a project uses by descending order."""
  OLDEST_VERSION_DESC

  """Newest version a project uses by ascending order."""
  VERSION_ASC

  """Newest version a project uses by descending order."""
  VERSION_DESC

  """Last used date by ascending order."""
  LAST_USED_ASC

  """Last used date by descending order."""
  LAST_USED_DESC

  """Project name by ascending order."""
  PROJECT_NAME_ASC

  """Project name by descending order."""
  PROJECT_NAME_DESC
}

"""
A `CiCatalogResourcesComponentID` is a global ID. It is encoded as a string.

An example `CiCatalogResourcesComponentID` is: `"gid://gitlab/Ci::Catalog::Resources::Component/1"`.
"""
scalar CiCatalogResourcesComponentID

"""Values for scoping catalog resources"""
enum CiCatalogResourceScope {
  """All catalog resources visible to the current user."""
  ALL

  """Catalog resources belonging to authorized namespaces of the user."""
  NAMESPACES
}

"""Semantic version information for a catalog resource version"""
type CiCatalogResourceSemver {
  """Major version number."""
  major: Int

  """Minor version number."""
  minor: Int

  """Patch version number."""
  patch: Int
}

"""Values for sorting catalog resources"""
enum CiCatalogResourceSort {
  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """Latest release date by ascending order."""
  LATEST_RELEASED_AT_ASC

  """Latest release date by descending order."""
  LATEST_RELEASED_AT_DESC

  """Created date by ascending order."""
  CREATED_ASC

  """Created date by descending order."""
  CREATED_DESC

  """Star count by ascending order."""
  STAR_COUNT_ASC

  """Star count by descending order."""
  STAR_COUNT_DESC

  """Last 30-day usage count by ascending order."""
  USAGE_COUNT_ASC

  """Last 30-day usage count by descending order."""
  USAGE_COUNT_DESC
}

"""
A `CiCatalogResourcesVersionID` is a global ID. It is encoded as a string.

An example `CiCatalogResourcesVersionID` is: `"gid://gitlab/Ci::Catalog::Resources::Version/1"`.
"""
scalar CiCatalogResourcesVersionID

enum CiCatalogResourceVerificationLevel {
  """The resource is Gitlab Maintained"""
  GITLAB_MAINTAINED

  """The resource is Gitlab Partner Maintained"""
  GITLAB_PARTNER_MAINTAINED

  """The resource is Verified Creator Maintained"""
  VERIFIED_CREATOR_MAINTAINED

  """The resource is Verified Creator Self Managed"""
  VERIFIED_CREATOR_SELF_MANAGED

  """The resource is Unverified"""
  UNVERIFIED
}

type CiCatalogResourceVersion {
  """User that created the version."""
  author: UserCore

  """Commit associated with the version."""
  commit: Commit

  """Components belonging to the catalog resource."""
  components(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiCatalogResourceComponentConnection

  """Timestamp of when the version was created."""
  createdAt: Time

  """Global ID of the version."""
  id: CiCatalogResourcesVersionID!

  """Name that uniquely identifies the version within the catalog resource."""
  name: String

  """Relative web path to the version."""
  path: String

  """Readme data."""
  readme: String

  """GitLab Flavored Markdown rendering of `readme`"""
  readmeHtml: String

  """
  Timestamp of when the version was released. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  releasedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """Semantic version information."""
  semver: CiCatalogResourceSemver
}

"""The connection type for CiCatalogResourceVersion."""
type CiCatalogResourceVersionConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

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

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

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

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

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

type CiCdSettings {
  """
  Indicates the default minimum role required to override pipeline variables in the namespace.
  """
  pipelineVariablesDefaultRole: String
}

type CiConfig {
  """Linting errors."""
  errors: [String!]

  """List of included files."""
  includes: [CiConfigInclude!]

  """Merged CI configuration YAML."""
  mergedYaml: 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
  ): CiConfigStageConnection

  """Status of linting, can be either valid or invalid."""
  status: CiConfigStatus

  """Linting warnings."""
  warnings: [String!]
}

type CiConfigGroup {
  """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
  ): CiConfigJobConnection

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

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

"""The connection type for CiConfigGroup."""
type CiConfigGroupConnection {
  """A list of edges."""
  edges: [CiConfigGroupEdge]

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

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

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

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

type CiConfigGroupV2 {
  """Jobs in group."""
  jobs: [CiConfigJobV2!]

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

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

type CiConfigInclude {
  """
  File blob location. It can be masked if it contains masked variables. For example, `"https://gitlab.com/gitlab-org/gitlab/-/blob/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml"`.
  """
  blob: String

  """Current project scope, e.g., "gitlab-org/gitlab"."""
  contextProject: String

  """Current sha scope."""
  contextSha: String

  """
  Extra information for the `include`, which can contain `job_name`, `project`,
  and `ref`. Values can be masked if they contain masked variables.
  """
  extra: JSON

  """
  File location. It can be masked if it contains masked variables. For example, `".gitlab/ci/build-images.gitlab-ci.yml"`.
  """
  location: String

  """
  File raw location. It can be masked if it contains masked variables. For example, `"https://gitlab.com/gitlab-org/gitlab/-/raw/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml"`.
  """
  raw: String

  """Include type."""
  type: CiConfigIncludeType
}

"""Include type."""
enum CiConfigIncludeType {
  """Remote include."""
  remote

  """Local include."""
  local

  """Project file include."""
  file

  """Template include."""
  template

  """Component include."""
  component
}

type CiConfigJob {
  """Override a set of commands that are executed after the job."""
  afterScript: [String!]

  """Allow job to fail."""
  allowFailure: Boolean

  """Override a set of commands that are executed before the job."""
  beforeScript: [String!]

  """Name of an environment to which the job deploys."""
  environment: String

  """Limit when jobs are not created."""
  except: CiConfigJobRestriction

  """Name of the job group."""
  groupName: String

  """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
  ): CiConfigNeedConnection

  """Jobs are created when these conditions do not apply."""
  only: CiConfigJobRestriction

  """Shell script that is executed by a runner."""
  script: [String!]

  """Name of the job stage."""
  stage: String

  """List of tags that are used to select a runner."""
  tags: [String!]

  """When to run the job."""
  when: String
}

"""The connection type for CiConfigJob."""
type CiConfigJobConnection {
  """A list of edges."""
  edges: [CiConfigJobEdge]

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

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

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

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

type CiConfigJobRestriction {
  """Git refs the job restriction applies to."""
  refs: [String!]
}

type CiConfigJobV2 {
  """Override a set of commands that are executed after the job."""
  afterScript: [String!]

  """Allow job to fail."""
  allowFailure: Boolean

  """Override a set of commands that are executed before the job."""
  beforeScript: [String!]

  """Name of an environment to which the job deploys."""
  environment: String

  """Limit when jobs are not created."""
  except: CiConfigJobRestriction

  """Name of the job group."""
  groupName: String

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

  """Builds that must complete before the jobs run."""
  needs: [CiConfigNeed!]

  """Jobs are created when these conditions do not apply."""
  only: CiConfigJobRestriction

  """Shell script that is executed by a runner."""
  script: [String!]

  """Name of the job stage."""
  stage: String

  """List of tags that are used to select a runner."""
  tags: [String!]

  """When to run the job."""
  when: String
}

type CiConfigNeed {
  """Name of the need."""
  name: String
}

"""The connection type for CiConfigNeed."""
type CiConfigNeedConnection {
  """A list of edges."""
  edges: [CiConfigNeedEdge]

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

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

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

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

type CiConfigStage {
  """Groups 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
  ): CiConfigGroupConnection

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

"""The connection type for CiConfigStage."""
type CiConfigStageConnection {
  """A list of edges."""
  edges: [CiConfigStageEdge]

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

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

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

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

type CiConfigStageV2 {
  """Groups of jobs for the stage."""
  groups: [CiConfigGroupV2!]

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

"""Values for YAML processor result"""
enum CiConfigStatus {
  """Configuration file is valid."""
  VALID

  """Configuration file is not valid."""
  INVALID
}

type CiConfigV2 {
  """Linting errors."""
  errors: [String!]

  """List of included files."""
  includes: [CiConfigInclude!]

  """Merged CI configuration YAML."""
  mergedYaml: String

  """Stages of the pipeline."""
  stages: [CiConfigStageV2!]

  """Status of linting, can be either valid or invalid."""
  status: CiConfigStatus

  """Linting warnings."""
  warnings: [String!]
}

"""CI/CD config variables."""
type CiConfigVariable {
  """Description for the CI/CD config variable."""
  description: String

  """Name of the variable."""
  key: String

  """Value of the variable."""
  value: String

  """Value options for the variable."""
  valueOptions: [String!]
}

"""Filter options available for GitLab Dedicated runner usage data."""
type CiDedicatedHostedRunnerFilters {
  """List of runner IDs from usage data without associated runner records."""
  deletedRunners(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiDeletedRunnerConnection

  """List of unique runners with usage data."""
  runners(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerConnection

  """List of years with available usage data."""
  years: [Int!]
}

"""Compute usage data for hosted runners on GitLab Dedicated."""
type CiDedicatedHostedRunnerUsage {
  """Month of the usage data."""
  billingMonth: String!

  """Timestamp of the billing month in ISO 8601 format."""
  billingMonthIso8601: ISO8601Date!

  """
  Total compute minutes used across all namespaces. Values are rounded down to the nearest integer.
  """
  computeMinutes: Int!

  """Total compute minutes used across all namespaces."""
  computeMinutesUsage: Float!

  """Total duration in minutes of runner usage."""
  durationMinutes: Float!

  """
  Total duration in seconds of runner usage. Values are rounded down to the nearest integer.
  """
  durationSeconds: Int!

  """
  Namespace associated with the usage data. Null for instance aggregate data.
  """
  rootNamespace: NamespaceUnion
}

"""The connection type for CiDedicatedHostedRunnerUsage."""
type CiDedicatedHostedRunnerUsageConnection {
  """A list of edges."""
  edges: [CiDedicatedHostedRunnerUsageEdge]

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

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

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

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

"""Reference to a namespace that no longer exists"""
type CiDeletedNamespace {
  """ID of the deleted namespace."""
  id: NamespaceID
}

"""Reference to a deleted runner"""
type CiDeletedRunner {
  """Global ID of the deleted runner."""
  id: CiRunnerID!
}

"""The connection type for CiDeletedRunner."""
type CiDeletedRunnerConnection {
  """A list of edges."""
  edges: [CiDeletedRunnerEdge]

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

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

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

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

"""Histogram of durations for a group of CI/CD jobs or pipelines."""
type CiDurationStatistics {
  """
  Mean (average) duration. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  mean: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  50th percentile. 50% of the durations are lower than this value. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  p50: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  75th percentile. 75% of the durations are lower than this value. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  p75: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  90th percentile. 90% of the durations are lower than this value. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  p90: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  95th percentile. 95% of the durations are lower than this value. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  p95: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  99th percentile. 99% of the durations are lower than this value. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  p99: Duration @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")
}

"""Represents a deployment freeze window of a project"""
type CiFreezePeriod {
  """Time zone for the cron fields, defaults to UTC if not provided."""
  cronTimezone: String

  """End of the freeze period in cron format."""
  endCron: String!

  """Timestamp (UTC) of when the current/next active period ends."""
  endTime: Time

  """Start of the freeze period in cron format."""
  startCron: String!

  """Timestamp (UTC) of when the current/next active period starts."""
  startTime: Time

  """Freeze period status."""
  status: CiFreezePeriodStatus!
}

"""Deploy freeze period status"""
enum CiFreezePeriodStatus {
  """Freeze period is active."""
  ACTIVE

  """Freeze period is inactive."""
  INACTIVE
}

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

  """ID for a group."""
  id: String!

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

"""CI/CD environment scope for a group."""
type CiGroupEnvironmentScope {
  """Scope name defininig the enviromnments that can use the variable."""
  name: String
}

"""The connection type for CiGroupEnvironmentScope."""
type CiGroupEnvironmentScopeConnection {
  """A list of edges."""
  edges: [CiGroupEnvironmentScopeEdge]

  """A list of nodes."""
  nodes: [CiGroupEnvironmentScope]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiGroupEnvironmentScopeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiGroupEnvironmentScope
}

"""CI/CD variables for a group."""
type CiGroupVariable implements CiVariable {
  """Description of the variable."""
  description: String

  """Scope defining the environments that can use the variable."""
  environmentScope: String

  """Indicates whether the variable is hidden."""
  hidden: Boolean

  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is masked."""
  masked: Boolean

  """Indicates whether the variable is protected."""
  protected: Boolean

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for CiGroupVariable."""
type CiGroupVariableConnection {
  """A list of edges."""
  edges: [CiGroupVariableEdge]

  """Maximum amount of group CI/CD variables."""
  limit: Int!

  """A list of nodes."""
  nodes: [CiGroupVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiGroupVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiGroupVariable
}

"""Values for sorting inherited variables"""
enum CiGroupVariablesSort {
  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC

  """Key by descending order."""
  KEY_DESC

  """Key by ascending order."""
  KEY_ASC
}

"""Condition node in rule expression tree."""
type CiInputsCondition {
  """Child conditions for AND/OR nodes."""
  children: [CiInputsCondition!]

  """Input field name for comparison nodes."""
  field: String

  """Operator type: equals, not_equals, AND, OR."""
  operator: String!

  """Expected value for comparison nodes."""
  value: CiInputsValue
}

"""CI input saved for a pipeline schedule"""
type CiInputsField {
  """Name of the input."""
  name: String!

  """Value of the input."""
  value: CiInputsValue
}

"""The connection type for CiInputsField."""
type CiInputsFieldConnection {
  """A list of edges."""
  edges: [CiInputsFieldEdge]

  """A list of nodes."""
  nodes: [CiInputsField]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiInputsFieldEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiInputsField
}

"""Attributes for defining an input."""
input CiInputsInput {
  """Name of the input."""
  name: String!

  """Value of the input."""
  value: CiInputsValue!

  """Set to `true` to delete the input."""
  destroy: Boolean
}

"""Conditional rule for dynamic input options"""
type CiInputsRule {
  """Parsed condition tree for frontend eval."""
  conditionTree: CiInputsCondition

  """
  Default value when rule matches. Can be a string, array, number, or boolean.
  """
  default: CiInputsValue

  """Condition expression."""
  if: String

  """
  Available options when rule matches. Each option can be a string, array, number, or boolean.
  """
  options: [CiInputsValue!]
}

"""Input for pipeline creation"""
type CiInputsSpec {
  """Default value for the input, if provided."""
  default: CiInputsValue

  """Description of the input."""
  description: String

  """Name of the input."""
  name: String!

  """Possible values that the input can take, if provided."""
  options: CiInputsValue

  """
  Regular expression pattern that the input value must match if provided.
  """
  regex: String

  """Indicates whether the input is required."""
  required: Boolean!

  """Conditional rules for dynamic input options."""
  rules: [CiInputsRule!]

  """Input data type."""
  type: CiInputsType!
}

"""Available input types"""
enum CiInputsType {
  """Array input"""
  ARRAY

  """Boolean input"""
  BOOLEAN

  """Number input"""
  NUMBER

  """String input"""
  STRING
}

"""Value for a CI input. Can be a string, array, number, or boolean."""
scalar CiInputsValue

"""CI/CD variables for a GitLab instance."""
type CiInstanceVariable implements CiVariable {
  """Description of the variable."""
  description: String

  """
  Scope defining the environments that can use the variable. Deprecated in
  GitLab 15.3: No longer used, only available for GroupVariableType and
  ProjectVariableType.
  """
  environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in GitLab 15.3.")

  """Indicates whether the variable is hidden."""
  hidden: Boolean

  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is masked."""
  masked: Boolean

  """Indicates whether the variable is protected."""
  protected: Boolean

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for CiInstanceVariable."""
type CiInstanceVariableConnection {
  """A list of edges."""
  edges: [CiInstanceVariableEdge]

  """A list of nodes."""
  nodes: [CiInstanceVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiInstanceVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiInstanceVariable
}

type CiJob implements CiJobInterface {
  """Indicates the job is active."""
  active: Boolean!

  """Whether the job is allowed to fail."""
  allowFailure: Boolean!

  """Artifacts generated by the job."""
  artifacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobArtifactConnection

  """URL for browsing the artifact's archive."""
  browseArtifactsPath: String

  """Indicates whether the current user can play the job."""
  canPlayJob: Boolean!

  """Indicates the job can be canceled."""
  cancelable: Boolean!

  """Path to the commit that triggered the job."""
  commitPath: String

  """Coverage level of the job."""
  coverage: Float

  """When the job was created."""
  createdAt: Time!

  """Whether the job was created by a tag."""
  createdByTag: Boolean!

  """Detailed status of the job."""
  detailedStatus: DetailedStatus

  """Downstream pipeline for a bridge."""
  downstreamPipeline: Pipeline

  """Duration of the job in seconds."""
  duration: Int

  """When the job was erased."""
  erasedAt: Time

  """
  Exit code of the job. Available for jobs that started after upgrading to GitLab 16.10 and failed with an exit code.
  """
  exitCode: Int

  """Message on why the job failed."""
  failureMessage: String

  """When a job has finished running."""
  finishedAt: Time

  """ID of the job."""
  id: JobID

  """
  Input values that were used when the job was created or retried. A value is
  only present in the field if it differs from the default value in the input
  configuration. This field can only be resolved for one job in any single request.
  """
  inputs: [CiInputsField!]

  """
  Input specification for the job. Defines the inputs that can be provided when
  creating or retrying the job. This field can only be resolved for one job in
  any single request.
  """
  inputsSpec: [CiInputsSpec!]

  """Indicates the type of job."""
  kind: CiJobKind!

  """Whether the job has a manual action."""
  manualJob: Boolean

  """Variables added to a manual job when the job is triggered."""
  manualVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiManualVariableConnection

  """Name of the job."""
  name: String

  """References to 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
  ): CiBuildNeedConnection

  """Pipeline the job belongs to."""
  pipeline: PipelineInterface

  """Play path of the job."""
  playPath: String

  """Indicates the job can be played."""
  playable: Boolean!

  """Jobs from the previous stage."""
  previousStageJobs(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Jobs that must complete before the job runs. Returns `BuildNeed`, which is the
  needed jobs if the job uses the `needs` keyword, or the previous stage jobs
  otherwise. Deprecated in GitLab 16.4: Replaced by previousStageJobs and needs fields.
  """
  previousStageJobsOrNeeds(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): JobNeedUnionConnection @deprecated(reason: "Replaced by previousStageJobs and needs fields. Deprecated in GitLab 16.4.")

  """Project that the job belongs to."""
  project: Project

  """When the job was enqueued and marked as pending."""
  queuedAt: Time

  """How long the job was enqueued before starting."""
  queuedDuration: Duration

  """Ref name of the job."""
  refName: String

  """Path to the ref."""
  refPath: String

  """Indicates that the job has been retried."""
  retried: Boolean

  """Retry path of the job."""
  retryPath: String

  """Indicates the job can be retried."""
  retryable: Boolean!

  """Runner assigned to execute the job."""
  runner: CiRunner

  """Runner manager assigned to the job."""
  runnerManager: CiRunnerManager

  """Indicates the job is scheduled."""
  scheduled: Boolean!

  """Schedule for the build."""
  scheduledAt: Time

  """
  Type of job scheduling. Value is `dag` if the job uses the `needs` keyword, and `stage` otherwise.
  """
  schedulingType: String

  """Short SHA1 ID of the commit."""
  shortSha: String!

  """
  Policy or action that initiated the job. If not set, the value is inherited from the pipeline.
  """
  source: String

  """Stage of the job."""
  stage: CiStage

  """When the job was started."""
  startedAt: Time

  """Status of the job."""
  status: CiJobStatus

  """Indicates the job is stuck."""
  stuck: Boolean!

  """Tags for the current job."""
  tags: [String!]

  """Trace generated by the job."""
  trace: CiJobTrace

  """Whether the job was triggered."""
  triggered: Boolean

  """Permissions for the current user on the resource"""
  userPermissions: JobPermissions!

  """Web path of the job."""
  webPath: String
}

"""CI/CD job analytics data"""
type CiJobAnalytics {
  """Job name."""
  name: String

  """Stage name."""
  stageName: String

  """Statistics for the jobs."""
  statistics: CiJobAnalyticsStatistics
}

"""The connection type for CiJobAnalytics."""
type CiJobAnalyticsConnection {
  """A list of edges."""
  edges: [CiJobAnalyticsEdge]

  """A list of nodes."""
  nodes: [CiJobAnalytics]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobAnalyticsEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobAnalytics
}

"""Values for sorting CI/CD job analytics"""
enum CiJobAnalyticsSort {
  """Sort by name in ascending order."""
  NAME_ASC

  """Sort by name in descending order."""
  NAME_DESC

  """Sort by stage name in ascending order."""
  STAGE_NAME_ASC

  """Sort by stage name in descending order."""
  STAGE_NAME_DESC

  """Sort by mean duration in ascending order."""
  MEAN_DURATION_ASC

  """Sort by mean duration in descending order."""
  MEAN_DURATION_DESC

  """Sort by 50th percentile duration in ascending order."""
  P50_DURATION_ASC

  """Sort by 50th percentile duration in descending order."""
  P50_DURATION_DESC

  """Sort by 75th percentile duration in ascending order."""
  P75_DURATION_ASC

  """Sort by 75th percentile duration in descending order."""
  P75_DURATION_DESC

  """Sort by 90th percentile duration in ascending order."""
  P90_DURATION_ASC

  """Sort by 90th percentile duration in descending order."""
  P90_DURATION_DESC

  """Sort by 95th percentile duration in ascending order."""
  P95_DURATION_ASC

  """Sort by 95th percentile duration in descending order."""
  P95_DURATION_DESC

  """Sort by 99th percentile duration in ascending order."""
  P99_DURATION_ASC

  """Sort by 99th percentile duration in descending order."""
  P99_DURATION_DESC

  """Sort by success rate in ascending order."""
  SUCCESS_RATE_ASC

  """Sort by success rate in descending order."""
  SUCCESS_RATE_DESC

  """Sort by failed rate in ascending order."""
  FAILED_RATE_ASC

  """Sort by failed rate in descending order."""
  FAILED_RATE_DESC

  """Sort by canceled rate in ascending order."""
  CANCELED_RATE_ASC

  """Sort by canceled rate in descending order."""
  CANCELED_RATE_DESC
}

"""Statistics for CI/CD job analytics"""
type CiJobAnalyticsStatistics {
  """Count of jobs, optionally filtered by status."""
  count(
    """Filter job count by status."""
    status: PipelineAnalyticsJobStatus
  ): BigInt

  """Duration statistics for the jobs."""
  durationStatistics: CiDurationStatistics

  """
  Percentage of jobs, optionally filtered by status. SUCCESS and FAILED rates
  use (success + failed) as the denominator; OTHER (canceled or skipped) uses
  the total job count.
  """
  rate(
    """
    Filter job rate by status. If not specified, returns 100.0 (representing all jobs).
    """
    status: PipelineAnalyticsJobStatus
  ): Float
}

type CiJobArtifact {
  """URL for downloading the artifact's file."""
  downloadPath: String

  """Expiry date of the artifact."""
  expireAt: Time

  """Expired state of the artifact."""
  expired: Boolean!

  """File type of the artifact."""
  fileType: JobArtifactFileType

  """ID of the artifact."""
  id: CiJobArtifactID!

  """File name of the artifact."""
  name: String

  """Size of the artifact in bytes."""
  size: BigInt!
}

"""The connection type for CiJobArtifact."""
type CiJobArtifactConnection {
  """A list of edges."""
  edges: [CiJobArtifactEdge]

  """A list of nodes."""
  nodes: [CiJobArtifact]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobArtifactEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobArtifact
}

"""
A `CiJobArtifactID` is a global ID. It is encoded as a string.

An example `CiJobArtifactID` is: `"gid://gitlab/Ci::JobArtifact/1"`.
"""
scalar CiJobArtifactID

"""The connection type for CiJob."""
type CiJobConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """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
}

enum CiJobFailureReason {
  """A job that failed due to unknown failure."""
  UNKNOWN_FAILURE

  """A job that failed due to script failure."""
  SCRIPT_FAILURE

  """A job that failed due to api failure."""
  API_FAILURE

  """A job that failed due to stuck or timeout failure."""
  STUCK_OR_TIMEOUT_FAILURE

  """A job that failed due to runner system failure."""
  RUNNER_SYSTEM_FAILURE

  """A job that failed due to missing dependency failure."""
  MISSING_DEPENDENCY_FAILURE

  """A job that failed due to runner unsupported."""
  RUNNER_UNSUPPORTED

  """A job that failed due to stale schedule."""
  STALE_SCHEDULE

  """A job that failed due to job execution timeout."""
  JOB_EXECUTION_TIMEOUT

  """A job that failed due to archived failure."""
  ARCHIVED_FAILURE

  """A job that failed due to unmet prerequisites."""
  UNMET_PREREQUISITES

  """A job that failed due to scheduler failure."""
  SCHEDULER_FAILURE

  """A job that failed due to data integrity failure."""
  DATA_INTEGRITY_FAILURE

  """A job that failed due to forward deployment failure."""
  FORWARD_DEPLOYMENT_FAILURE

  """A job that failed due to user blocked."""
  USER_BLOCKED

  """A job that failed due to project deleted."""
  PROJECT_DELETED

  """A job that failed due to ci quota exceeded."""
  CI_QUOTA_EXCEEDED

  """A job that failed due to pipeline loop detected."""
  PIPELINE_LOOP_DETECTED

  """A job that failed due to no matching runner."""
  NO_MATCHING_RUNNER

  """A job that failed due to trace size exceeded."""
  TRACE_SIZE_EXCEEDED

  """A job that failed due to builds disabled."""
  BUILDS_DISABLED

  """A job that failed due to environment creation failure."""
  ENVIRONMENT_CREATION_FAILURE

  """A job that failed due to deployment rejected."""
  DEPLOYMENT_REJECTED

  """A job that failed due to failed outdated deployment job."""
  FAILED_OUTDATED_DEPLOYMENT_JOB

  """A job that failed due to job execution server timeout."""
  JOB_EXECUTION_SERVER_TIMEOUT

  """A job that failed due to stuck pending with matching runners."""
  STUCK_PENDING_WITH_MATCHING_RUNNERS

  """A job that failed due to stuck pending no matching runners."""
  STUCK_PENDING_NO_MATCHING_RUNNERS

  """A job that failed due to no updates running."""
  NO_UPDATES_RUNNING

  """A job that failed due to no updates canceling."""
  NO_UPDATES_CANCELING

  """A job that failed due to server timeout running."""
  SERVER_TIMEOUT_RUNNING

  """A job that failed due to server timeout canceling."""
  SERVER_TIMEOUT_CANCELING

  """A job that failed due to runner configuration error."""
  RUNNER_CONFIGURATION_ERROR

  """A job that failed due to runner external dependency failure."""
  RUNNER_EXTERNAL_DEPENDENCY_FAILURE

  """A job that failed due to runner interrupted."""
  RUNNER_INTERRUPTED

  """A job that failed due to protected environment failure."""
  PROTECTED_ENVIRONMENT_FAILURE

  """A job that failed due to insufficient bridge permissions."""
  INSUFFICIENT_BRIDGE_PERMISSIONS

  """A job that failed due to downstream bridge project not found."""
  DOWNSTREAM_BRIDGE_PROJECT_NOT_FOUND

  """A job that failed due to invalid bridge trigger."""
  INVALID_BRIDGE_TRIGGER

  """A job that failed due to upstream bridge project not found."""
  UPSTREAM_BRIDGE_PROJECT_NOT_FOUND

  """A job that failed due to insufficient upstream permissions."""
  INSUFFICIENT_UPSTREAM_PERMISSIONS

  """A job that failed due to bridge pipeline is child pipeline."""
  BRIDGE_PIPELINE_IS_CHILD_PIPELINE

  """A job that failed due to downstream pipeline creation failed."""
  DOWNSTREAM_PIPELINE_CREATION_FAILED

  """A job that failed due to secrets provider not found."""
  SECRETS_PROVIDER_NOT_FOUND

  """A job that failed due to reached max descendant pipelines depth."""
  REACHED_MAX_DESCENDANT_PIPELINES_DEPTH

  """A job that failed due to ip restriction failure."""
  IP_RESTRICTION_FAILURE

  """A job that failed due to reached max pipeline hierarchy size."""
  REACHED_MAX_PIPELINE_HIERARCHY_SIZE

  """
  A job that failed due to reached downstream pipeline trigger rate limit.
  """
  REACHED_DOWNSTREAM_PIPELINE_TRIGGER_RATE_LIMIT

  """A job that failed due to duo workflow not allowed."""
  DUO_WORKFLOW_NOT_ALLOWED

  """A job that failed due to job router failure."""
  JOB_ROUTER_FAILURE

  """A job that failed due to job token expired."""
  JOB_TOKEN_EXPIRED

  """A job that failed due to id token burned project path."""
  ID_TOKEN_BURNED_PROJECT_PATH

  """A job that failed due to downstream project trigger resolved to empty."""
  DOWNSTREAM_PROJECT_TRIGGER_RESOLVED_TO_EMPTY
}

interface CiJobInterface {
  """Indicates the job is active."""
  active: Boolean

  """Whether the job is allowed to fail."""
  allowFailure: Boolean

  """Artifacts generated by the job."""
  artifacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobArtifactConnection

  """URL for browsing the artifact's archive."""
  browseArtifactsPath: String

  """Indicates whether the current user can play the job."""
  canPlayJob: Boolean

  """Indicates the job can be canceled."""
  cancelable: Boolean

  """Path to the commit that triggered the job."""
  commitPath: String

  """Coverage level of the job."""
  coverage: Float

  """When the job was created."""
  createdAt: Time

  """Whether the job was created by a tag."""
  createdByTag: Boolean

  """Detailed status of the job."""
  detailedStatus: DetailedStatus

  """Duration of the job in seconds."""
  duration: Int

  """When the job was erased."""
  erasedAt: Time

  """
  Exit code of the job. Available for jobs that started after upgrading to GitLab 16.10 and failed with an exit code.
  """
  exitCode: Int

  """Message on why the job failed."""
  failureMessage: String

  """When a job has finished running."""
  finishedAt: Time

  """ID of the job."""
  id: JobID

  """Indicates the type of job."""
  kind: CiJobKind

  """Whether the job has a manual action."""
  manualJob: Boolean

  """Name of the job."""
  name: String

  """Pipeline the job belongs to."""
  pipeline: PipelineInterface

  """Play path of the job."""
  playPath: String

  """Indicates the job can be played."""
  playable: Boolean

  """Project that the job belongs to."""
  project: ProjectInterface

  """When the job was enqueued and marked as pending."""
  queuedAt: Time

  """How long the job was enqueued before starting."""
  queuedDuration: Duration

  """Ref name of the job."""
  refName: String

  """Path to the ref."""
  refPath: String

  """Indicates that the job has been retried."""
  retried: Boolean

  """Retry path of the job."""
  retryPath: String

  """Indicates the job can be retried."""
  retryable: Boolean

  """Runner assigned to execute the job."""
  runner: CiRunner

  """Indicates the job is scheduled."""
  scheduled: Boolean

  """Schedule for the build."""
  scheduledAt: Time

  """
  Type of job scheduling. Value is `dag` if the job uses the `needs` keyword, and `stage` otherwise.
  """
  schedulingType: String

  """Short SHA1 ID of the commit."""
  shortSha: String

  """
  Policy or action that initiated the job. If not set, the value is inherited from the pipeline.
  """
  source: String

  """Stage of the job."""
  stage: CiStage

  """When the job was started."""
  startedAt: Time

  """Status of the job."""
  status: CiJobStatus

  """Indicates the job is stuck."""
  stuck: Boolean

  """Tags for the current job."""
  tags: [String!]

  """Trace generated by the job."""
  trace: CiJobTrace

  """Whether the job was triggered."""
  triggered: Boolean

  """Permissions for the current user on the job."""
  userPermissions: JobPermissions

  """Web path of the job."""
  webPath: String
}

"""The connection type for CiJobInterface."""
type CiJobInterfaceConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [CiJobInterfaceEdge]

  """A list of nodes."""
  nodes: [CiJobInterface]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobInterfaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobInterface
}

enum CiJobKind {
  """Standard CI job."""
  BUILD

  """Bridge CI job connecting a parent and child pipeline."""
  BRIDGE
}

type CiJobMinimalAccess implements CiJobInterface {
  """Indicates the job is active."""
  active: Boolean!

  """Whether the job is allowed to fail."""
  allowFailure: Boolean!

  """Artifacts generated by the job."""
  artifacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobArtifactConnection

  """URL for browsing the artifact's archive."""
  browseArtifactsPath: String

  """Indicates whether the current user can play the job."""
  canPlayJob: Boolean

  """Indicates the job can be canceled."""
  cancelable: Boolean

  """Path to the commit that triggered the job."""
  commitPath: String

  """Coverage level of the job."""
  coverage: Float

  """When the job was created."""
  createdAt: Time

  """Whether the job was created by a tag."""
  createdByTag: Boolean!

  """Detailed status of the job."""
  detailedStatus: DetailedStatus

  """Duration of the job in seconds."""
  duration: Int

  """When the job was erased."""
  erasedAt: Time

  """
  Exit code of the job. Available for jobs that started after upgrading to GitLab 16.10 and failed with an exit code.
  """
  exitCode: Int

  """Message on why the job failed."""
  failureMessage: String

  """When a job has finished running."""
  finishedAt: Time

  """ID of the job."""
  id: JobID

  """Indicates the type of job."""
  kind: CiJobKind

  """Whether the job has a manual action."""
  manualJob: Boolean

  """Name of the job."""
  name: String

  """Pipeline the job belongs to."""
  pipeline: PipelineInterface

  """Play path of the job."""
  playPath: String

  """Indicates the job can be played."""
  playable: Boolean

  """Project that the job belongs to."""
  project: ProjectInterface

  """When the job was enqueued and marked as pending."""
  queuedAt: Time

  """How long the job was enqueued before starting."""
  queuedDuration: Duration

  """Ref name of the job."""
  refName: String

  """Path to the ref."""
  refPath: String

  """Indicates that the job has been retried."""
  retried: Boolean

  """Retry path of the job."""
  retryPath: String

  """Indicates the job can be retried."""
  retryable: Boolean

  """Runner assigned to execute the job."""
  runner: CiRunner

  """Indicates the job is scheduled."""
  scheduled: Boolean

  """Schedule for the build."""
  scheduledAt: Time

  """
  Type of job scheduling. Value is `dag` if the job uses the `needs` keyword, and `stage` otherwise.
  """
  schedulingType: String

  """Short SHA1 ID of the commit."""
  shortSha: String!

  """
  Policy or action that initiated the job. If not set, the value is inherited from the pipeline.
  """
  source: String

  """Stage of the job."""
  stage: CiStage

  """When the job was started."""
  startedAt: Time

  """Status of the job."""
  status: CiJobStatus

  """Indicates the job is stuck."""
  stuck: Boolean!

  """Tags for the current job."""
  tags: [String!]

  """Trace generated by the job."""
  trace: CiJobTrace

  """Whether the job was triggered."""
  triggered: Boolean

  """Permissions for the current user on the job."""
  userPermissions: JobPermissions

  """Web path of the job."""
  webPath: String
}

enum CiJobSource {
  """A job initiated by scan execution policy."""
  SCAN_EXECUTION_POLICY

  """A job initiated by pipeline execution policy."""
  PIPELINE_EXECUTION_POLICY

  """A job initiated by security scan profiles."""
  SECURITY_SCAN_PROFILES

  """A job initiated by unknown."""
  UNKNOWN

  """A job initiated by push."""
  PUSH

  """A job initiated by web."""
  WEB

  """A job initiated by trigger."""
  TRIGGER

  """A job initiated by schedule."""
  SCHEDULE

  """A job initiated by api."""
  API

  """A job initiated by external."""
  EXTERNAL

  """A job initiated by pipeline."""
  PIPELINE

  """A job initiated by chat."""
  CHAT

  """A job initiated by webide."""
  WEBIDE

  """A job initiated by merge request event."""
  MERGE_REQUEST_EVENT

  """A job initiated by external pull request event."""
  EXTERNAL_PULL_REQUEST_EVENT

  """A job initiated by parent pipeline."""
  PARENT_PIPELINE

  """A job initiated by ondemand dast scan."""
  ONDEMAND_DAST_SCAN

  """A job initiated by ondemand dast validation."""
  ONDEMAND_DAST_VALIDATION

  """A job initiated by security orchestration policy."""
  SECURITY_ORCHESTRATION_POLICY

  """A job initiated by container registry push."""
  CONTAINER_REGISTRY_PUSH

  """A job initiated by duo workflow."""
  DUO_WORKFLOW

  """A job initiated by pipeline execution policy schedule."""
  PIPELINE_EXECUTION_POLICY_SCHEDULE

  """A job initiated by dependency management security update."""
  DEPENDENCY_MANAGEMENT_SECURITY_UPDATE
}

"""Statistics for a group of CI jobs."""
type CiJobsStatistics {
  """
  Statistics for the amount of time that jobs were waiting to be picked up. The
  calculation is based on the 100 most recent jobs run by the 5000 most recently
  created runners in context. If no filter is applied to runners, the
  calculation uses the 100 most recent jobs globally.
  """
  queuedDuration: CiDurationStatistics
}

enum CiJobStatus {
  """A job that is created."""
  CREATED

  """A job that is waiting for resource."""
  WAITING_FOR_RESOURCE

  """A job that is preparing."""
  PREPARING

  """A job that is waiting for callback."""
  WAITING_FOR_CALLBACK

  """A job that is pending."""
  PENDING

  """A job that is running."""
  RUNNING

  """A job that is success."""
  SUCCESS

  """A job that is failed."""
  FAILED

  """A job that is canceling."""
  CANCELING

  """A job that is canceled."""
  CANCELED

  """A job that is skipped."""
  SKIPPED

  """A job that is manual."""
  MANUAL

  """A job that is scheduled."""
  SCHEDULED
}

"""
Group that can access the current project by authenticating with a CI/CD job token.
"""
type CiJobTokenAccessibleGroup {
  """Avatar URL of the group."""
  avatarUrl: String

  """Full path of the group."""
  fullPath: ID!

  """ID of the group."""
  id: ID!

  """Name of the group."""
  name: String!

  """Path of the group."""
  path: String!

  """Web URL of the group."""
  webUrl: String
}

"""The connection type for CiJobTokenAccessibleGroup."""
type CiJobTokenAccessibleGroupConnection {
  """A list of edges."""
  edges: [CiJobTokenAccessibleGroupEdge]

  """A list of nodes."""
  nodes: [CiJobTokenAccessibleGroup]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobTokenAccessibleGroupEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobTokenAccessibleGroup
}

"""
Project that can access the current project by authenticating with a CI/CD job token.
"""
type CiJobTokenAccessibleProject {
  """URL to avatar image file of the project."""
  avatarUrl: String

  """Full path of the project."""
  fullPath: ID!

  """ID of the project."""
  id: ID!

  """Name of the project (without namespace)."""
  name: String!

  """Path of the project."""
  path: String!

  """Web URL of the project."""
  webUrl: String
}

"""The connection type for CiJobTokenAccessibleProject."""
type CiJobTokenAccessibleProjectConnection {
  """A list of edges."""
  edges: [CiJobTokenAccessibleProjectEdge]

  """A list of nodes."""
  nodes: [CiJobTokenAccessibleProject]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobTokenAccessibleProjectEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobTokenAccessibleProject
}

type CiJobTokenAuthLog {
  """
  Last authorization date time. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  lastAuthorizedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """Origin project. Introduced in GitLab 17.6: **Status**: Experiment."""
  originProject: CiJobTokenAccessibleProject! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
}

"""The connection type for CiJobTokenAuthLog."""
type CiJobTokenAuthLogConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiJobTokenAuthLogEdge]

  """A list of nodes."""
  nodes: [CiJobTokenAuthLog]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobTokenAuthLogEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobTokenAuthLog
}

"""Autogenerated input type of CiJobTokenScopeAddGroupOrProject"""
input CiJobTokenScopeAddGroupOrProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project that the CI job token scope belongs to."""
  projectPath: ID!

  """Group or project to be added to the CI job token scope."""
  targetPath: ID!

  """
  Indicates whether default permissions are enabled (true) or fine-grained
  permissions are enabled (false). Introduced in GitLab 17.8: **Status**: Experiment.
  """
  defaultPermissions: Boolean = true

  """
  List of policies added to the CI job token scope. Is ignored if job token
  policies are disabled. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  jobTokenPolicies: [CiJobTokenScopePolicies!] = []
}

"""Autogenerated return type of CiJobTokenScopeAddGroupOrProject."""
type CiJobTokenScopeAddGroupOrProjectPayload {
  """CI job token's access scope."""
  ciJobTokenScope: CiJobTokenScopeType

  """
  Allowlist entry for the CI job token's access scope. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlistEntry: CiJobTokenScopeAllowlistEntry @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CiJobTokenScopeAddProject"""
input CiJobTokenScopeAddProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project that the CI job token scope belongs to."""
  projectPath: ID!

  """Project to be added to the CI job token scope."""
  targetProjectPath: ID!

  """
  Direction of access, which defaults to INBOUND. Deprecated in GitLab 16.0:
  Outbound job token scope is being removed. This field can now only be set to INBOUND.
  """
  direction: CiJobTokenScopeDirection
}

"""Autogenerated return type of CiJobTokenScopeAddProject."""
type CiJobTokenScopeAddProjectPayload {
  """CI job token's access scope."""
  ciJobTokenScope: CiJobTokenScopeType

  """
  Allowlist entry for the CI job token's access scope. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlistEntry: CiJobTokenScopeAllowlistEntry @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type CiJobTokenScopeAllowlist {
  """
  Allowlist of groups that can access the current project by authenticating with a CI/CD job token.
  """
  groupsAllowlist(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobTokenScopeAllowlistEntryConnection

  """
  Allowlist of projects that can access the current project by authenticating with a CI/CD job token.
  """
  projectsAllowlist(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobTokenScopeAllowlistEntryConnection
}

"""Represents an allowlist entry for the CI_JOB_TOKEN"""
type CiJobTokenScopeAllowlistEntry {
  """User that added the entry."""
  addedBy: UserCore

  """Indicates whether the entry is created by the autopopulation process."""
  autopopulated: Boolean

  """When the entry was created."""
  createdAt: Time!

  """
  Indicates whether default permissions are enabled (true) or fine-grained permissions are enabled (false).
  """
  defaultPermissions: Boolean

  """
  Direction of access. Defaults to INBOUND. Deprecated in GitLab 18.0: Outbound
  job token scope is being removed. This field can only be INBOUND.
  """
  direction: String @deprecated(reason: "Outbound job token scope is being removed. This field can only be INBOUND. Deprecated in GitLab 18.0.")

  """
  List of policies for the entry. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  jobTokenPolicies: [CiJobTokenScopePolicies!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Project that owns the allowlist entry."""
  sourceProject: Project!

  """Group or project allowed by the entry."""
  target: CiJobTokenScopeTarget
}

"""The connection type for CiJobTokenScopeAllowlistEntry."""
type CiJobTokenScopeAllowlistEntryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiJobTokenScopeAllowlistEntryEdge]

  """A list of nodes."""
  nodes: [CiJobTokenScopeAllowlistEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiJobTokenScopeAllowlistEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiJobTokenScopeAllowlistEntry
}

"""Direction of access."""
enum CiJobTokenScopeDirection {
  """
  Job token scope project can access target project in the outbound allowlist.
  """
  OUTBOUND

  """
  Target projects in the inbound allowlist can access the scope project through their job tokens.
  """
  INBOUND
}

"""CI_JOB_TOKEN policy"""
enum CiJobTokenScopePolicies {
  """Read Badges"""
  READ_BADGES

  """Admin Badges"""
  ADMIN_BADGES

  """Read Deployments"""
  READ_DEPLOYMENTS

  """Admin Deployments"""
  ADMIN_DEPLOYMENTS

  """Read Environments"""
  READ_ENVIRONMENTS

  """Admin Environments"""
  ADMIN_ENVIRONMENTS

  """Read Jobs"""
  READ_JOBS

  """Admin Jobs"""
  ADMIN_JOBS

  """Read Merge Requests"""
  READ_MERGE_REQUESTS

  """Read Packages"""
  READ_PACKAGES

  """Admin Packages"""
  ADMIN_PACKAGES

  """Read Pipelines"""
  READ_PIPELINES

  """Admin Pipelines"""
  ADMIN_PIPELINES

  """Read Releases"""
  READ_RELEASES

  """Admin Releases"""
  ADMIN_RELEASES

  """Read Repositories"""
  READ_REPOSITORIES

  """Admin Repositories"""
  ADMIN_REPOSITORIES

  """Read Secure Files"""
  READ_SECURE_FILES

  """Admin Secure Files"""
  ADMIN_SECURE_FILES

  """Read Terraform State"""
  READ_TERRAFORM_STATE

  """Admin Terraform State"""
  ADMIN_TERRAFORM_STATE

  """Read Work Items"""
  READ_WORK_ITEMS
}

"""Autogenerated input type of CiJobTokenScopeRemoveGroup"""
input CiJobTokenScopeRemoveGroupInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project that the CI job token scope belongs to."""
  projectPath: ID!

  """Group to be removed from the CI job token scope."""
  targetGroupPath: ID!
}

"""Autogenerated return type of CiJobTokenScopeRemoveGroup."""
type CiJobTokenScopeRemoveGroupPayload {
  """CI job token's access scope."""
  ciJobTokenScope: CiJobTokenScopeType

  """
  Allowlist entry for the CI job token's access scope. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlistEntry: CiJobTokenScopeAllowlistEntry @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CiJobTokenScopeRemoveProject"""
input CiJobTokenScopeRemoveProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project that the CI job token scope belongs to."""
  projectPath: ID!

  """Project to be removed from the CI job token scope."""
  targetProjectPath: ID!

  """
  Direction of access, which defaults to inbound. Deprecated in GitLab 16.9:
  Outbound job token scope is being removed. This field can now only be set to INBOUND.
  """
  direction: CiJobTokenScopeDirection
}

"""Autogenerated return type of CiJobTokenScopeRemoveProject."""
type CiJobTokenScopeRemoveProjectPayload {
  """CI job token's access scope."""
  ciJobTokenScope: CiJobTokenScopeType

  """
  Allowlist entry for the CI job token's access scope. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlistEntry: CiJobTokenScopeAllowlistEntry @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Represents an object that is the target of a CI_JOB_TOKEN allowlist entry
"""
union CiJobTokenScopeTarget = CiJobTokenAccessibleGroup | CiJobTokenAccessibleProject

type CiJobTokenScopeType {
  """
  List of IDs of groups which have been created by the  autopopulation process.
  """
  groupAllowlistAutopopulatedIds: [GroupID!]!

  """
  Allowlist of groups that can access the current project by authenticating with a CI/CD job token.
  """
  groupsAllowlist(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobTokenAccessibleGroupConnection!

  """
  Count of groups that can access the current project by authenticating with a
  CI/CD job token. The count does not include subgroups.
  """
  groupsAllowlistCount: Int!

  """
  Allowlist of projects that can access the current project by authenticating with a CI/CD job token.
  """
  inboundAllowlist(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobTokenAccessibleProjectConnection!

  """
  List of IDs of projects which have been created by the  autopopulation process.
  """
  inboundAllowlistAutopopulatedIds: [ProjectID!]!

  """
  Count of projects that can access the current project by authenticating with a
  CI/CD job token. The count does not include nested projects.
  """
  inboundAllowlistCount: Int!

  """
  Allow list of projects that are accessible using the current project's CI Job
  tokens. Deprecated in GitLab 18.0: Outbound job token scope is being removed.
  Only inbound allowlist is supported.
  """
  outboundAllowlist(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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! @deprecated(reason: "Outbound job token scope is being removed. Only inbound allowlist is supported. Deprecated in GitLab 18.0.")

  """
  Allow list of projects that can be accessed by CI Job tokens created by the
  project. Deprecated in GitLab 15.9: The `projects` attribute is being
  deprecated. Use `outbound_allowlist`.
  """
  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! @deprecated(reason: "The `projects` attribute is being deprecated. Use `outbound_allowlist`. Deprecated in GitLab 15.9.")
}

"""Autogenerated input type of CiJobTokenScopeUpdatePolicies"""
input CiJobTokenScopeUpdatePoliciesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project that the CI job token scope belongs to."""
  projectPath: ID!

  """Group or project that the CI job token targets."""
  targetPath: ID!

  """
  Indicates whether default permissions are enabled (true) or fine-grained permissions are enabled (false).
  """
  defaultPermissions: Boolean!

  """List of policies added to the CI job token scope."""
  jobTokenPolicies: [CiJobTokenScopePolicies!]!
}

"""Autogenerated return type of CiJobTokenScopeUpdatePolicies."""
type CiJobTokenScopeUpdatePoliciesPayload {
  """
  Allowlist entry for the CI job token's access scope. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlistEntry: CiJobTokenScopeAllowlistEntry @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type CiJobTrace {
  """
  HTML summary that contains the tail lines of the trace. Returns at most 16KB
  of raw bytes from the trace. The returned string might start with an
  unexpected invalid UTF-8 code point due to truncation. Introduced in GitLab
  15.11: **Status**: Experiment.
  """
  htmlSummary(
    """Number of tail lines to return, up to a maximum of 100 lines."""
    lastLines: Int = 10
  ): String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")
}

"""Autogenerated input type of CiLint"""
input CiLintInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the CI config."""
  projectPath: ID!

  """Contents of `.gitlab-ci.yml`."""
  content: String!

  """Ref to use when linting. Default is the project default branch."""
  ref: String

  """Run pipeline creation simulation, or only do static check."""
  dryRun: Boolean
}

"""Autogenerated return type of CiLint."""
type CiLintPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Linted CI config and metadata."""
  config: CiConfigV2

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""CI/CD variables given to a manual job."""
type CiManualVariable implements CiVariable {
  """
  Scope defining the environments that can use the variable. Deprecated in
  GitLab 15.3: No longer used, only available for GroupVariableType and
  ProjectVariableType.
  """
  environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in GitLab 15.3.")

  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for CiManualVariable."""
type CiManualVariableConnection {
  """A list of edges."""
  edges: [CiManualVariableEdge]

  """A list of nodes."""
  nodes: [CiManualVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiManualVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiManualVariable
}

type CiMinutesNamespaceMonthlyUsage {
  """Total number of compute minutes used by all projects in the namespace."""
  minutes: Int

  """Month related to the usage data."""
  month: String

  """Month related to the usage data in ISO 8601 date format."""
  monthIso8601: ISO8601Date

  """
  Compute usage data for projects in the namespace. Deprecated in GitLab 19.1: Use `ciMinutesProjectMonthlyUsage`.
  """
  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
  ): CiMinutesProjectMonthlyUsageConnection @deprecated(reason: "Use `ciMinutesProjectMonthlyUsage`. Deprecated in GitLab 19.1.")

  """
  Total duration (in seconds) of shared runners use by the namespace for the month.
  """
  sharedRunnersDuration: Int
}

"""The connection type for CiMinutesNamespaceMonthlyUsage."""
type CiMinutesNamespaceMonthlyUsageConnection {
  """A list of edges."""
  edges: [CiMinutesNamespaceMonthlyUsageEdge]

  """A list of nodes."""
  nodes: [CiMinutesNamespaceMonthlyUsage]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiMinutesNamespaceMonthlyUsageEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiMinutesNamespaceMonthlyUsage
}

type CiMinutesProjectMonthlyUsage {
  """Number of compute minutes used by the project in the month."""
  minutes: Int

  """Project having the recorded usage."""
  project: Project

  """
  Total duration (in seconds) of shared runners use by the project for the month.
  """
  sharedRunnersDuration: Int
}

"""The connection type for CiMinutesProjectMonthlyUsage."""
type CiMinutesProjectMonthlyUsageConnection {
  """A list of edges."""
  edges: [CiMinutesProjectMonthlyUsageEdge]

  """A list of nodes."""
  nodes: [CiMinutesProjectMonthlyUsage]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiMinutesProjectMonthlyUsageEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiMinutesProjectMonthlyUsage
}

"""Information about an asynchronous pipeline creation request"""
type CiPipelineCreationRequest {
  """Error message if pipeline creation failed."""
  error: String

  """Pipeline object created by the request."""
  pipeline: Pipeline

  """ID of the created pipeline if creation was successful."""
  pipelineId: CiPipelineID

  """Current status of the pipeline creation."""
  status: CiPipelineCreationStatus!
}

"""The status of a pipeline creation"""
enum CiPipelineCreationStatus {
  """The pipeline creation is failed"""
  FAILED

  """The pipeline creation is in progress"""
  IN_PROGRESS

  """The pipeline creation is succeeded"""
  SUCCEEDED
}

"""
A `CiPipelineID` is a global ID. It is encoded as a string.

An example `CiPipelineID` is: `"gid://gitlab/Ci::Pipeline/1"`.
"""
scalar CiPipelineID

"""
A `CiPipelineScheduleID` is a global ID. It is encoded as a string.

An example `CiPipelineScheduleID` is: `"gid://gitlab/Ci::PipelineSchedule/1"`.
"""
scalar CiPipelineScheduleID

"""
A `CiPipelineScheduleVariableID` is a global ID. It is encoded as a string.

An example `CiPipelineScheduleVariableID` is: `"gid://gitlab/Ci::PipelineScheduleVariable/1"`.
"""
scalar CiPipelineScheduleVariableID

"""Ci Pipeline sources enum"""
enum CiPipelineSources {
  """Pipeline created by an unknown event"""
  UNKNOWN

  """Pipeline created by a push event"""
  PUSH

  """Pipeline created by a web event"""
  WEB

  """Pipeline created by a trigger event"""
  TRIGGER

  """Pipeline created by a schedule event"""
  SCHEDULE

  """Pipeline created by an API event"""
  API

  """Pipeline created by an external event"""
  EXTERNAL

  """Pipeline created by a pipeline event"""
  PIPELINE

  """Pipeline created by a chat event"""
  CHAT

  """Pipeline created by a webide event"""
  WEBIDE

  """Pipeline created by a merge request event"""
  MERGE_REQUEST_EVENT

  """Pipeline created by an external pull request event"""
  EXTERNAL_PULL_REQUEST_EVENT

  """Pipeline created by a parent pipeline event"""
  PARENT_PIPELINE

  """Pipeline created by an ondemand dast scan event"""
  ONDEMAND_DAST_SCAN

  """Pipeline created by an ondemand dast validation event"""
  ONDEMAND_DAST_VALIDATION

  """Pipeline created by a security orchestration policy event"""
  SECURITY_ORCHESTRATION_POLICY

  """Pipeline created by a container registry push event"""
  CONTAINER_REGISTRY_PUSH

  """Pipeline created by a duo workflow event"""
  DUO_WORKFLOW

  """Pipeline created by a pipeline execution policy schedule event"""
  PIPELINE_EXECUTION_POLICY_SCHEDULE

  """Pipeline created by a dependency management security update event"""
  DEPENDENCY_MANAGEMENT_SECURITY_UPDATE
}

"""
A `CiProcessableID` is a global ID. It is encoded as a string.

An example `CiProcessableID` is: `"gid://gitlab/Ci::Processable/1"`.
"""
scalar CiProcessableID

type CiProjectSubscription {
  """Author of the subscription."""
  author: UserCore

  """
  Downstream project of the subscription.When an upstream project's pipeline
  completes, a pipeline is triggered in the downstream project.
  """
  downstreamProject: CiSubscriptionsProjectDetails

  """Global ID of the subscription."""
  id: CiSubscriptionsProjectID

  """
  Upstream project of the subscription.When an upstream project's pipeline
  completes, a pipeline is triggered in the downstream project.
  """
  upstreamProject: CiSubscriptionsProjectDetails
}

"""The connection type for CiProjectSubscription."""
type CiProjectSubscriptionConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiProjectSubscriptionEdge]

  """A list of nodes."""
  nodes: [CiProjectSubscription]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiProjectSubscriptionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiProjectSubscription
}

"""CI/CD variables for a project."""
type CiProjectVariable implements CiVariable {
  """Description of the variable."""
  description: String

  """Scope defining the environments that can use the variable."""
  environmentScope: String

  """Indicates whether the variable is hidden."""
  hidden: Boolean

  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is masked."""
  masked: Boolean

  """Indicates whether the variable is protected."""
  protected: Boolean

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for CiProjectVariable."""
type CiProjectVariableConnection {
  """A list of edges."""
  edges: [CiProjectVariableEdge]

  """Maximum amount of project CI/CD variables."""
  limit: Int!

  """A list of nodes."""
  nodes: [CiProjectVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiProjectVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiProjectVariable
}

type CiRunner {
  """Access level of the runner."""
  accessLevel: CiRunnerAccessLevel!

  """
  Indicates the runner is allowed to receive jobs. Deprecated in GitLab 14.8:
  Use `paused`. This field is the inverse of `paused` and has no relationship to
  the runner's job execution status. For more details, see `jobExecutionStatus`.
  """
  active: Boolean! @deprecated(reason: "Use `paused`. This field is the inverse of `paused` and has no relationship to the runner's job execution status. For more details, see `jobExecutionStatus`. Deprecated in GitLab 14.8.")

  """Admin URL of the runner. Only available for administrators."""
  adminUrl: String

  """Timestamp of last contact from the runner."""
  contactedAt: Time

  """Timestamp of creation of the runner."""
  createdAt: Time

  """User that created the runner."""
  createdBy: UserCore

  """
  Type of runner registration. Introduced in GitLab 17.0: **Status**: Experiment.
  """
  creationMethod: CiRunnerCreationMethod @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Runner creation state. Used to determine if a runner has been registered and has contacted the GitLab instance.
  """
  creationState: CiRunnerCreationState

  """Description of the runner."""
  description: String

  """Admin form URL of the runner. Only available for administrators."""
  editAdminUrl: String

  """
  Ephemeral authentication token used for runner manager registration. Only
  available for the creator of the runner for a limited time during
  registration. Introduced in GitLab 15.9: **Status**: Experiment.
  """
  ephemeralAuthenticationToken: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """
  URL of the registration page of the runner manager. Only available for the
  creator of the runner for a limited time during registration. Introduced in
  GitLab 15.11: **Status**: Experiment.
  """
  ephemeralRegisterUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")

  """Groups the runner is associated with. For group runners only."""
  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
  ): GroupInterfaceConnection

  """ID of the runner."""
  id: CiRunnerID!

  """
  Number of jobs processed by the runner (limited to 1000, plus one to indicate that more items exist).
  `jobCount` is an optimized version of `jobs { count }`, and can be requested for multiple runners on the same request.
  """
  jobCount(
    """Filter jobs by status."""
    statuses: [CiJobStatus!]
  ): Int

  """Job execution status of the runner."""
  jobExecutionStatus: CiRunnerJobExecutionStatus

  """
  Jobs assigned to the runner. This field can only be resolved for one runner in any single request.
  """
  jobs(
    """Filter jobs by status."""
    statuses: [CiJobStatus!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobInterfaceConnection

  """Indicates the runner is locked."""
  locked: Boolean

  """Runner's maintenance notes."""
  maintenanceNote: String

  """GitLab Flavored Markdown rendering of `maintenance_note`"""
  maintenanceNoteHtml: String

  """Runner managers associated with the runner configuration."""
  managers(
    """Filter runner managers by system ID."""
    systemId: String

    """Filter runner managers by status."""
    status: CiRunnerStatus

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerManagerConnection

  """Maximum timeout (in seconds) for jobs processed by the runner."""
  maximumTimeout: Int

  """Project that owns the runner. For project runners only."""
  ownerProject: ProjectInterface

  """Indicates the runner is paused and not available to run jobs."""
  paused: Boolean!

  """
  Private projects' "compute cost factor" associated with the runner (GitLab.com only).
  """
  privateProjectsMinutesCostFactor: Float

  """
  Number of projects that the runner is associated with. The count includes
  projects that might not be visible to the current user.
  """
  projectCount: Int

  """Find projects the runner is associated with. For project runners only."""
  projects(
    """Return only projects that the current user is a member of."""
    membership: Boolean

    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """Include namespace in project search."""
    searchNamespaces: Boolean

    """Filter projects by topics."""
    topics: [String!]

    """Return only personal projects."""
    personal: Boolean

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example:
    `id_desc` or `name_asc`. Defaults to `id_desc`, or `similarity` if search used.
    """
    sort: String = null

    """Filter projects by their namespace's full path (group or user)."""
    namespacePath: ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Public projects' "compute cost factor" associated with the runner (GitLab.com only).
  """
  publicProjectsMinutesCostFactor: Float

  """
  URL of the temporary registration page of the runner. Only available before
  the runner is registered. Only available for administrators.
  """
  registerAdminUrl: String

  """Indicates the runner is able to run untagged jobs."""
  runUntagged: Boolean!

  """Type of the runner."""
  runnerType: CiRunnerType!

  """
  First eight characters of the runner's token used to authenticate new job requests. Used as the runner's unique ID.
  """
  shortSha: String

  """Status of the runner."""
  status: CiRunnerStatus!

  """Tags associated with the runner."""
  tagList: [String!]

  """Runner token expiration time."""
  tokenExpiresAt: Time

  """
  Deadline after which token rotation is rejected. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  tokenRotationDeadline: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Availability of upgrades for the runner."""
  upgradeStatus: CiRunnerUpgradeStatus

  """Permissions for the current user on the resource"""
  userPermissions: RunnerPermissions!
}

enum CiRunnerAccessLevel {
  """A runner that is not protected."""
  NOT_PROTECTED

  """A runner that is ref protected."""
  REF_PROTECTED
}

"""Runner cloud provider."""
enum CiRunnerCloudProvider {
  """Google Cloud."""
  GOOGLE_CLOUD

  """Google Kubernetes Engine."""
  GKE
}

"""Information used in runner cloud provisioning."""
union CiRunnerCloudProvisioning = CiRunnerGkeProvisioning | CiRunnerGoogleCloudProvisioning

"""Step used to provision the runner to Google Cloud."""
type CiRunnerCloudProvisioningStep {
  """Instructions to provision the runner."""
  instructions: String

  """
  Identifier of the language used for the instructions field. This identifier
  can be any of the identifiers specified in the [list of supported languages and lexers](https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers).
  """
  languageIdentifier: String

  """Title of the step."""
  title: String
}

"""The connection type for CiRunner."""
type CiRunnerConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiRunnerEdge]

  """
  Jobs statistics for jobs executed by a collection of runners. Available only to admins.
  
  """
  jobsStatistics: CiJobsStatistics

  """A list of nodes."""
  nodes: [CiRunner]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

enum CiRunnerCreationMethod {
  """Applies to a runner that was created by a runner registration token."""
  REGISTRATION_TOKEN

  """Applies to a runner that was created by an authenticated user."""
  AUTHENTICATED_USER
}

enum CiRunnerCreationState {
  """
  Applies to a runner that has been created, but is not yet registered and running.
  """
  STARTED

  """
  Applies to a runner that has been registered and has polled for CI/CD jobs at least once.
  """
  FINISHED
}

"""An edge in a connection."""
type CiRunnerEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """
  Web URL of the runner edit page. The value depends on where you put the field
  in the query. You can use it for projects or groups.
  """
  editUrl: String

  """The item at the end of the edge."""
  node: CiRunner

  """
  Web URL of the runner. The value depends on where you put the field in the query. You can use it for projects or groups.
  """
  webUrl: String
}

"""Information used for GKE runner provisioning."""
type CiRunnerGkeProvisioning {
  """Instructions for setting up a Google Cloud project."""
  projectSetupShellScript: String

  """Steps used to provision a runner in GKE."""
  provisioningSteps(
    """Configuration for the node pools of the runner."""
    nodePools: [GoogleCloudNodePool!] = []

    """Name of the region to provision the runner in."""
    region: GoogleCloudRegion!

    """Authentication token of the runner."""
    runnerToken: String!

    """Name of the zone to provision the runner in."""
    zone: GoogleCloudZone!
  ): [CiRunnerGkeProvisioningStep!]
}

"""Step used to provision the runner to GKE."""
type CiRunnerGkeProvisioningStep {
  """Instructions to provision the runner."""
  instructions: String

  """
  Identifier of the language used for the instructions field. This identifier
  can be any of the identifiers specified in the [list of supported languages and lexers](https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers).
  """
  languageIdentifier: String

  """Title of the step."""
  title: String
}

"""Information used for runner Google Cloud provisioning."""
type CiRunnerGoogleCloudProvisioning {
  """Instructions for setting up a Google Cloud project."""
  projectSetupShellScript: String

  """Steps used to provision a runner in the cloud."""
  provisioningSteps(
    """Name of the machine type to use for running jobs."""
    ephemeralMachineType: GoogleCloudMachineType!

    """Name of the region to provision the runner in."""
    region: GoogleCloudRegion!

    """Authentication token of the runner."""
    runnerToken: String = null

    """Name of the zone to provision the runner in."""
    zone: GoogleCloudZone!
  ): [CiRunnerCloudProvisioningStep!]
}

"""
A `CiRunnerID` is a global ID. It is encoded as a string.

An example `CiRunnerID` is: `"gid://gitlab/Ci::Runner/1"`.
"""
scalar CiRunnerID

enum CiRunnerJobExecutionStatus {
  """Runner is idle."""
  IDLE

  """Runner is busy."""
  ACTIVE
}

type CiRunnerManager {
  """Architecture provided by the runner manager."""
  architectureName: String

  """Timestamp of last contact from the runner manager."""
  contactedAt: Time

  """Timestamp of creation of the runner manager."""
  createdAt: Time

  """Executor last advertised by the runner."""
  executorName: String

  """ID of the runner manager."""
  id: CiRunnerManagerID!

  """IP address of the runner manager."""
  ipAddress: String

  """Job execution status of the runner manager."""
  jobExecutionStatus: CiRunnerJobExecutionStatus

  """Platform provided by the runner manager."""
  platformName: String

  """Revision of the runner."""
  revision: String

  """Runner configuration for the runner manager."""
  runner: CiRunner

  """Status of the runner manager."""
  status: CiRunnerStatus!

  """System ID associated with the runner manager."""
  systemId: String!

  """Availability of upgrades for the runner manager."""
  upgradeStatus: CiRunnerUpgradeStatus

  """Version of the runner."""
  version: String
}

"""The connection type for CiRunnerManager."""
type CiRunnerManagerConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiRunnerManagerEdge]

  """A list of nodes."""
  nodes: [CiRunnerManager]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiRunnerManagerEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiRunnerManager
}

"""
A `CiRunnerManagerID` is a global ID. It is encoded as a string.

An example `CiRunnerManagerID` is: `"gid://gitlab/Ci::RunnerManager/1"`.
"""
scalar CiRunnerManagerID

"""Values for filtering runners in namespaces."""
enum CiRunnerMembershipFilter {
  """Include runners that have a direct relationship."""
  DIRECT

  """
  Include runners that have either a direct or inherited relationship. These
  runners can be specific to a project or a group.
  """
  DESCENDANTS

  """
  Include all runners. This list includes runners for all projects in the group
  and subgroups, as well as for the parent groups and instance. Introduced in
  GitLab 15.5: **Status**: Experiment.
  """
  ALL_AVAILABLE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.5.")
}

"""Values for sorting runners"""
enum CiRunnerSort {
  """Ordered by contacted_at in ascending order."""
  CONTACTED_ASC

  """Ordered by contacted_at in descending order."""
  CONTACTED_DESC

  """Ordered by created_at in ascending order."""
  CREATED_ASC

  """Ordered by created_at in descending order."""
  CREATED_DESC

  """Ordered by token_expires_at in ascending order."""
  TOKEN_EXPIRES_AT_ASC

  """Ordered by token_expires_at in descending order."""
  TOKEN_EXPIRES_AT_DESC

  """
  Ordered by number of running jobs in descending order (only available on
  Ultimate plans). Introduced in GitLab 16.2: **Status**: Experiment.
  """
  MOST_ACTIVE_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.2.")
}

enum CiRunnerStatus {
  """Runner that contacted this instance within the last 2 hours."""
  ONLINE

  """
  Runner that has not contacted this instance within the last 2 hours. Will be
  considered `STALE` if offline for more than 7 days.
  """
  OFFLINE

  """Runner that has not contacted this instance within the last 7 days."""
  STALE

  """Runner that has never contacted the instance."""
  NEVER_CONTACTED
}

enum CiRunnerType {
  """A runner that is instance type."""
  INSTANCE_TYPE

  """A runner that is group type."""
  GROUP_TYPE

  """A runner that is project type."""
  PROJECT_TYPE
}

enum CiRunnerUpgradeStatus {
  """Runner version is not valid."""
  INVALID

  """Upgrade is not available for the runner."""
  NOT_AVAILABLE

  """Upgrade is available for the runner."""
  AVAILABLE

  """Upgrade is available and recommended for the runner."""
  RECOMMENDED
}

"""Runner usage in minutes."""
type CiRunnerUsage {
  """
  Amount of builds executed during the selected period. Encoded as a string.
  """
  ciBuildCount: BigInt!

  """
  Number of minutes spent to process jobs during the selected period. Encoded as a string.
  """
  ciDuration: BigInt!

  """
  Amount of minutes used during the selected period. Encoded as a string. Deprecated in GitLab 17.5: Use `ciDuration`.
  """
  ciMinutesUsed: BigInt! @deprecated(reason: "Use `ciDuration`. Deprecated in GitLab 17.5.")

  """Runner that the usage refers to. Null means "Other runners"."""
  runner: CiRunner
}

"""Runner usage in minutes by project."""
type CiRunnerUsageByProject {
  """
  Amount of builds executed during the selected period. Encoded as a string.
  """
  ciBuildCount: BigInt!

  """
  Number of minutes spent to process jobs during the selected period. Encoded as a string.
  """
  ciDuration: BigInt!

  """
  Amount of minutes used during the selected period. Encoded as a string. Deprecated in GitLab 17.5: Use `ciDuration`.
  """
  ciMinutesUsed: BigInt! @deprecated(reason: "Use `ciDuration`. Deprecated in GitLab 17.5.")

  """Project that the usage refers to. Null means "Other projects"."""
  project: Project
}

"""
Represents the Geo replication and verification state of a ci_secure_file.
"""
type CiSecureFileRegistry {
  """
  Indicate if the checksums of the CiSecureFileRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """ID of the Ci Secure File."""
  ciSecureFileId: ID!

  """Timestamp when the CiSecureFileRegistry was created"""
  createdAt: Time

  """Path to the data management view for this CiSecureFileRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the CiSecureFileRegistry"""
  id: ID!

  """Error message during sync of the CiSecureFileRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the CiSecureFileRegistry
  """
  lastSyncedAt: Time

  """Indicate if the CiSecureFileRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the CiSecureFileRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the CiSecureFileRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the CiSecureFileRegistry"""
  retryCount: Int

  """Sync state of the CiSecureFileRegistry"""
  state: RegistryState

  """The local checksum of the CiSecureFileRegistry"""
  verificationChecksum: String

  """The expected checksum of the CiSecureFileRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the CiSecureFileRegistry"""
  verificationFailure: String

  """Timestamp after which the CiSecureFileRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the CiSecureFileRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of CiSecureFileRegistry started"""
  verificationStartedAt: Time

  """Verification state of the CiSecureFileRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the CiSecureFileRegistry
  """
  verifiedAt: Time
}

"""The connection type for CiSecureFileRegistry."""
type CiSecureFileRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [CiSecureFileRegistryEdge]

  """A list of nodes."""
  nodes: [CiSecureFileRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CiSecureFileRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiSecureFileRegistry
}

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

  """ID of the stage."""
  id: ID!

  """Jobs for the stage."""
  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 stage."""
  name: String

  """Status of the pipeline stage."""
  status: 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
}

"""
A `CiStageID` is a global ID. It is encoded as a string.

An example `CiStageID` is: `"gid://gitlab/Ci::Stage/1"`.
"""
scalar CiStageID

type CiSubscriptionsProject {
  """Author of the subscription."""
  author: UserCore

  """Downstream project of the subscription."""
  downstreamProject: Project

  """Global ID of the subscription."""
  id: CiSubscriptionsProjectID

  """Upstream project of the subscription."""
  upstreamProject: Project
}

"""The connection type for CiSubscriptionsProject."""
type CiSubscriptionsProjectConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CiSubscriptionsProjectEdge]

  """A list of nodes."""
  nodes: [CiSubscriptionsProject]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

type CiSubscriptionsProjectDetails {
  """ID of the project."""
  id: ID!

  """Full path of the project."""
  name: ID!

  """Namespace of the project."""
  namespace: CiSubscriptionsProjectNamespaceDetails!

  """Web URL of the project."""
  webUrl: String
}

"""An edge in a connection."""
type CiSubscriptionsProjectEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CiSubscriptionsProject
}

"""
A `CiSubscriptionsProjectID` is a global ID. It is encoded as a string.

An example `CiSubscriptionsProjectID` is: `"gid://gitlab/Ci::Subscriptions::Project/1"`.
"""
scalar CiSubscriptionsProjectID

type CiSubscriptionsProjectNamespaceDetails {
  """ID of the project."""
  id: ID!

  """Full path of the project."""
  name: ID!
}

"""GitLab CI/CD configuration template."""
type CiTemplate {
  """Contents of the CI template."""
  content: String!

  """Name of the CI template."""
  name: String!
}

"""
A `CiTriggerID` is a global ID. It is encoded as a string.

An example `CiTriggerID` is: `"gid://gitlab/Ci::Trigger/1"`.
"""
scalar CiTriggerID

interface CiVariable {
  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""Attributes for defining a CI/CD variable."""
input CiVariableInput {
  """Name of the variable."""
  key: String!

  """Value of the variable."""
  value: String!

  """Type of variable."""
  variableType: CiVariableType
}

"""Values for sorting variables"""
enum CiVariableSort {
  """Sorted by key in ascending order."""
  KEY_ASC

  """Sorted by key in descending order."""
  KEY_DESC
}

enum CiVariableType {
  """Env var type."""
  ENV_VAR

  """File type."""
  FILE
}

"""Represents the metrics of the last run virtual registry cleanup policy"""
type CleanupPolicyLastRunDetailedMetrics {
  """
  Last run detail metrics of container. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  container: CleanupPolicyLastRunUpstreamMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Last run detail metrics of maven. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  maven: CleanupPolicyLastRunUpstreamMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

"""
Represents the metrics of the last run virtual registry cleanup policy of an upstream
"""
type CleanupPolicyLastRunUpstreamMetrics {
  """
  Number of entries deleted. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  deletedEntriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Size in bytes of data deleted. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  deletedSize: BigInt! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

type CloudConnectorProbeResult {
  """Additional details about the probe result."""
  details: JSON

  """Full list of errors about the probe result."""
  errors: [String!]

  """Additional message or details about the probe result."""
  message: String

  """Name of the probe."""
  name: String

  """Indicates if the probe was successful."""
  success: Boolean
}

type CloudConnectorStatus {
  """Results of individual probes run during verification."""
  probeResults: [CloudConnectorProbeResult!]

  """Indicates if the setup verification was successful."""
  success: Boolean
}

type ClusterAgent {
  """Recent activity for the cluster agent."""
  activityEvents(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ClusterAgentActivityEventConnection

  """Active connections for the cluster agent"""
  connections(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ConnectedAgentConnection

  """Timestamp the cluster agent was created."""
  createdAt: Time

  """
  User object, containing information about the person who created the agent.
  """
  createdByUser: UserCore

  """ID of the cluster agent."""
  id: ID!

  """Whether the cluster agent is receptive or not."""
  isReceptive: Boolean

  """Name of the cluster agent."""
  name: String

  """Project the 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

  """
  URL configurations for the cluster agent in case it is a receptive agent.
  """
  urlConfigurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ClusterAgentUrlConfigurationConnection

  """User access config for the cluster agent."""
  userAccessAuthorizations: ClusterAgentAuthorizationUserAccess

  """Container images reported on the agent vulnerabilities."""
  vulnerabilityImages(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityContainerImageConnection

  """Web path of the cluster agent."""
  webPath: String

  """Workspaces associated with the agent."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection

  """
  Workspaces agent config for the cluster agent. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  workspacesAgentConfig: WorkspacesAgentConfig @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
}

type ClusterAgentActivityEvent {
  """Agent token associated with the event."""
  agentToken: ClusterAgentToken

  """Type of event."""
  kind: String

  """Severity of the event."""
  level: String

  """Timestamp the event was recorded."""
  recordedAt: Time

  """User associated with the event."""
  user: UserCore
}

"""The connection type for ClusterAgentActivityEvent."""
type ClusterAgentActivityEventConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ClusterAgentActivityEventEdge]

  """A list of nodes."""
  nodes: [ClusterAgentActivityEvent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ClusterAgentActivityEventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ClusterAgentActivityEvent
}

type ClusterAgentAuthorizationCiAccess {
  """Authorized cluster agent."""
  agent: ClusterAgent

  """Configuration for the authorized project."""
  config: JSON
}

"""The connection type for ClusterAgentAuthorizationCiAccess."""
type ClusterAgentAuthorizationCiAccessConnection {
  """A list of edges."""
  edges: [ClusterAgentAuthorizationCiAccessEdge]

  """A list of nodes."""
  nodes: [ClusterAgentAuthorizationCiAccess]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ClusterAgentAuthorizationCiAccessEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ClusterAgentAuthorizationCiAccess
}

type ClusterAgentAuthorizationUserAccess {
  """Authorized cluster agent."""
  agent: ClusterAgent

  """Configuration for the authorized project."""
  config: JSON
}

"""The connection type for ClusterAgentAuthorizationUserAccess."""
type ClusterAgentAuthorizationUserAccessConnection {
  """A list of edges."""
  edges: [ClusterAgentAuthorizationUserAccessEdge]

  """A list of nodes."""
  nodes: [ClusterAgentAuthorizationUserAccess]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ClusterAgentAuthorizationUserAccessEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ClusterAgentAuthorizationUserAccess
}

"""The connection type for ClusterAgent."""
type ClusterAgentConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """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 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 the token is associated with."""
  clusterAgent: ClusterAgent

  """Timestamp the token was created."""
  createdAt: Time

  """User who created the token."""
  createdByUser: UserCore

  """Description of the token."""
  description: String

  """Global ID of the token."""
  id: ClustersAgentTokenID!

  """Timestamp the token was last used."""
  lastUsedAt: Time

  """Name given to the token."""
  name: String

  """Current status of the token."""
  status: AgentTokenStatus
}

"""The connection type for ClusterAgentToken."""
type ClusterAgentTokenConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """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!

  """Description of the token."""
  description: String

  """Name of the token."""
  name: String!
}

"""Autogenerated return type of ClusterAgentTokenCreate."""
type ClusterAgentTokenCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during 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
}

"""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
}

"""Autogenerated input type of ClusterAgentTokenRevoke"""
input ClusterAgentTokenRevokeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the agent token that will be revoked."""
  id: ClustersAgentTokenID!
}

"""Autogenerated return type of ClusterAgentTokenRevoke."""
type ClusterAgentTokenRevokePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type ClusterAgentUrlConfiguration {
  """
  CA certificate of the URL configuration. It is used to verify the agent endpoint.
  """
  caCert: String

  """Client certificate if JWT authentication is used."""
  clientCert: String

  """Cluster agent of the URL configuration."""
  clusterAgent: ClusterAgent

  """Global ID of the URL configuration."""
  id: ClustersAgentsUrlConfigurationID!

  """Public key if JWT authentication is used."""
  publicKey: String

  """
  TLS host of the URL configuration. It is used to verify the server name in the agent endpoint certificate.
  """
  tlsHost: String

  """URL of the URL configuration."""
  url: String
}

"""The connection type for ClusterAgentUrlConfiguration."""
type ClusterAgentUrlConfigurationConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ClusterAgentUrlConfigurationEdge]

  """A list of nodes."""
  nodes: [ClusterAgentUrlConfiguration]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ClusterAgentUrlConfigurationCreate"""
input ClusterAgentUrlConfigurationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the cluster agent that will be associated with the new URL configuration.
  """
  clusterAgentId: ClustersAgentID!

  """URL for the new URL configuration."""
  url: String!

  """
  Base64-encoded client certificate in PEM format if mTLS authentication should be used. Must be provided with `client_key`.
  """
  clientCert: String

  """
  Base64-encoded client key in PEM format if mTLS authentication should be used. Must be provided with `client_cert`.
  """
  clientKey: String

  """
  Base64-encoded CA certificate in PEM format to verify the agent endpoint.
  """
  caCert: String

  """TLS host name to verify the server name in agent endpoint certificate."""
  tlsHost: String
}

"""Autogenerated return type of ClusterAgentUrlConfigurationCreate."""
type ClusterAgentUrlConfigurationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """URL configuration created after mutation."""
  urlConfiguration: ClusterAgentUrlConfiguration
}

"""Autogenerated input type of ClusterAgentUrlConfigurationDelete"""
input ClusterAgentUrlConfigurationDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the agent URL configuration that will be deleted."""
  id: ClustersAgentsUrlConfigurationID!
}

"""Autogenerated return type of ClusterAgentUrlConfigurationDelete."""
type ClusterAgentUrlConfigurationDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type ClusterAgentUrlConfigurationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ClusterAgentUrlConfiguration
}

"""
A `ClustersAgentID` is a global ID. It is encoded as a string.

An example `ClustersAgentID` is: `"gid://gitlab/Clusters::Agent/1"`.
"""
scalar ClustersAgentID

"""
A `ClustersAgentsUrlConfigurationID` is a global ID. It is encoded as a string.

An example `ClustersAgentsUrlConfigurationID` is: `"gid://gitlab/Clusters::Agents::UrlConfiguration/1"`.
"""
scalar ClustersAgentsUrlConfigurationID

"""
A `ClustersAgentTokenID` is a global ID. It is encoded as a string.

An example `ClustersAgentTokenID` is: `"gid://gitlab/Clusters::AgentToken/1"`.
"""
scalar ClustersAgentTokenID

"""
A `ClustersClusterID` is a global ID. It is encoded as a string.

An example `ClustersClusterID` is: `"gid://gitlab/Clusters::Cluster/1"`.
"""
scalar ClustersClusterID

"""Represents the code coverage activity for a group"""
type CodeCoverageActivity {
  """
  Average percentage of the different code coverage results available for the group.
  """
  averageCoverage: Float

  """Number of different code coverage results available for the group."""
  coverageCount: Int

  """Date when the code coverage was created."""
  date: Date!

  """Number of projects with code coverage results for the group."""
  projectCount: Int
}

"""The connection type for CodeCoverageActivity."""
type CodeCoverageActivityConnection {
  """A list of edges."""
  edges: [CodeCoverageActivityEdge]

  """A list of nodes."""
  nodes: [CodeCoverageActivity]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CodeCoverageActivityEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CodeCoverageActivity
}

"""Represents the code coverage summary for a project"""
type CodeCoverageSummary {
  """
  Average percentage of the different code coverage results available for the project.
  """
  averageCoverage: Float

  """Number of different code coverage results available."""
  coverageCount: Int

  """Latest date when the code coverage was created for the project."""
  lastUpdatedOn: Date
}

"""The code flow node type"""
enum CodeFlowNodeType {
  """Source node."""
  SOURCE

  """Propagation node."""
  PROPAGATION

  """Sink node."""
  SINK
}

"""Represents a code quality degradation on the pipeline."""
type CodeQualityDegradation {
  """Description of the code quality degradation."""
  description: String!

  """Code Quality plugin that reported the finding."""
  engineName: String!

  """
  Unique fingerprint to identify the code quality degradation. For example, an MD5 hash.
  """
  fingerprint: String!

  """Line on which the code quality degradation occurred."""
  line: Int!

  """Relative path to the file containing the code quality degradation."""
  path: String!

  """
  Status of the degradation (BLOCKER, CRITICAL, MAJOR, MINOR, INFO, UNKNOWN).
  """
  severity: CodeQualityDegradationSeverity!

  """URL to the file along with line number."""
  webUrl: String
}

"""The connection type for CodeQualityDegradation."""
type CodeQualityDegradationConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CodeQualityDegradationEdge]

  """A list of nodes."""
  nodes: [CodeQualityDegradation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CodeQualityDegradationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CodeQualityDegradation
}

enum CodeQualityDegradationSeverity {
  """Code Quality degradation has a status of blocker."""
  BLOCKER

  """Code Quality degradation has a status of critical."""
  CRITICAL

  """Code Quality degradation has a status of major."""
  MAJOR

  """Code Quality degradation has a status of minor."""
  MINOR

  """Code Quality degradation has a status of info."""
  INFO

  """Code Quality degradation has a status of unknown."""
  UNKNOWN
}

"""Represents reports comparison for code quality."""
type CodequalityReportsComparer {
  """Compared codequality report."""
  report: CodequalityReportsComparerReport

  """Compared codequality report generation status."""
  status: CodequalityReportsComparerReportGenerationStatus
}

"""Represents compared code quality report."""
type CodequalityReportsComparerReport {
  """All code quality degradations."""
  existingErrors: [CodequalityReportsComparerReportDegradation!]

  """New code quality degradations."""
  newErrors: [CodequalityReportsComparerReportDegradation!]!

  """Resolved code quality degradations."""
  resolvedErrors: [CodequalityReportsComparerReportDegradation!]

  """Status of report."""
  status: CodequalityReportsComparerStatus!

  """Codequality report summary."""
  summary: CodequalityReportsComparerReportSummary!
}

"""Represents a degradation on the compared codequality report."""
type CodequalityReportsComparerReportDegradation {
  """Description of the code quality degradation."""
  description: String!

  """Code quality plugin that reported the degradation."""
  engineName: String

  """Relative path to the file containing the code quality degradation."""
  filePath: String!

  """
  Unique fingerprint to identify the code quality degradation. For example, an MD5 hash.
  """
  fingerprint: String!

  """Line on which the code quality degradation occurred."""
  line: Int!

  """
  Severity of the code quality degradation (BLOCKER, CRITICAL, MAJOR, MINOR, INFO, UNKNOWN).
  """
  severity: CodeQualityDegradationSeverity!

  """URL to the file along with line number."""
  webUrl: String
}

"""Represents the generation status of the compared codequality report."""
enum CodequalityReportsComparerReportGenerationStatus {
  """Report was generated."""
  PARSED

  """Report is being generated."""
  PARSING

  """An error happened while generating the report."""
  ERROR
}

"""Represents a summary of the compared codequality report."""
type CodequalityReportsComparerReportSummary {
  """Count of code quality errors."""
  errored: Int

  """Count of resolved code quality degradations."""
  resolved: Int

  """Total count of code quality degradations."""
  total: Int
}

"""Represents the state of the code quality report."""
enum CodequalityReportsComparerStatus {
  """No degradations found in the head pipeline report."""
  SUCCESS

  """Report generated and there are new code quality degradations."""
  FAILED

  """Head report or base report not found."""
  NOT_FOUND
}

"""Code Quality report for a pipeline"""
type CodeQualityReportSummary {
  """Total number of blocker status."""
  blocker: Int

  """Total number of Code Quality reports."""
  count: Int

  """Total number of critical status."""
  critical: Int

  """Total number of info status."""
  info: Int

  """Total number of major status."""
  major: Int

  """Total number of minor status."""
  minor: Int

  """Total number of unknown status."""
  unknown: Int
}

"""Requires ClickHouse. Premium and Ultimate only."""
type codeReviewMetrics {
  """Total count of `encounter_duo_code_review_error_during_review` event."""
  encounterDuoCodeReviewErrorDuringReviewEventCount: Int

  """Total count of `excluded_files_from_duo_code_review` event."""
  excludedFilesFromDuoCodeReviewEventCount: Int

  """Total count of `find_no_issues_duo_code_review_after_review` event."""
  findNoIssuesDuoCodeReviewAfterReviewEventCount: Int

  """Total count of `find_nothing_to_review_duo_code_review_on_mr` event."""
  findNothingToReviewDuoCodeReviewOnMrEventCount: Int

  """Total count of `post_comment_duo_code_review_on_diff` event."""
  postCommentDuoCodeReviewOnDiffEventCount: Int

  """Total count of `react_thumbs_down_on_duo_code_review_comment` event."""
  reactThumbsDownOnDuoCodeReviewCommentEventCount: Int

  """Total count of `react_thumbs_up_on_duo_code_review_comment` event."""
  reactThumbsUpOnDuoCodeReviewCommentEventCount: Int

  """Total count of `request_review_duo_code_review_on_mr_by_author` event."""
  requestReviewDuoCodeReviewOnMrByAuthorEventCount: Int

  """
  Total count of `request_review_duo_code_review_on_mr_by_non_author` event.
  """
  requestReviewDuoCodeReviewOnMrByNonAuthorEventCount: Int
}

"""
Code Review user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type codeReviewUserMetrics {
  """Total count of `encounter_duo_code_review_error_during_review` event."""
  encounterDuoCodeReviewErrorDuringReviewEventCount: Int

  """Total count of `excluded_files_from_duo_code_review` event."""
  excludedFilesFromDuoCodeReviewEventCount: Int

  """Total count of `find_no_issues_duo_code_review_after_review` event."""
  findNoIssuesDuoCodeReviewAfterReviewEventCount: Int

  """Total count of `find_nothing_to_review_duo_code_review_on_mr` event."""
  findNothingToReviewDuoCodeReviewOnMrEventCount: Int

  """Date of the last Code Review activity for the user."""
  lastDuoActivityOn: Date

  """Total count of `post_comment_duo_code_review_on_diff` event."""
  postCommentDuoCodeReviewOnDiffEventCount: Int

  """Total count of `react_thumbs_down_on_duo_code_review_comment` event."""
  reactThumbsDownOnDuoCodeReviewCommentEventCount: Int

  """Total count of `react_thumbs_up_on_duo_code_review_comment` event."""
  reactThumbsUpOnDuoCodeReviewCommentEventCount: Int

  """Total count of `request_review_duo_code_review_on_mr_by_author` event."""
  requestReviewDuoCodeReviewOnMrByAuthorEventCount: Int

  """
  Total count of `request_review_duo_code_review_on_mr_by_non_author` event.
  """
  requestReviewDuoCodeReviewOnMrByNonAuthorEventCount: Int

  """Total count of all Code Review events for the user."""
  totalEventCount: Int
}

type CodeSuggestionEvent {
  """Type of the event."""
  event: AiUsageEventType!

  """Programming language in the context of the suggestion."""
  language: String

  """Size of the code suggestion measured in lines of code."""
  suggestionSize: String

  """When the event happened."""
  timestamp: Time!

  """Unique tracking number of sequence of events for one suggestion."""
  uniqueTrackingId: String

  """User associated with the event."""
  user: UserCore!
}

"""The connection type for CodeSuggestionEvent."""
type CodeSuggestionEventConnection {
  """A list of edges."""
  edges: [CodeSuggestionEventEdge]

  """A list of nodes."""
  nodes: [CodeSuggestionEvent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CodeSuggestionEventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CodeSuggestionEvent
}

"""Requires ClickHouse. Premium and Ultimate only."""
type codeSuggestionMetrics {
  """Total count of code suggestions accepted."""
  acceptedCount: Int

  """Sum of lines of code from code suggestions accepted."""
  acceptedLinesOfCode: Int

  """
  Number of code contributors who used GitLab Duo Code Suggestions features.
  """
  contributorsCount: Int

  """List of IDE names with at least one suggestion shown or accepted."""
  ideNames: [String!]

  """List of languages with at least one suggestion shown or accepted."""
  languages: [String!]

  """Total count of code suggestions shown."""
  shownCount: Int

  """Sum of lines of code from code suggestions shown."""
  shownLinesOfCode: Int
}

"""
AI-related metrics with three months of data retention.
Premium and Ultimate only.

"""
type codeSuggestionMetricsBasic {
  """Total count of code suggestions accepted."""
  acceptedCount: Int

  """Total count of code suggestions shown."""
  shownCount: Int
}

"""
Code Suggestions user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type codeSuggestionsUserMetrics {
  """Total count of `code_suggestion_accepted_in_ide` event."""
  codeSuggestionAcceptedInIdeEventCount: Int

  """Total count of `code_suggestion_direct_access_token_refresh` event."""
  codeSuggestionDirectAccessTokenRefreshEventCount: Int

  """Total count of `code_suggestion_rejected_in_ide` event."""
  codeSuggestionRejectedInIdeEventCount: Int

  """Total count of `code_suggestion_shown_in_ide` event."""
  codeSuggestionShownInIdeEventCount: Int

  """Total count of `code_suggestions_requested` event."""
  codeSuggestionsRequestedEventCount: Int

  """Date of the last Code Suggestions activity for the user."""
  lastDuoActivityOn: Date

  """Total count of all Code Suggestions events for the user."""
  totalEventCount: Int
}

"""
Color represented as a hex code or named color.

For example: `#fefefe`.

"""
scalar Color

type CommentTemplatePath {
  """Path of the comment template."""
  href: String!

  """Text used on the template path."""
  text: String!
}

type CommentTemplatePathType {
  """Management link to the comment template."""
  href: String!

  """Name of the comment template scope."""
  text: String!
}

type Commit implements NoteableInterface & Todoable {
  """Author of the commit."""
  author: UserCore

  """Commit author's email."""
  authorEmail: String

  """Commit authors gravatar."""
  authorGravatar: String

  """Commit authors name."""
  authorName: String

  """Timestamp of when the commit was authored."""
  authoredDate: Time

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Timestamp of when the commit was committed."""
  committedDate: Time

  """Email of the committer."""
  committerEmail: String

  """Name of the committer."""
  committerName: String

  """Description of the commit message."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """
  Diffs contained within the commit. This field can only be resolved for 10 diffs in any single request.
  """
  diffs: [Diff!]

  """All discussions on the 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!

  """Full title of the commit message."""
  fullTitle: String

  """HTML rendering of `full_title`"""
  fullTitleHtml: String

  """
  Indicates the commit was authored during a GitLab Duo Agent Platform flow.
  """
  hasAgentSession: Boolean!

  """ID (global ID) of the commit."""
  id: ID!

  """Raw commit message."""
  message: String

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """SHA ID of the first parent."""
  parentSha: String

  """Pipelines of the commit ordered latest first."""
  pipelines(
    """Filter pipelines by their status."""
    status: PipelineStatusEnum

    """Filter pipelines by scope."""
    scope: PipelineScopeEnum

    """Filter pipelines by the ref they are run for."""
    ref: String

    """Type of ref."""
    refType: RefType

    """Filter pipelines by the sha of the commit they are run for."""
    sha: String

    """Filter pipelines by their source."""
    source: String

    """Filter pipelines by their Global IDs. Maximum 20 IDs per request."""
    ids: [ID!]

    """Pipelines updated after the date."""
    updatedAfter: Time

    """Pipelines updated before the date."""
    updatedBefore: Time

    """Filter pipelines by the user that triggered the pipeline."""
    username: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineConnection

  """SHA1 ID of the commit."""
  sha: String!

  """Short SHA1 ID of the commit."""
  shortId: String!

  """Signature of the commit."""
  signature: CommitSignature

  """Rendered HTML of the commit signature."""
  signatureHtml: String

  """Tag names pointing to the commit."""
  tags: [String!]

  """Title of the commit message."""
  title: String

  """HTML rendering of `title`"""
  titleHtml: String

  """Web path of the commit."""
  webPath: String!

  """Web URL of the commit."""
  webUrl: String!
}

input CommitAction {
  """Action to perform: create, delete, move, update, or 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 {
  """Create command."""
  CREATE

  """Delete command."""
  DELETE

  """Move command."""
  MOVE

  """Update command."""
  UPDATE

  """Chmod command."""
  CHMOD
}

"""The connection type for Commit."""
type CommitConnection {
  """A list of edges."""
  edges: [CommitEdge]

  """A list of nodes."""
  nodes: [Commit]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of CommitCreate"""
input CommitCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project full path the branch is associated with."""
  projectPath: ID!

  """Name of the branch to commit into, it can be a new branch."""
  branch: String!

  """If on a new branch, name of the original branch."""
  startBranch: String

  """Raw commit message."""
  message: String!

  """Array of action hashes to commit as a batch."""
  actions: [CommitAction!] = []

  """Indicates whether an empty commit can be created. Defaults to `false`."""
  allowEmpty: Boolean = false
}

"""Autogenerated return type of CommitCreate."""
type CommitCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Commit after mutation."""
  commit: Commit

  """ETag path for the commit's pipeline."""
  commitPipelinePath: String

  """Contents of the commit."""
  content: [String!]

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type CommitData {
  """CSS class for age of commit."""
  ageMapClass: String!

  """Link to author avatar."""
  authorAvatar: String!

  """Link to the commit author."""
  commitAuthorLink: String!

  """Link to the commit."""
  commitLink: String!

  """Link to blame prior to the change."""
  projectBlameLink: String

  """Time of commit."""
  timeAgoTooltip: String!
}

"""An edge in a connection."""
type CommitEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Commit
}

enum CommitEncoding {
  """Text encoding."""
  TEXT

  """Base64 encoding."""
  BASE64
}

type CommitParentNames {
  """Names of the commit parent (branch or tag)."""
  names: [String!]
}

type CommitReferences {
  """Get branch names containing a given commit."""
  containingBranches(
    """
    Exclude tipping refs. WARNING: This argument can be confusing, if there is a limit.
              for example set the limit to 5 and in the 5 out a total of 25 refs there is 2 tipped refs,
              then the method will only 3 refs, even though there is more.
    """
    excludeTipped: Boolean! = false

    """Number of ref names to return."""
    limit: Int! = 100
  ): CommitParentNames

  """Get tag names containing a given commit."""
  containingTags(
    """
    Exclude tipping refs. WARNING: This argument can be confusing, if there is a limit.
              for example set the limit to 5 and in the 5 out a total of 25 refs there is 2 tipped refs,
              then the method will only 3 refs, even though there is more.
    """
    excludeTipped: Boolean! = false

    """Number of ref names to return."""
    limit: Int! = 100
  ): CommitParentNames

  """Get branch names tipping at a given commit."""
  tippingBranches(
    """Number of ref names to return."""
    limit: Int! = 100
  ): CommitParentNames

  """Get tag names tipping at a given commit."""
  tippingTags(
    """Number of ref names to return."""
    limit: Int! = 100
  ): CommitParentNames
}

"""Represents signing information for a commit"""
interface CommitSignature {
  """SHA of the associated commit."""
  commitSha: String

  """Project of the associated commit."""
  project: Project

  """Indicates verification status of the associated key or certificate."""
  verificationStatus: VerificationStatus
}

"""Comparable security report type"""
enum ComparableSecurityReportType {
  """SAST report"""
  SAST

  """Secret detection report"""
  SECRET_DETECTION

  """Container scanning report"""
  CONTAINER_SCANNING

  """Dependency scanning report"""
  DEPENDENCY_SCANNING

  """DAST report"""
  DAST

  """Coverage fuzzing report"""
  COVERAGE_FUZZING

  """API fuzzing report"""
  API_FUZZING

  """Sarif report"""
  SARIF
}

"""Represents compared security report."""
type ComparedSecurityReport {
  """
  New vulnerability findings. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  added: [ComparedSecurityReportFinding!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """Time of the base report creation."""
  baseReportCreatedAt: Time

  """Indicates whether the base report out of date."""
  baseReportOutOfDate: Boolean

  """
  Fixed vulnerability findings. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  fixed: [ComparedSecurityReportFinding!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """Time of the base report creation."""
  headReportCreatedAt: Time
}

"""Represents finding."""
type ComparedSecurityReportFinding {
  """
  Indicates whether the specific finding can be resolved with AI. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  aiResolutionEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  The severity that will be automatically applied after merge by a severity
  override policy. Returns `null` if no severity override policy matches.
  Introduced in GitLab 18.11: **Status**: Experiment.
  """
  autoSeverityOverride: VulnerabilitySeverity @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Description of the vulnerability finding."""
  description: String

  """
  Details of the vulnerability finding. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  details: [VulnerabilityDetail!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """IID of the pipeline."""
  foundByPipelineIid: String

  """
  Identifiers of the vulnerability finding. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  identifiers: [VulnerabilityIdentifier!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """
  Location of the vulnerability finding. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  location: VulnerabilityLocation @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """
  Indicates whether the finding matches an auto-dismiss policy. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  matchesAutoDismissPolicy: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Compared report vulnerability scanner."""
  scanner: ComparedSecurityReportScanner

  """Severity of the vulnerability finding."""
  severity: VulnerabilitySeverity

  """Finding status."""
  state: VulnerabilityState

  """Title of the vulnerability finding."""
  title: String

  """
  Indicates whether the finding was detected without an identified source (untrusted input).
  """
  unverified: Boolean!

  """
  UUIDv5 digest based on the vulnerability's report type, primary identifier, location, fingerprint, project identifier.
  """
  uuid: String
}

"""Represents a compared report vulnerability scanner"""
type ComparedSecurityReportScanner {
  """External ID of the vulnerability scanner."""
  externalId: String

  """Name of the vulnerability scanner."""
  name: String

  """Vendor of the vulnerability scanner."""
  vendor: String
}

"""Comparison operators for filtering"""
enum ComparisonOperator {
  """Less than or equal to (<=)."""
  LESS_THAN_OR_EQUAL_TO

  """Equal to (=)."""
  EQUAL_TO

  """Greater than or equal to (>=)."""
  GREATER_THAN_OR_EQUAL_TO
}

"""Represents a ComplianceFramework associated with a Project"""
type ComplianceFramework {
  """Approval Policies of the compliance framework."""
  approvalPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanResultPolicyConnection

  """Hexadecimal representation of compliance framework's label color."""
  color: String!

  """Compliance requirements of the compliance framework."""
  complianceRequirements(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceRequirementConnection

  """Default compliance framework for the group."""
  default: Boolean

  """Description of the compliance framework."""
  description: String!

  """Web UI path to edit the compliance framework."""
  editPath: String!

  """Compliance framework ID."""
  id: ID!

  """Name of the compliance framework."""
  name: String!

  """Namespace ID."""
  namespaceId: TypesNamespaceID!

  """
  Full path of the compliance pipeline configuration stored in a project
  repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa`.
  Ultimate only. Deprecated in GitLab 17.4: Use pipeline execution policies instead.
  """
  pipelineConfigurationFullPath: String @deprecated(reason: "Use pipeline execution policies instead. Deprecated in GitLab 17.4.")

  """Pipeline Execution Policies of the compliance framework."""
  pipelineExecutionPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionPolicyConnection

  """Pipeline Execution Schedule Policies of the compliance framework."""
  pipelineExecutionSchedulePolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionSchedulePolicyConnection

  """Projects associated with the compliance framework."""
  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

  """Scan Execution Policies of the compliance framework."""
  scanExecutionPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanExecutionPolicyConnection

  """
  Scan Result Policies of the compliance framework. Deprecated in GitLab 19.0: Use `approvalPolicies`.
  """
  scanResultPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanResultPolicyConnection @deprecated(reason: "Use `approvalPolicies`. Deprecated in GitLab 19.0.")

  """All security policies scoped to the compliance framework."""
  securityPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceFrameworkPolicySummaryConnection

  """Timestamp of when the compliance framework was last updated."""
  updatedAt: Time

  """Vulnerability Management Policies of the compliance framework."""
  vulnerabilityManagementPolicies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityManagementPolicyConnection
}

"""The connection type for ComplianceFramework."""
type ComplianceFrameworkConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ComplianceFrameworkEdge]

  """A list of nodes."""
  nodes: [ComplianceFramework]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Framework coverage details for a specific compliance framework."""
type ComplianceFrameworkCoverageDetail {
  """Number of projects covered by the framework."""
  coveredCount: Int!

  """Compliance framework associated with the coverage detail."""
  framework: ComplianceFramework!

  """ID of the framework."""
  id: ID!
}

"""The connection type for ComplianceFrameworkCoverageDetail."""
type ComplianceFrameworkCoverageDetailConnection {
  """A list of edges."""
  edges: [ComplianceFrameworkCoverageDetailEdge]

  """A list of nodes."""
  nodes: [ComplianceFrameworkCoverageDetail]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceFrameworkCoverageDetailEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceFrameworkCoverageDetail
}

"""Compliance framework Coverage summary for a group."""
type ComplianceFrameworkCoverageSummary {
  """Number of projects covered by at least one framework."""
  coveredCount: Int!

  """Total number of projects in the group."""
  totalProjects: Int!
}

"""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
}

input ComplianceFrameworkFilters {
  """ID of the compliance framework."""
  id: ComplianceManagementFrameworkID

  """IDs of the compliance framework."""
  ids: [ComplianceManagementFrameworkID!]

  """Negated compliance framework filter input."""
  not: NegatedComplianceFrameworkFilters

  """
  Checks presence of compliance framework of the project, "none" and "any" values are supported.
  """
  presenceFilter: ComplianceFrameworkPresenceFilter
}

input ComplianceFrameworkInput {
  """New name for the compliance framework."""
  name: String

  """New description for the compliance framework."""
  description: String

  """
  New color representation of the compliance framework in hex format. e.g. #FCA121.
  """
  color: String

  """Set the compliance framework as the default framework for the group."""
  default: Boolean

  """
  Full path of the compliance pipeline configuration stored in a project
  repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa`.
  Ultimate only. Deprecated in GitLab 17.4: Use pipeline execution policies instead.
  """
  pipelineConfigurationFullPath: String

  """Projects to add or remove from the compliance framework."""
  projects: ComplianceFrameworkProjectInput
}

"""A security policy scoped to a compliance framework"""
type ComplianceFrameworkPolicySummary {
  """Name of the security policy."""
  name: String!

  """Source of the security policy."""
  source: SecurityPolicySource

  """Type of the security policy."""
  type: String
}

"""The connection type for ComplianceFrameworkPolicySummary."""
type ComplianceFrameworkPolicySummaryConnection {
  """A list of edges."""
  edges: [ComplianceFrameworkPolicySummaryEdge]

  """A list of nodes."""
  nodes: [ComplianceFrameworkPolicySummary]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceFrameworkPolicySummaryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceFrameworkPolicySummary
}

"""ComplianceFramework of a project for filtering"""
enum ComplianceFrameworkPresenceFilter {
  """No compliance framework is assigned."""
  NONE

  """Any compliance framework is assigned."""
  ANY
}

input ComplianceFrameworkProjectInput {
  """IDs of the projects to add to the compliance framework."""
  addProjects: [Int!]!

  """IDs of the projects to remove from the compliance framework."""
  removeProjects: [Int!]!
}

"""Compliance framework requiring attention."""
type ComplianceFrameworksNeedingAttention {
  """Compliance framework needing attention."""
  framework: ComplianceFramework!

  """ID of the framework needing attention."""
  id: ID!

  """Number of projects with the framework applied."""
  projectsCount: Int!

  """Number of requirements in the framework."""
  requirementsCount: Int!

  """Requirements without controls."""
  requirementsWithoutControls: [ComplianceRequirement!]
}

"""The connection type for ComplianceFrameworksNeedingAttention."""
type ComplianceFrameworksNeedingAttentionConnection {
  """A list of edges."""
  edges: [ComplianceFrameworksNeedingAttentionEdge]

  """A list of nodes."""
  nodes: [ComplianceFrameworksNeedingAttention]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceFrameworksNeedingAttentionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceFrameworksNeedingAttention
}

"""Values for sorting compliance frameworks."""
enum ComplianceFrameworkSort {
  """Sort by compliance framework name, ascending order."""
  NAME_ASC

  """Sort by compliance framework name, descending order."""
  NAME_DESC

  """Sort by compliance framework updated date, ascending order."""
  UPDATED_AT_ASC

  """Sort by compliance framework updated date, descending order."""
  UPDATED_AT_DESC
}

"""
Represents a compliance framework template that can be used to create a compliance framework.
"""
type ComplianceFrameworkTemplate {
  """Hexadecimal representation of the template's label color."""
  color: String!

  """Description of the compliance framework template."""
  description: String!

  """Unique identifier of the template."""
  id: ID!

  """Full JSON representation of the compliance framework template."""
  json: String!

  """Name of the compliance framework template."""
  name: String!

  """Version of the template."""
  templateVersion: Int!
}

"""
A `ComplianceManagementComplianceFrameworkComplianceRequirementID` is a global ID. It is encoded as a string.

An example `ComplianceManagementComplianceFrameworkComplianceRequirementID` is: `"gid://gitlab/ComplianceManagement::ComplianceFramework::ComplianceRequirement/1"`.
"""
scalar ComplianceManagementComplianceFrameworkComplianceRequirementID

"""
A `ComplianceManagementComplianceFrameworkComplianceRequirementsControlID` is a global ID. It is encoded as a string.

An example `ComplianceManagementComplianceFrameworkComplianceRequirementsControlID` is: `"gid://gitlab/ComplianceManagement::ComplianceFramework::ComplianceRequirementsControl/1"`.
"""
scalar ComplianceManagementComplianceFrameworkComplianceRequirementsControlID

"""
A `ComplianceManagementFrameworkID` is a global ID. It is encoded as a string.

An example `ComplianceManagementFrameworkID` is: `"gid://gitlab/ComplianceManagement::Framework/1"`.
"""
scalar ComplianceManagementFrameworkID

"""
A `ComplianceManagementFrameworksTemplateRegistryTemplateID` is a global ID. It is encoded as a string.

An example `ComplianceManagementFrameworksTemplateRegistryTemplateID` is:
`"gid://gitlab/ComplianceManagement::Frameworks::TemplateRegistry::Template/1"`.
"""
scalar ComplianceManagementFrameworksTemplateRegistryTemplateID

"""
A `ComplianceManagementProjectsComplianceViolationID` is a global ID. It is encoded as a string.

An example `ComplianceManagementProjectsComplianceViolationID` is:
`"gid://gitlab/ComplianceManagement::Projects::ComplianceViolation/1"`.
"""
scalar ComplianceManagementProjectsComplianceViolationID

"""
Represents a ComplianceRequirement associated with a ComplianceFramework
"""
type ComplianceRequirement {
  """Compliance controls of the compliance requirement."""
  complianceRequirementsControls(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceRequirementsControlConnection

  """Description of the compliance requirement."""
  description: String!

  """Compliance framework associated with the requirement."""
  framework: ComplianceFramework

  """Compliance requirement ID."""
  id: ID!

  """Name of the compliance requirement."""
  name: String!
}

"""The connection type for ComplianceRequirement."""
type ComplianceRequirementConnection {
  """A list of edges."""
  edges: [ComplianceRequirementEdge]

  """A list of nodes."""
  nodes: [ComplianceRequirement]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Lists down all the possible types of requirement controls."""
type ComplianceRequirementControl {
  """List of requirement controls."""
  controlExpressions: [ControlExpression!]!
}

"""An edge in a connection."""
type ComplianceRequirementEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceRequirement
}

input ComplianceRequirementInput {
  """New name for the compliance requirement."""
  name: String

  """New description for the compliance requirement."""
  description: String

  """Compliance controls of the compliance requirement."""
  complianceRequirementsControls: [ComplianceRequirementsControlInput!]
}

"""
Represents a ComplianceRequirementsControl associated with a ComplianceRequirement
"""
type ComplianceRequirementsControl {
  """Compliance requirement associated with the control."""
  complianceRequirement: ComplianceRequirement

  """Type of the compliance control."""
  controlType: String!

  """Expression of the compliance control."""
  expression: String

  """Name of the external control."""
  externalControlName: String

  """URL of the external control."""
  externalUrl: String

  """Compliance requirements control ID."""
  id: ID!

  """Name of the compliance control."""
  name: String!

  """Whether ping is enabled for external controls."""
  pingEnabled: Boolean!
}

"""The connection type for ComplianceRequirementsControl."""
type ComplianceRequirementsControlConnection {
  """A list of edges."""
  edges: [ComplianceRequirementsControlEdge]

  """A list of nodes."""
  nodes: [ComplianceRequirementsControl]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceRequirementsControlEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceRequirementsControl
}

input ComplianceRequirementsControlInput {
  """New name for the compliance requirement control."""
  name: String!

  """Expression of the compliance control."""
  expression: String

  """Type of the compliance control."""
  controlType: String

  """Name of the external control."""
  externalControlName: String

  """URL of the external control."""
  externalUrl: String

  """Secret token for an external control."""
  secretToken: String

  """Whether ping is enabled for external controls."""
  pingEnabled: Boolean
}

"""Compliance standards adherence for a project."""
type ComplianceStandardsAdherence {
  """Name of the check for the compliance standard."""
  checkName: ComplianceStandardsAdherenceCheckName!

  """Compliance standards adherence ID."""
  id: ID!

  """Project adhering to the compliance standard."""
  project: Project!

  """Name of the compliance standard."""
  standard: ComplianceStandardsAdherenceStandard!

  """Status of the compliance standards adherence."""
  status: ComplianceStandardsAdherenceStatus!

  """Timestamp when the adherence was updated."""
  updatedAt: Time!
}

"""Name of the check for the compliance standard."""
enum ComplianceStandardsAdherenceCheckName {
  """Prevent approval by merge request creator (author)"""
  PREVENT_APPROVAL_BY_MERGE_REQUEST_AUTHOR

  """Prevent approval by merge request committers"""
  PREVENT_APPROVAL_BY_MERGE_REQUEST_COMMITTERS

  """At least two approvals"""
  AT_LEAST_TWO_APPROVALS

  """At least one non author approval"""
  AT_LEAST_ONE_NON_AUTHOR_APPROVAL

  """Sast"""
  SAST

  """Dast"""
  DAST
}

"""The connection type for ComplianceStandardsAdherence."""
type ComplianceStandardsAdherenceConnection {
  """A list of edges."""
  edges: [ComplianceStandardsAdherenceEdge]

  """A list of nodes."""
  nodes: [ComplianceStandardsAdherence]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceStandardsAdherenceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceStandardsAdherence
}

input ComplianceStandardsAdherenceInput {
  """Name of the check for the compliance standard."""
  checkName: ComplianceStandardsAdherenceCheckName

  """Name of the compliance standard."""
  standard: ComplianceStandardsAdherenceStandard

  """Filter compliance standards adherence by project."""
  projectIds: [ProjectID!]
}

"""Name of the compliance standard."""
enum ComplianceStandardsAdherenceStandard {
  """Gitlab"""
  GITLAB

  """Soc2"""
  SOC2
}

"""Status of the compliance standards adherence."""
enum ComplianceStandardsAdherenceStatus {
  """Success"""
  SUCCESS

  """Fail"""
  FAIL
}

input ComplianceStandardsProjectAdherenceInput {
  """Name of the check for the compliance standard."""
  checkName: ComplianceStandardsAdherenceCheckName

  """Name of the compliance standard."""
  standard: ComplianceStandardsAdherenceStandard
}

"""Compliance violation associated with a merged merge request."""
type ComplianceViolation {
  """Compliance violation ID."""
  id: ID!

  """Merge request the compliance violation occurred in."""
  mergeRequest: MergeRequest!

  """Reason the compliance violation occurred."""
  reason: ComplianceViolationReason!

  """Severity of the compliance violation."""
  severityLevel: ComplianceViolationSeverity!

  """User suspected of causing the compliance violation."""
  violatingUser: UserCore!
}

"""The connection type for ComplianceViolation."""
type ComplianceViolationConnection {
  """A list of edges."""
  edges: [ComplianceViolationEdge]

  """A list of nodes."""
  nodes: [ComplianceViolation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComplianceViolationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComplianceViolation
}

input ComplianceViolationInput {
  """Merge requests merged before the date (inclusive)."""
  mergedBefore: Date

  """Merge requests merged after the date (inclusive)."""
  mergedAfter: Date

  """Filter compliance violations by target branch."""
  targetBranch: String

  """Filter compliance violations by project."""
  projectIds: [ProjectID!]
}

input ComplianceViolationProjectInput {
  """Merge requests merged before the date (inclusive)."""
  mergedBefore: Date

  """Merge requests merged after the date (inclusive)."""
  mergedAfter: Date

  """Filter compliance violations by target branch."""
  targetBranch: String
}

"""Reason for the compliance violation."""
enum ComplianceViolationReason {
  """Approved by merge request author"""
  APPROVED_BY_MERGE_REQUEST_AUTHOR

  """Approved by committer"""
  APPROVED_BY_COMMITTER

  """Approved by insufficient users"""
  APPROVED_BY_INSUFFICIENT_USERS
}

"""Severity of the compliance violation."""
enum ComplianceViolationSeverity {
  """Info severity"""
  INFO

  """Low severity"""
  LOW

  """Medium severity"""
  MEDIUM

  """High severity"""
  HIGH

  """Critical severity"""
  CRITICAL
}

"""Compliance violation sort values."""
enum ComplianceViolationSort {
  """
  Severity in descending order, further sorted by ID in descending order.
  """
  SEVERITY_LEVEL_DESC

  """Severity in ascending order, further sorted by ID in ascending order."""
  SEVERITY_LEVEL_ASC

  """
  Violation reason in descending order, further sorted by ID in descending order.
  """
  VIOLATION_REASON_DESC

  """
  Violation reason in ascending order, further sorted by ID in ascending order.
  """
  VIOLATION_REASON_ASC

  """
  Merge request title in descending order, further sorted by ID in descending order.
  """
  MERGE_REQUEST_TITLE_DESC

  """
  Merge request title in ascending order, further sorted by ID in ascending order.
  """
  MERGE_REQUEST_TITLE_ASC

  """
  Date merged in descending order, further sorted by ID in descending order.
  """
  MERGED_AT_DESC

  """
  Date merged in ascending order, further sorted by ID in ascending order.
  """
  MERGED_AT_ASC
}

"""Compliance violation status of the project."""
enum ComplianceViolationStatus {
  """Detected"""
  DETECTED

  """In review"""
  IN_REVIEW

  """Resolved"""
  RESOLVED

  """Dismissed"""
  DISMISSED
}

"""A software dependency used by a project"""
type Component {
  """ID of the dependency."""
  id: SbomComponentID!

  """Name of the dependency."""
  name: String!
}

"""A software dependency version used by a project"""
type ComponentVersion {
  """ID of the dependency version."""
  id: SbomComponentVersionID!

  """Version of the dependency."""
  version: String!
}

"""The connection type for ComponentVersion."""
type ComponentVersionConnection {
  """A list of edges."""
  edges: [ComponentVersionEdge]

  """A list of nodes."""
  nodes: [ComponentVersion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ComponentVersionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ComponentVersion
}

"""Composer metadata"""
type ComposerMetadata {
  """Data of the Composer JSON file."""
  composerJson: PackageComposerJsonType!

  """Target SHA of the package."""
  targetSha: String!
}

"""Conan file metadata"""
type ConanFileMetadata implements PackageFileMetadata {
  """Type of the Conan file."""
  conanFileType: ConanMetadatumFileTypeEnum!

  """Reference of the Conan package."""
  conanPackageReference: String

  """Date of creation."""
  createdAt: Time!

  """ID of the metadatum."""
  id: PackagesConanFileMetadatumID!

  """Revision of the package."""
  packageRevision: String

  """Revision of the Conan recipe."""
  recipeRevision: String!

  """Date of most recent update."""
  updatedAt: Time!
}

"""Conan metadata"""
type ConanMetadata {
  """Date of creation."""
  createdAt: Time!

  """ID of the metadatum."""
  id: PackagesConanMetadatumID!

  """Channel of the Conan package."""
  packageChannel: String!

  """Username of the Conan package."""
  packageUsername: String!

  """Recipe of the Conan package."""
  recipe: String!

  """Recipe path of the Conan package."""
  recipePath: String!

  """Date of most recent update."""
  updatedAt: Time!
}

"""Conan file types"""
enum ConanMetadatumFileTypeEnum {
  """A recipe file type."""
  RECIPE_FILE

  """A package file type."""
  PACKAGE_FILE
}

"""Autogenerated input type of ConfigureContainerScanning"""
input ConfigureContainerScanningInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!
}

"""Autogenerated return type of ConfigureContainerScanning."""
type ConfigureContainerScanningPayload {
  """Branch that has the new/modified `.gitlab-ci.yml` file."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Redirect path to use when the response is successful."""
  successPath: String
}

"""Autogenerated input type of ConfigureDependencyScanning"""
input ConfigureDependencyScanningInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!
}

"""Autogenerated return type of ConfigureDependencyScanning."""
type ConfigureDependencyScanningPayload {
  """Branch that has the new/modified `.gitlab-ci.yml` file."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Redirect path to use when the response is successful."""
  successPath: String
}

"""Autogenerated input type of ConfigureSastIac"""
input ConfigureSastIacInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!
}

"""Autogenerated return type of ConfigureSastIac."""
type ConfigureSastIacPayload {
  """Branch that has the new/modified `.gitlab-ci.yml` file."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Redirect path to use when the response is successful."""
  successPath: String
}

"""Autogenerated input type of ConfigureSast"""
input ConfigureSastInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """SAST CI configuration for the project."""
  configuration: SastCiConfigurationInput!
}

"""Autogenerated return type of ConfigureSast."""
type ConfigureSastPayload {
  """Branch that has the new/modified `.gitlab-ci.yml` file."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Redirect path to use when the response is successful."""
  successPath: String
}

"""Autogenerated input type of ConfigureSecretDetection"""
input ConfigureSecretDetectionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!
}

"""Autogenerated return type of ConfigureSecretDetection."""
type ConfigureSecretDetectionPayload {
  """Branch that has the new/modified `.gitlab-ci.yml` file."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Redirect path to use when the response is successful."""
  successPath: String
}

"""Connection details for an Agent"""
type ConnectedAgent {
  """When the connection was established."""
  connectedAt: Time

  """ID of the connection."""
  connectionId: BigInt

  """Information about the Agent."""
  metadata: AgentMetadata

  """Agent warnings list."""
  warnings: [AgentWarning!]
}

"""The connection type for ConnectedAgent."""
type ConnectedAgentConnection {
  """A list of edges."""
  edges: [ConnectedAgentEdge]

  """A list of nodes."""
  nodes: [ConnectedAgent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ConnectedAgentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ConnectedAgent
}

"""Values for sorting contacts"""
enum ContactSort {
  """First name in ascending order."""
  FIRST_NAME_ASC

  """First name in descending order."""
  FIRST_NAME_DESC

  """Last name in ascending order."""
  LAST_NAME_ASC

  """Last name in descending order."""
  LAST_NAME_DESC

  """Email in ascending order."""
  EMAIL_ASC

  """Email in descending order."""
  EMAIL_DESC

  """Phone in ascending order."""
  PHONE_ASC

  """Phone in descending order."""
  PHONE_DESC

  """Description in ascending order."""
  DESCRIPTION_ASC

  """Description in descending order."""
  DESCRIPTION_DESC

  """Organization in ascending order."""
  ORGANIZATION_ASC

  """Organization in descending order."""
  ORGANIZATION_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Represents the total number of contacts for the represented states."""
type ContactStateCounts {
  """Number of contacts with state `ACTIVE`"""
  active: Int

  """Number of contacts with state `ALL`"""
  all: Int

  """Number of contacts with state `INACTIVE`"""
  inactive: Int
}

"""Autogenerated input type of ContainerCacheEntryDelete"""
input ContainerCacheEntryDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the cache entry."""
  id: String!
}

"""Autogenerated return type of ContainerCacheEntryDelete."""
type ContainerCacheEntryDeletePayload {
  """Deleted container cache entry."""
  cacheEntry: ContainerUpstreamCacheEntry

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [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 the container expiration policy is enabled."""
  enabled: Boolean!

  """Number of tags to retain."""
  keepN: ContainerExpirationPolicyKeepEnum

  """Tags with names matching the regex pattern will expire."""
  nameRegex: UntrustedRegexp

  """Tags with names matching the regex pattern will be preserved."""
  nameRegexKeep: UntrustedRegexp

  """Next time that the container expiration policy will get executed."""
  nextRunAt: Time

  """Tags older than the given age will expire."""
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """Timestamp of when the container expiration policy was updated."""
  updatedAt: Time!
}

enum ContainerExpirationPolicyCadenceEnum {
  """Every day"""
  EVERY_DAY

  """Every week"""
  EVERY_WEEK

  """Every two weeks"""
  EVERY_TWO_WEEKS

  """Every month"""
  EVERY_MONTH

  """Every three months"""
  EVERY_THREE_MONTHS
}

enum ContainerExpirationPolicyKeepEnum {
  """1 tag per image name"""
  ONE_TAG

  """5 tags per image name"""
  FIVE_TAGS

  """10 tags per image name"""
  TEN_TAGS

  """25 tags per image name"""
  TWENTY_FIVE_TAGS

  """50 tags per image name"""
  FIFTY_TAGS

  """100 tags per image name"""
  ONE_HUNDRED_TAGS
}

enum ContainerExpirationPolicyOlderThanEnum {
  """1 day until tags are automatically removed"""
  ONE_DAY

  """3 days until tags are automatically removed"""
  THREE_DAYS

  """7 days until tags are automatically removed"""
  SEVEN_DAYS

  """14 days until tags are automatically removed"""
  FOURTEEN_DAYS

  """30 days until tags are automatically removed"""
  THIRTY_DAYS

  """60 days until tags are automatically removed"""
  SIXTY_DAYS

  """90 days until tags are automatically removed"""
  NINETY_DAYS

  """180 days until tags are automatically removed"""
  ONE_HUNDRED_EIGHTY_DAYS

  """1 year until tags are automatically removed"""
  THREE_HUNDRED_SIXTY_FIVE_DAYS

  """2 years until tags are automatically removed"""
  SEVEN_HUNDRED_THIRTY_DAYS

  """3 years until tags are automatically removed"""
  ONE_THOUSAND_NINETY_FIVE_DAYS
}

"""Represents the most restrictive permissions for a container image tag"""
type ContainerProtectionAccessLevel implements AccessLevelInterface {
  """Returns true when tag rule is for tag immutability. Otherwise, false."""
  immutable: Boolean!

  """
  Minimum GitLab access level required to delete container image tags from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can delete tags. 
  """
  minimumAccessLevelForDelete: ContainerProtectionTagRuleAccessLevel

  """
  Minimum GitLab access level required to push container image tags to the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can push tags. 
  """
  minimumAccessLevelForPush: ContainerProtectionTagRuleAccessLevel
}

"""
A container repository protection rule designed to prevent users with a certain
access level or lower from altering the container registry.
"""
type ContainerProtectionRepositoryRule {
  """ID of the container repository protection rule."""
  id: ContainerRegistryProtectionRuleID!

  """
  Minimum GitLab access level required to delete container images from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, the default minimum access level is `DEVELOPER`. Valid
  only when feature flag `container_registry_protected_containers_delete` is
  enabled. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  minimumAccessLevelForDelete: ContainerProtectionRepositoryRuleAccessLevel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Minimum GitLab access level required to push container images to the container
  repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the
  value is `nil`, the default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: ContainerProtectionRepositoryRuleAccessLevel

  """
  Container repository path pattern protected by the protection rule. Must start
  with the project’s full path. For example: `my-project/*-prod-*`. Wildcard
  character `*` is allowed anywhere after the project’s full path.
  """
  repositoryPathPattern: String!
}

"""Access level for a container repository protection rule resource"""
enum ContainerProtectionRepositoryRuleAccessLevel {
  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER

  """Admin access."""
  ADMIN
}

"""The connection type for ContainerProtectionRepositoryRule."""
type ContainerProtectionRepositoryRuleConnection {
  """A list of edges."""
  edges: [ContainerProtectionRepositoryRuleEdge]

  """A list of nodes."""
  nodes: [ContainerProtectionRepositoryRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ContainerProtectionRepositoryRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerProtectionRepositoryRule
}

"""
A container repository tag protection rule designed to prevent users with a
certain access level or lower from altering the container registry.
"""
type ContainerProtectionTagRule implements AccessLevelInterface {
  """ID of the container repository tag protection rule."""
  id: ContainerRegistryProtectionTagRuleID!

  """Returns true when tag rule is for tag immutability. Otherwise, false."""
  immutable: Boolean!

  """
  Minimum GitLab access level required to delete container image tags from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can delete tags. 
  """
  minimumAccessLevelForDelete: ContainerProtectionTagRuleAccessLevel

  """
  Minimum GitLab access level required to push container image tags to the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can push tags. 
  """
  minimumAccessLevelForPush: ContainerProtectionTagRuleAccessLevel

  """
  The pattern that matches container image tags to protect. For example, `v1.*`. Wildcard character `*` allowed.
  """
  tagNamePattern: String!

  """Permissions for the current user on the resource"""
  userPermissions: ContainerRegistryProtectionTagRulePermissions!
}

"""Access level of a container registry tag protection rule resource"""
enum ContainerProtectionTagRuleAccessLevel {
  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER

  """Admin access."""
  ADMIN
}

"""The connection type for ContainerProtectionTagRule."""
type ContainerProtectionTagRuleConnection {
  """A list of edges."""
  edges: [ContainerProtectionTagRuleEdge]

  """A list of nodes."""
  nodes: [ContainerProtectionTagRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ContainerProtectionTagRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerProtectionTagRule
}

"""Represents a container virtual registry"""
type ContainerRegistry implements RegistryInterface {
  """Description of the virtual registry."""
  description: String

  """ID of the virtual registry."""
  id: ID!

  """Name of the virtual registry."""
  name: String!

  """Timestamp of when the virtual registry was updated."""
  updatedAt: Time!
}

"""The connection type for ContainerRegistry."""
type ContainerRegistryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ContainerRegistryEdge]

  """A list of nodes."""
  nodes: [ContainerRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents container virtual registry details"""
type ContainerRegistryDetails implements RegistryInterface {
  """Description of the virtual registry."""
  description: String

  """ID of the virtual registry."""
  id: ID!

  """Name of the virtual registry."""
  name: String!

  """
  List of registry upstreams for the container virtual registry. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  registryUpstreams: [ContainerRegistryUpstreamWithUpstream!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Timestamp of when the virtual registry was updated."""
  updatedAt: Time!
}

"""An edge in a connection."""
type ContainerRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerRegistry
}

"""
A `ContainerRegistryProtectionRuleID` is a global ID. It is encoded as a string.

An example `ContainerRegistryProtectionRuleID` is: `"gid://gitlab/ContainerRegistry::Protection::Rule/1"`.
"""
scalar ContainerRegistryProtectionRuleID

"""
A `ContainerRegistryProtectionTagRuleID` is a global ID. It is encoded as a string.

An example `ContainerRegistryProtectionTagRuleID` is: `"gid://gitlab/ContainerRegistry::Protection::TagRule/1"`.
"""
scalar ContainerRegistryProtectionTagRuleID

type ContainerRegistryProtectionTagRulePermissions {
  """
  If `true`, the user can perform `destroy_container_registry_protection_tag_rule` on this resource
  """
  destroyContainerRegistryProtectionTagRule: Boolean!
}

"""Represents a container registry upstream and its registry."""
type ContainerRegistryUpstreamWithRegistry implements RegistryUpstreamInterface {
  """
  ID of the registry upstream. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Position of the upstream registry in an ordered list. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  position: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Container registry associated with the upstream registry. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  registry: ContainerRegistry! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")
}

"""
Represents a container virtual registry upstream and its relationship to the upstream.
"""
type ContainerRegistryUpstreamWithUpstream implements RegistryUpstreamInterface {
  """
  ID of the registry upstream. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Position of the upstream registry in an ordered list. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  position: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Container upstream associated with the registry upstream. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  upstream: ContainerUpstream! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

"""A container repository"""
type ContainerRepository {
  """Timestamp when the container repository was created."""
  createdAt: Time!

  """Tags cleanup status for the container repository."""
  expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus

  """
  Timestamp when the cleanup done by the expiration policy was started on the container repository.
  """
  expirationPolicyStartedAt: Time

  """ID of the container repository."""
  id: ID!

  """Number of deleted tags from the last cleanup."""
  lastCleanupDeletedTagsCount: Int

  """URL of the container repository."""
  location: String!

  """
  Migration state of the container repository. Deprecated in GitLab 17.0:
  Returns an empty string. This was used for the migration of GitLab.com, which
  is now complete. Not used by Self-managed instances.
  """
  migrationState: String! @deprecated(reason: "Returns an empty string. This was used for the migration of GitLab.com, which is now complete. Not used by Self-managed instances. Deprecated in GitLab 17.0.")

  """Name of the container repository."""
  name: String!

  """Path of the container repository."""
  path: String!

  """Project of the container registry."""
  project: Project!

  """
  Whether any matching container protection rule exists for the container repository.
  """
  protectionRuleExists: Boolean!

  """Status of the container repository."""
  status: ContainerRepositoryStatus

  """Number of tags associated with the image."""
  tagsCount: Int!

  """Timestamp when the container repository was updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: ContainerRepositoryPermissions!
}

"""Status of the tags cleanup of a container repository"""
enum ContainerRepositoryCleanupStatus {
  """Tags cleanup is not scheduled. This is the default state."""
  UNSCHEDULED

  """Tags cleanup is scheduled and is going to be executed shortly."""
  SCHEDULED

  """
  Tags cleanup has been partially executed. There are still remaining tags to delete.
  """
  UNFINISHED

  """Tags cleanup is ongoing."""
  ONGOING
}

"""The connection type for ContainerRepository."""
type ContainerRepositoryConnection {
  """A list of edges."""
  edges: [ContainerRepositoryEdge]

  """A list of nodes."""
  nodes: [ContainerRepository]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Details of a container repository"""
type ContainerRepositoryDetails {
  """Timestamp when the container repository was created."""
  createdAt: Time!

  """Tags cleanup status for the container repository."""
  expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus

  """
  Timestamp when the cleanup done by the expiration policy was started on the container repository.
  """
  expirationPolicyStartedAt: Time

  """ID of the container repository."""
  id: ID!

  """Number of deleted tags from the last cleanup."""
  lastCleanupDeletedTagsCount: Int

  """
  Timestamp when a repository tag was last created or updated. Only present for
  repositories that had tags created or updated after GitLab 16.11.
  """
  lastPublishedAt: Time

  """URL of the container repository."""
  location: String!

  """An image manifest from the container repository."""
  manifest(
    """Tag name or digest of the manifest."""
    reference: String!
  ): String

  """
  Migration state of the container repository. Deprecated in GitLab 17.0:
  Returns an empty string. This was used for the migration of GitLab.com, which
  is now complete. Not used by Self-managed instances.
  """
  migrationState: String! @deprecated(reason: "Returns an empty string. This was used for the migration of GitLab.com, which is now complete. Not used by Self-managed instances. Deprecated in GitLab 17.0.")

  """Name of the container repository."""
  name: String!

  """Path of the container repository."""
  path: String!

  """Project of the container registry."""
  project: Project!

  """
  Whether any matching container protection rule exists for the container repository.
  """
  protectionRuleExists: Boolean!

  """
  Deduplicated size of the image repository in bytes. This is only available on
  GitLab.com for repositories created after `2021-11-04`.
  """
  size: Float

  """Status of the container repository."""
  status: ContainerRepositoryStatus

  """Details for a specific tag in the container repository."""
  tagDetails(
    """Name of the tag."""
    name: String!
  ): ContainerRepositoryTagDetails

  """Tags of the container repository."""
  tags(
    """Sort tags by these criteria."""
    sort: ContainerRepositoryTagSort = null

    """Search by tag name."""
    name: String = null

    """Include tag referrers."""
    referrers: Boolean = null

    """
    Comma-separated list of artifact types used to filter referrers. Applies only when `referrers` is set to `true`.
    """
    referrerType: String = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerRepositoryTagConnection

  """Number of tags associated with the image."""
  tagsCount: Int!

  """Timestamp when the container repository was updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: ContainerRepositoryPermissions!
}

"""An edge in a connection."""
type ContainerRepositoryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerRepository
}

"""
A `ContainerRepositoryID` is a global ID. It is encoded as a string.

An example `ContainerRepositoryID` is: `"gid://gitlab/ContainerRepository/1"`.
"""
scalar ContainerRepositoryID

"""A manifest describing a reference to an image."""
type ContainerRepositoryImageManifest {
  """Digest of the manifest."""
  digest: String

  """Media type of the manifest."""
  mediaType: String

  """Platform specifier for the image reference."""
  platform: ContainerRepositoryImagePlatform

  """Size of the manifest in bytes."""
  size: BigInt
}

"""Description of the target platform for an image."""
type ContainerRepositoryImagePlatform {
  """CPU architecture of the platform."""
  architecture: String

  """Operating system of the platform."""
  os: String

  """Operating system version, typically used for Windows images."""
  osVersion: String

  """CPU variant of the platform."""
  variant: String
}

type ContainerRepositoryPermissions {
  """
  If `true`, the user can perform `destroy_container_image` on this resource
  """
  destroyContainerRepository: Boolean!
}

"""A referrer for a container repository tag"""
type ContainerRepositoryReferrer {
  """Artifact type of the referrer."""
  artifactType: String

  """Digest of the referrer."""
  digest: String

  """Permissions for the current user on the resource"""
  userPermissions: ContainerRepositoryTagPermissions!
}

"""
Represents the Geo replication and verification state of an Container Repository.
"""
type ContainerRepositoryRegistry {
  """
  Indicate if the checksums of the ContainerRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """ID of the ContainerRepository."""
  containerRepositoryId: ID!

  """Timestamp when the ContainerRepositoryRegistry was created"""
  createdAt: Time

  """Path to the data management view for this ContainerRepositoryRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ContainerRepositoryRegistry"""
  id: ID!

  """Error message during sync of the ContainerRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ContainerRepositoryRegistry
  """
  lastSyncedAt: Time

  """Indicate if the ContainerRepositoryRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the ContainerRepositoryRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the ContainerRepositoryRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ContainerRepositoryRegistry
  """
  retryCount: Int

  """Sync state of the ContainerRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the ContainerRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the ContainerRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the ContainerRepositoryRegistry"""
  verificationFailure: String

  """Timestamp after which the ContainerRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ContainerRepositoryRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of ContainerRepositoryRegistry started"""
  verificationStartedAt: Time

  """Verification state of the ContainerRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ContainerRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for ContainerRepositoryRegistry."""
type ContainerRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ContainerRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [ContainerRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ContainerRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerRepositoryRegistry
}

"""Values for sorting container repositories"""
enum ContainerRepositorySort {
  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Status of a container repository"""
enum ContainerRepositoryStatus {
  """Delete Scheduled status."""
  DELETE_SCHEDULED

  """Delete Failed status."""
  DELETE_FAILED

  """Delete Ongoing status."""
  DELETE_ONGOING
}

"""A tag from a container repository"""
type ContainerRepositoryTag {
  """Timestamp when the tag was created."""
  createdAt: Time

  """Digest of the tag."""
  digest: String

  """URL of the tag."""
  location: String!

  """Media type of the tag."""
  mediaType: String

  """Name of the tag."""
  name: String!

  """Path of the tag."""
  path: String!

  """
  Minimum GitLab access level required to push and delete container image tags.
  If the value is `nil`, no minimum access level is enforced. Users with the
  Developer role or higher can push tags by default.
  """
  protection: ContainerProtectionAccessLevel

  """Timestamp when the tag was published."""
  publishedAt: Time

  """Referrers for the tag."""
  referrers: [ContainerRepositoryReferrer!]

  """Revision of the tag."""
  revision: String

  """Short revision of the tag."""
  shortRevision: String

  """Size of the tag."""
  totalSize: BigInt

  """Permissions for the current user on the resource"""
  userPermissions: ContainerRepositoryTagPermissions!
}

"""The connection type for ContainerRepositoryTag."""
type ContainerRepositoryTagConnection {
  """A list of edges."""
  edges: [ContainerRepositoryTagEdge]

  """A list of nodes."""
  nodes: [ContainerRepositoryTag]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Details of a tag within a container repository"""
type ContainerRepositoryTagDetails {
  """Timestamp when the tag was created."""
  createdAt: Time

  """Digest of the tag."""
  digest: String

  """URL of the tag."""
  location: String!

  """Manifests of the index tag. Null for non-index tags."""
  manifests: [ContainerRepositoryImageManifest!]

  """Media type of the tag."""
  mediaType: String

  """Name of the tag."""
  name: String!

  """Path of the tag."""
  path: String!

  """Platform of the image tag. Null for index tags."""
  platform: ContainerRepositoryImagePlatform

  """Timestamp when the tag was published."""
  publishedAt: Time

  """Size of the tag."""
  totalSize: BigInt
}

"""An edge in a connection."""
type ContainerRepositoryTagEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerRepositoryTag
}

type ContainerRepositoryTagPermissions {
  """
  If `true`, the user can perform `destroy_container_image_tag` on this resource
  """
  destroyContainerRepositoryTag: Boolean!
}

"""Values for sorting tags"""
enum ContainerRepositoryTagSort {
  """Ordered by name in ascending order."""
  NAME_ASC

  """Ordered by name in descending order."""
  NAME_DESC

  """
  Ordered by published_at in ascending order. Only available for GitLab.com.
  """
  PUBLISHED_AT_ASC

  """
  Ordered by published_at in descending order. Only available for GitLab.com.
  """
  PUBLISHED_AT_DESC
}

"""
A tag expiration policy using regex patterns to control which images to keep or expire.
"""
type ContainerTagsExpirationPolicy {
  """Schedule of the container expiration policy."""
  cadence: ContainerExpirationPolicyCadenceEnum

  """Timestamp of when the container expiration policy was created."""
  createdAt: Time

  """Indicates whether the container expiration policy is enabled."""
  enabled: Boolean!

  """Number of tags to retain."""
  keepN: ContainerExpirationPolicyKeepEnum

  """Tags with names matching the regex pattern will expire."""
  nameRegex: UntrustedRegexp

  """Tags with names matching the regex pattern will be preserved."""
  nameRegexKeep: UntrustedRegexp

  """Next time that the container expiration policy will get executed."""
  nextRunAt: Time

  """Tags older than the given age will expire."""
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """Timestamp of when the container expiration policy was updated."""
  updatedAt: Time
}

"""Represents a container upstream registry."""
type ContainerUpstream implements UpstreamInterface {
  """
  Time before the cache expires for the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  cacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Description of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Name of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Number of registries using the upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  URL of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  url: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Username to sign in to the upstream registry. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  username: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

"""Autogenerated input type of ContainerUpstreamCacheDelete"""
input ContainerUpstreamCacheDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry upstream."""
  id: VirtualRegistriesContainerUpstreamID!
}

"""Autogenerated return type of ContainerUpstreamCacheDelete."""
type ContainerUpstreamCacheDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container virtual registry upstream."""
  upstream: ContainerUpstream
}

"""Represents a cache entry for an upstream container registry."""
type ContainerUpstreamCacheEntry implements EntryInterface {
  """
  Content type of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  contentType: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was created. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  createdAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Number of times the entry has been downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadsCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  MD5 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileMd5: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  SHA1 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileSha1: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ID of the cache entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  id: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Relative path of the cached entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  relativePath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Size of the cached file in bytes. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  size: BigInt! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last updated. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  updatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the upstream was last checked. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamCheckedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ETag from the upstream source. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamEtag: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
}

"""The connection type for ContainerUpstreamCacheEntry."""
type ContainerUpstreamCacheEntryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ContainerUpstreamCacheEntryEdge]

  """A list of nodes."""
  nodes: [ContainerUpstreamCacheEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ContainerUpstreamCacheEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerUpstreamCacheEntry
}

"""The connection type for ContainerUpstream."""
type ContainerUpstreamConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ContainerUpstreamEdge]

  """A list of nodes."""
  nodes: [ContainerUpstream]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ContainerUpstreamCreate"""
input ContainerUpstreamCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the upstream registry."""
  id: VirtualRegistriesContainerRegistryID!

  """Name of upstream registry."""
  name: String!

  """Description of the upstream registry."""
  description: String

  """URL of the upstream registry."""
  url: String!

  """Cache validity period. Defaults to 24 hours."""
  cacheValidityHours: Int = 24

  """Username of the upstream registry."""
  username: String

  """Password of the upstream registry."""
  password: String
}

"""Autogenerated return type of ContainerUpstreamCreate."""
type ContainerUpstreamCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container upstream after the mutation."""
  upstream: ContainerUpstreamDetails
}

"""Autogenerated input type of ContainerUpstreamDelete"""
input ContainerUpstreamDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the upstream to be deleted."""
  id: VirtualRegistriesContainerUpstreamID!
}

"""Autogenerated return type of ContainerUpstreamDelete."""
type ContainerUpstreamDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destroyed upstream."""
  upstream: ContainerUpstreamDetails
}

"""Represents container upstream details."""
type ContainerUpstreamDetails implements UpstreamInterface {
  """
  Represents cache entries for the upstream container registry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  cacheEntries(
    """Search cache entries by relative path."""
    search: String = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerUpstreamCacheEntryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Time before the cache expires for the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  cacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Description of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Name of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Number of registries using the upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Represents the connected upstream registry for an upstream and the upstream
  position data. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  registryUpstreams: [ContainerRegistryUpstreamWithRegistry!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  URL of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  url: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Username to sign in to the upstream registry. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  username: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

"""An edge in a connection."""
type ContainerUpstreamEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContainerUpstream
}

"""Autogenerated input type of ContainerUpstreamTest"""
input ContainerUpstreamTestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Full path of the group to test the upstream registry against. Required when `id` is not provided.
  """
  groupPath: ID

  """
  URL of the upstream registry to test. Required when `GraphqlExplorerControllerid` is not provided.
  """
  url: String

  """
  Username for authenticating with the upstream registry. Used when `id` is not provided.
  """
  username: String

  """
  Password for authenticating with the upstream registry. Used when `id` is not provided.
  """
  password: String

  """
  ID of the upstream registry to test. When provided, `groupPath`, `url`, `username`, and `password` are ignored.
  """
  id: VirtualRegistriesContainerUpstreamID
}

"""Autogenerated return type of ContainerUpstreamTest."""
type ContainerUpstreamTestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Whether the upstream connectivity test was successful."""
  success: Boolean!
}

"""Autogenerated input type of ContainerUpstreamUpdate"""
input ContainerUpstreamUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry upstream."""
  id: VirtualRegistriesContainerUpstreamID!

  """Name of upstream registry."""
  name: String

  """Description of the upstream registry."""
  description: String

  """URL of the upstream registry."""
  url: String

  """Cache validity period."""
  cacheValidityHours: Int

  """Username of the upstream registry."""
  username: String

  """Password of the upstream registry."""
  password: String
}

"""Autogenerated return type of ContainerUpstreamUpdate."""
type ContainerUpstreamUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container upstream after the mutation."""
  upstream: ContainerUpstreamDetails
}

"""Autogenerated input type of ContainerVirtualRegistryCacheDelete"""
input ContainerVirtualRegistryCacheDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry."""
  id: VirtualRegistriesContainerRegistryID!
}

"""Autogenerated return type of ContainerVirtualRegistryCacheDelete."""
type ContainerVirtualRegistryCacheDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container virtual registry."""
  registry: ContainerRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryCreate"""
input ContainerVirtualRegistryCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """Name of virtual registry."""
  name: String!

  """Description of the virtual registry."""
  description: String
}

"""Autogenerated return type of ContainerVirtualRegistryCreate."""
type ContainerVirtualRegistryCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container virtual registry after the mutation."""
  registry: ContainerRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryDelete"""
input ContainerVirtualRegistryDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry to be deleted."""
  id: VirtualRegistriesContainerRegistryID!
}

"""Autogenerated return type of ContainerVirtualRegistryDelete."""
type ContainerVirtualRegistryDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted container virtual registry."""
  registry: ContainerRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryUpdate"""
input ContainerVirtualRegistryUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of virtual registry."""
  name: String

  """Description of the virtual registry."""
  description: String

  """ID of the container virtual registry to be updated."""
  id: VirtualRegistriesContainerRegistryID!
}

"""Autogenerated return type of ContainerVirtualRegistryUpdate."""
type ContainerVirtualRegistryUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container virtual registry after the mutation."""
  registry: ContainerRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryUpstreamCreate"""
input ContainerVirtualRegistryUpstreamCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry."""
  registryId: VirtualRegistriesContainerRegistryID!

  """ID of the upstream."""
  upstreamId: VirtualRegistriesContainerUpstreamID!
}

"""Autogenerated return type of ContainerVirtualRegistryUpstreamCreate."""
type ContainerVirtualRegistryUpstreamCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container registry upstream after association."""
  registryUpstream: ContainerRegistryUpstreamWithRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryUpstreamDelete"""
input ContainerVirtualRegistryUpstreamDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container virtual registry upstream."""
  upstreamId: VirtualRegistriesContainerRegistryUpstreamID!
}

"""Autogenerated return type of ContainerVirtualRegistryUpstreamDelete."""
type ContainerVirtualRegistryUpstreamDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted container registry upstream."""
  registryUpstream: ContainerRegistryUpstreamWithRegistry
}

"""Autogenerated input type of ContainerVirtualRegistryUpstreamUpdate"""
input ContainerVirtualRegistryUpstreamUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Priority order of an upstream within a virtual registry."""
  position: Int!

  """ID of the container virtual registry upstream."""
  id: VirtualRegistriesContainerRegistryUpstreamID!
}

"""Autogenerated return type of ContainerVirtualRegistryUpstreamUpdate."""
type ContainerVirtualRegistryUpstreamUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Container registry upstream after update."""
  registryUpstream: ContainerRegistryUpstreamWithRegistry
}

"""Presets for GitLab Duo Chat window based on current context"""
type ContextPreset {
  """Serialized representation of the AI resource in the current context."""
  aiResourceData: String

  """
  Array of questions that the user can ask GitLab Duo Chat from the current page.
  """
  questions: [String!]
}

"""Represents the contributions of a user."""
type ContributionAnalyticsContribution {
  """Number of issues closed by the user."""
  issuesClosed: Int

  """Number of issues created by the user."""
  issuesCreated: Int

  """Number of merge requests approved by the user."""
  mergeRequestsApproved: Int

  """Number of merge requests closed by the user."""
  mergeRequestsClosed: Int

  """Number of merge requests created by the user."""
  mergeRequestsCreated: Int

  """Number of merge requests merged by the user."""
  mergeRequestsMerged: Int

  """Number of repository pushes the user made."""
  repoPushed: Int

  """Total number of events contributed by the user."""
  totalEvents: Int

  """Contributor User object."""
  user: UserCore
}

"""The connection type for ContributionAnalyticsContribution."""
type ContributionAnalyticsContributionConnection {
  """A list of edges."""
  edges: [ContributionAnalyticsContributionEdge]

  """A list of nodes."""
  nodes: [ContributionAnalyticsContribution]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ContributionAnalyticsContributionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContributionAnalyticsContribution
}

"""Response for `Contributions` aggregation engine"""
type ContributionsAggregationResponse {
  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: ContributionsAggregationResponseDimensions

  """Total number of contributions"""
  totalCount: Int

  """Number of unique contributors"""
  usersCount: Int
}

"""The connection type for ContributionsAggregationResponse."""
type ContributionsAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

  """A list of edges."""
  edges: [ContributionsAggregationResponseEdge]

  """A list of nodes."""
  nodes: [ContributionsAggregationResponse]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Response dimensions for `Contributions` aggregation engine"""
type ContributionsAggregationResponseDimensions {
  """Contribution timestamp"""
  createdAt(granularity: String): Time
}

"""An edge in a connection."""
type ContributionsAggregationResponseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ContributionsAggregationResponse
}

"""
Aggregation scope for `Contributions`. Apply ordering and pagination on the aggregation.
"""
type ContributionsAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContributionsAggregationResponseConnection
}

"""Represents a control expression."""
type ControlExpression {
  """Expression details for the control."""
  expression: ExpressionValue!

  """ID for the control."""
  id: ID!

  """Name of the control."""
  name: String!
}

"""Autogenerated input type of CorpusCreate"""
input CorpusCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the corpus package."""
  packageId: PackagesPackageID!

  """Project the corpus belongs to."""
  fullPath: ID!
}

"""Autogenerated return type of CorpusCreate."""
type CorpusCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Represents a vulnerability. The connection type is countable."""
type CountableVulnerability implements NoteableInterface & Todoable {
  """Indicates whether the type of vulnerability can be resolved with AI."""
  aiResolutionAvailable: Boolean

  """Indicates whether the specific vulnerability can be resolved with AI."""
  aiResolutionEnabled: Boolean

  """
  AI workflows triggered for the vulnerability. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  aiWorkflows(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityTriggeredWorkflowConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates whether the vulnerability is about to be archived in the next month.
  Introduced in GitLab 17.11: **Status**: Experiment.
  """
  archivalInformation: VulnerabilityArchivalInformation! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Timestamp of when the vulnerability state was changed to confirmed."""
  confirmedAt: Time

  """User that confirmed the vulnerability."""
  confirmedBy: UserCore

  """Enrichment (EPSS score and KEV) for CVE vulnerabilities."""
  cveEnrichment: CveEnrichmentType

  """CVSS information for the vulnerability."""
  cvss: [CvssType!]!

  """
  Dependencies for the vulnerability. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  dependencies(
    """Sort dependencies by given criteria."""
    sort: DependencySort

    """Filter dependencies by package managers."""
    packageManagers: [PackageManager!]

    """Filter dependencies by component names."""
    componentNames: [String!]

    """Filter dependencies by component IDs."""
    componentIds: [SbomComponentID!]

    """Filter dependencies by source type."""
    sourceTypes: [SbomSourceType!] = [DEPENDENCY_SCANNING, CONTAINER_SCANNING, NIL_SOURCE]

    """Filter dependencies by component versions."""
    componentVersions: [String!]

    """
    Filter dependencies to exclude the specified component versions. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    notComponentVersions: [String!]

    """
    Filter by security policy violations. Introduced in GitLab 18.7: **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter dependencies by tracked ref IDs. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter dependencies by tracked ref scope. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter dependencies by malware status. Work in progress and gated with
    feature flag `malicious_packages_dependency_list_filtering`. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    malware: 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
  ): DependencyConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """Description of the vulnerability."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Details of the vulnerability."""
  details: [VulnerabilityDetail!]!

  """Timestamp of when the vulnerability was first detected."""
  detectedAt: Time!

  """All discussions on the 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!

  """
  Reason for dismissal. Returns `null` for states other than `dismissed`.
  """
  dismissalReason: VulnerabilityDismissalReason

  """Timestamp of when the vulnerability state was changed to dismissed."""
  dismissedAt: Time

  """User that dismissed the vulnerability."""
  dismissedBy: UserCore

  """
  Vulnerability finding due date. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  dueDate: ISO8601Date @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Indicates whether the SAST vulnerability review workflow is enabled for the
  project. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  duoSastVrWorkflowEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """List of external issue links related to the vulnerability."""
  externalIssueLinks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityExternalIssueLinkConnection!

  """Indicates whether the vulnerability is a false positive."""
  falsePositive: Boolean

  """Status of the secret token associated with this vulnerability"""
  findingTokenStatus: VulnerabilityFindingTokenStatus

  """
  Flags set on the vulnerability. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  flags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityFlagConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Indicates whether there is a remediation available for the vulnerability.
  """
  hasRemediations: Boolean

  """GraphQL ID of the vulnerability."""
  id: ID!

  """Identifiers of the vulnerability."""
  identifiers: [VulnerabilityIdentifier!]!

  """
  Pipeline where the vulnerability was first detected. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  initialDetectedPipeline: Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """List of issue links related to the vulnerability."""
  issueLinks(
    """Filter issue links by link type."""
    linkType: VulnerabilityIssueLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityIssueLinkConnection!

  """
  Pipeline where the vulnerability was last detected. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  latestDetectedPipeline: Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Latest flag for the vulnerability. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  latestFlag: VulnerabilityFlag @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Latest non-closed merge request linked to fix the vulnerability. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  latestNonClosedMergeRequest: MergeRequest @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Latest security report finding for the vulnerability. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  latestSecurityReportFinding: PipelineSecurityReportFinding @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """List of links associated with the vulnerability."""
  links: [VulnerabilityLink!]!

  """
  Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability.
  """
  location: VulnerabilityLocation

  """
  Indicates whether the vulnerability is associated with a malware package.
  Returns `true` if a malware package is identified (regardless of add-on
  status). Returns `false` when the SSCS add-on is active and the package is not
  a malware package. Returns `null` when the add-on is not active. Introduced in
  GitLab 19.0: **Status**: Experiment.
  """
  malware: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Merge request that fixes the vulnerability."""
  mergeRequest: MergeRequest

  """Merge requests that are linked to fix the vulnerability."""
  mergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): MergeRequestConnection

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """
  Indicates whether the vulnerability was auto-dismissed by a security policy.
  Introduced in GitLab 18.7: **Status**: Experiment.
  """
  policyAutoDismissed: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Policy violation for the vulnerability. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  policyViolations: PolicyViolations @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates whether the vulnerability is present on the default branch or not.
  """
  presentOnDefaultBranch: Boolean!

  """Primary identifier of the vulnerability."""
  primaryIdentifier: VulnerabilityIdentifier

  """Project on which the vulnerability was found."""
  project: Project

  """
  Reachability status of the vulnerability. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  reachability: ReachabilityType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Indicates whether the vulnerability is present in the code or not."""
  removedFromCode: Boolean!

  """
  Type of the security report that found the vulnerability (SAST,
  DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION,
  COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING,
  CONTAINER_SCANNING_FOR_REGISTRY, SARIF, GENERIC). `Scan Type` in the UI.
  """
  reportType: VulnerabilityReportType

  """
  Information about the representation of the vulnerability, such as resolved
  commit SHA. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  representationInformation: VulnerabilityRepresentationInformation @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """Timestamp of when the vulnerability state was changed to resolved."""
  resolvedAt: Time

  """User that resolved the vulnerability."""
  resolvedBy: UserCore

  """
  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

  """List of severity changes for the vulnerability."""
  severityOverrides(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SeverityOverrideConnection

  """Recommended solution for the vulnerability."""
  solution: String

  """State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED)"""
  state: VulnerabilityState

  """Comment given for the vulnerability state change."""
  stateComment: String

  """List of state transitions related to the vulnerability."""
  stateTransitions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityStateTransitionTypeConnection

  """Title of the vulnerability."""
  title: String

  """
  Tracked ref (branch or tag) where the vulnerability was detected. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  trackedRef: SecurityTrackedRef @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Indicates whether the finding was detected without an identified source (untrusted input).
  """
  unverified: Boolean!

  """Timestamp of when the vulnerability was last updated."""
  updatedAt: Time

  """Number of user notes attached to the vulnerability."""
  userNotesCount: Int!

  """Permissions for the current user on the resource"""
  userPermissions: VulnerabilityPermissions!

  """
  UUID of the vulnerability finding. Can be used to look up the associated security report finding.
  """
  uuid: String!

  """Path to the vulnerability's details page."""
  vulnerabilityPath: String

  """URL to the vulnerability's details page."""
  webUrl: String
}

"""The connection type for CountableVulnerability."""
type CountableVulnerabilityConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CountableVulnerabilityEdge]

  """A list of nodes."""
  nodes: [CountableVulnerability]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CountableVulnerabilityEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CountableVulnerability
}

"""Corpus for a coverage fuzzing job."""
type CoverageFuzzingCorpus {
  """ID of the corpus."""
  id: AppSecFuzzingCoverageCorpusID!

  """Package of the corpus."""
  package: PackageDetailsType!
}

"""The connection type for CoverageFuzzingCorpus."""
type CoverageFuzzingCorpusConnection {
  """A list of edges."""
  edges: [CoverageFuzzingCorpusEdge]

  """A list of nodes."""
  nodes: [CoverageFuzzingCorpus]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CoverageFuzzingCorpusEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CoverageFuzzingCorpus
}

"""Autogenerated input type of CreateAlertIssue"""
input CreateAlertIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!
}

"""Autogenerated return type of CreateAlertIssue."""
type CreateAlertIssuePayload {
  """Alert after mutation."""
  alert: AlertManagementAlert

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

"""Autogenerated input type of CreateAnnotation"""
input CreateAnnotationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the environment to add an annotation to."""
  environmentId: EnvironmentID

  """Global ID of the cluster to add an annotation to."""
  clusterId: ClustersClusterID

  """Timestamp indicating starting moment to which the annotation relates."""
  startingAt: Time!

  """Timestamp indicating ending moment to which the annotation relates."""
  endingAt: Time

  """
  Path to a file defining the dashboard on which the annotation should be added.
  """
  dashboardPath: String!

  """Description of the annotation."""
  description: String!
}

"""Autogenerated return type of CreateAnnotation."""
type CreateAnnotationPayload {
  """Created annotation."""
  annotation: MetricsDashboardAnnotation

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateBoard"""
input CreateBoardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """Board name."""
  name: String

  """Whether or not backlog list is hidden."""
  hideBacklogList: Boolean

  """Whether or not closed list is hidden."""
  hideClosedList: Boolean

  """ID of user to be assigned to the board."""
  assigneeId: UserID

  """ID of milestone to be assigned to the board."""
  milestoneId: MilestoneID

  """ID of iteration to be assigned to the board."""
  iterationId: IterationID

  """ID of iteration cadence to be assigned to the board."""
  iterationCadenceId: IterationsCadenceID

  """Weight value to be assigned to the board."""
  weight: Int

  """Labels of the issue."""
  labels: [String!]

  """IDs of labels to be added to the board."""
  labelIds: [LabelID!]
}

"""Autogenerated return type of CreateBoard."""
type CreateBoardPayload {
  """Board after mutation."""
  board: Board

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateBranch"""
input CreateBranchInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project full path the branch is associated with."""
  projectPath: ID!

  """Name of the branch."""
  name: String!

  """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 the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateClusterAgent"""
input CreateClusterAgentInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the associated project for the cluster agent."""
  projectPath: ID!

  """Name of the cluster agent."""
  name: String!
}

"""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 the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateComplianceFrameworkFromTemplate"""
input CreateComplianceFrameworkFromTemplateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace to add the compliance framework to."""
  namespacePath: ID!

  """Unique identifier of the template to create the framework from."""
  templateId: ComplianceManagementFrameworksTemplateRegistryTemplateID!

  """Override the name of the compliance framework."""
  name: String

  """Override the description of the compliance framework."""
  description: String

  """
  Override the color of the compliance framework in hex format. e.g. #FCA121.
  """
  color: String

  """Set the compliance framework as the default framework for the group."""
  default: Boolean
}

"""Autogenerated return type of CreateComplianceFrameworkFromTemplate."""
type CreateComplianceFrameworkFromTemplatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created compliance framework."""
  framework: ComplianceFramework
}

"""Autogenerated input type of CreateComplianceFramework"""
input CreateComplianceFrameworkInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace to add the compliance framework to."""
  namespacePath: ID!

  """Parameters to update the compliance framework with."""
  params: ComplianceFrameworkInput!
}

"""Autogenerated return type of CreateComplianceFramework."""
type CreateComplianceFrameworkPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created compliance framework."""
  framework: ComplianceFramework
}

"""Autogenerated input type of CreateComplianceRequirement"""
input CreateComplianceRequirementInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance framework of the new requirement."""
  complianceFrameworkId: ComplianceManagementFrameworkID!

  """Parameters to update the compliance requirement with."""
  params: ComplianceRequirementInput!

  """Controls to add to the compliance requirement."""
  controls: [ComplianceRequirementsControlInput!]
}

"""Autogenerated return type of CreateComplianceRequirement."""
type CreateComplianceRequirementPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created compliance requirement."""
  requirement: ComplianceRequirement
}

"""Autogenerated input type of CreateComplianceRequirementsControl"""
input CreateComplianceRequirementsControlInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance requirement of the new control."""
  complianceRequirementId: ComplianceManagementComplianceFrameworkComplianceRequirementID!

  """Parameters to create the compliance requirement control."""
  params: ComplianceRequirementsControlInput!
}

"""Autogenerated return type of CreateComplianceRequirementsControl."""
type CreateComplianceRequirementsControlPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created compliance requirements control."""
  requirementsControl: ComplianceRequirementsControl
}

"""Autogenerated input type of CreateContainerProtectionRepositoryRule"""
input CreateContainerProtectionRepositoryRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project where a protection rule is located."""
  projectPath: ID!

  """
  Container repository path pattern protected by the protection rule. Must start
  with the project’s full path. For example: `my-project/*-prod-*`. Wildcard
  character `*` is allowed anywhere after the project’s full path.
  """
  repositoryPathPattern: String!

  """
  Minimum GitLab access level required to delete container images from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, the default minimum access level is `DEVELOPER`. Valid
  only when feature flag `container_registry_protected_containers_delete` is
  enabled. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  minimumAccessLevelForDelete: ContainerProtectionRepositoryRuleAccessLevel

  """
  Minimum GitLab access level required to push container images to the container
  repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the
  value is `nil`, the default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: ContainerProtectionRepositoryRuleAccessLevel
}

"""Autogenerated return type of CreateContainerProtectionRepositoryRule."""
type CreateContainerProtectionRepositoryRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Container repository protection rule after mutation."""
  containerProtectionRepositoryRule: ContainerProtectionRepositoryRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of createContainerProtectionTagRule"""
input createContainerProtectionTagRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project containing the container image tags."""
  projectPath: ID!

  """
  The pattern that matches container image tags to protect. For example, `v1.*`. Wildcard character `*` allowed.
  """
  tagNamePattern: String!

  """
  Minimum GitLab access level required to delete container image tags from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can delete tags. 
  """
  minimumAccessLevelForDelete: ContainerProtectionTagRuleAccessLevel

  """
  Minimum GitLab access level required to push container image tags to the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can push tags. 
  """
  minimumAccessLevelForPush: ContainerProtectionTagRuleAccessLevel
}

"""Autogenerated return type of createContainerProtectionTagRule."""
type createContainerProtectionTagRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Protection rule for container image tags after creation."""
  containerProtectionTagRule: ContainerProtectionTagRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateCustomDashboard"""
input CreateCustomDashboardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Organization the dashboard belongs to. Defaults to the current organization if not provided.
  """
  organizationId: OrganizationsOrganizationID

  """Dashboard name."""
  name: String!

  """Dashboard description."""
  description: String

  """Dashboard layout/config."""
  config: CustomDashboardConfigInput!

  """Namespace to scope the dashboard to."""
  namespaceId: NamespaceID
}

"""Autogenerated return type of CreateCustomDashboard."""
type CreateCustomDashboardPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Newly created dashboard."""
  dashboard: CustomDashboard

  """Errors encountered during creation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateCustomEmoji"""
input CreateCustomEmojiInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace full path the emoji is associated with."""
  groupPath: ID!

  """Name of the emoji."""
  name: String!

  """Location of the emoji file."""
  url: String!
}

"""Autogenerated return type of CreateCustomEmoji."""
type CreateCustomEmojiPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """New custom emoji."""
  customEmoji: CustomEmoji

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateDiffNote"""
input CreateDiffNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the resource to add a note to."""
  noteableId: NoteableID!

  """Content of the note."""
  body: String!

  """Internal flag for a note. Default is false."""
  internal: Boolean

  """Position of the 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 the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of CreateDiscussion"""
input CreateDiscussionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the resource to add a note to."""
  noteableId: NoteableID!

  """Content of the note."""
  body: String!

  """Internal flag for a note. Default is false."""
  internal: Boolean
}

"""Autogenerated return type of CreateDiscussion."""
type CreateDiscussionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of CreateEpic"""
input CreateEpicInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group the epic to mutate is in."""
  groupPath: ID!

  """Title of the epic."""
  title: String

  """Description of the epic."""
  description: String

  """Indicates if the epic is confidential."""
  confidential: Boolean

  """Start date of the epic."""
  startDateFixed: String

  """End date of the epic."""
  dueDateFixed: String

  """
  Indicates start date should be sourced from start_date_fixed field not the issue milestones.
  """
  startDateIsFixed: Boolean

  """
  Indicates end date should be sourced from due_date_fixed field not the issue milestones.
  """
  dueDateIsFixed: Boolean

  """IDs of labels to be added to the epic."""
  addLabelIds: [ID!]

  """IDs of labels to be removed from the epic."""
  removeLabelIds: [ID!]

  """Array of labels to be added to the epic."""
  addLabels: [String!]

  """Color of the epic."""
  color: Color
}

"""Autogenerated return type of CreateEpic."""
type CreateEpicPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created epic."""
  epic: Epic

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateImageDiffNote"""
input CreateImageDiffNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the resource to add a note to."""
  noteableId: NoteableID!

  """Content of the note."""
  body: String!

  """Internal flag for a note. Default is false."""
  internal: Boolean

  """Position of the 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 the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of CreateIssue"""
input CreateIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the issue."""
  description: String

  """Due date of the issue."""
  dueDate: ISO8601Date

  """Indicates the issue is confidential."""
  confidential: Boolean

  """Indicates discussion is locked on the issue."""
  locked: Boolean

  """Type of the issue."""
  type: IssueType

  """Project full path the issue is associated with."""
  projectPath: ID!

  """
  IID (internal ID) of a project issue. Only admins and project owners can modify.
  """
  iid: Int

  """Title of the issue."""
  title: String!

  """
  ID of the milestone to assign to the issue. On update milestone will be removed if set to null.
  """
  milestoneId: MilestoneID

  """Labels of the issue."""
  labels: [String!]

  """IDs of labels to be added to the issue."""
  labelIds: [LabelID!]

  """
  Timestamp when the issue was created. Available only for admins and project owners.
  """
  createdAt: Time

  """IID of a merge request for which to resolve discussions."""
  mergeRequestToResolveDiscussionsOf: MergeRequestID

  """
  ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`.
  """
  discussionToResolve: String

  """Array of user IDs to assign to the issue."""
  assigneeIds: [UserID!]

  """Global ID of issue that should be placed before the current issue."""
  moveBeforeId: IssueID

  """Global ID of issue that should be placed after the current issue."""
  moveAfterId: IssueID

  """Desired health status."""
  healthStatus: HealthStatus

  """Weight of the issue."""
  weight: Int

  """
  ID of an epic to associate the issue with. Deprecated in GitLab 17.5: This will be replaced by WorkItem hierarchyWidget.
  """
  epicId: EpicID

  """
  Global iteration ID. Mutually exclusive argument with `iterationWildcardId`.
  """
  iterationId: IterationID

  """
  Iteration wildcard ID. Supported values are: `CURRENT`. Mutually exclusive
  argument with `iterationId`. iterationCadenceId also required when this
  argument is provided.
  """
  iterationWildcardId: IssueCreationIterationWildcardId

  """
  Global iteration cadence ID. Required when `iterationWildcardId` is provided.
  """
  iterationCadenceId: IterationsCadenceID

  """Global ID of the status."""
  statusId: WorkItemsStatusesStatusID
}

"""Autogenerated return type of CreateIssue."""
type CreateIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of CreateIteration"""
input CreateIterationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """
  Global ID of the iteration cadence to be assigned to the new iteration.
  """
  iterationsCadenceId: IterationsCadenceID

  """Title of the iteration."""
  title: String

  """Description of the iteration."""
  description: String

  """Start date of the iteration."""
  startDate: String

  """End date of the iteration."""
  dueDate: String
}

"""Autogenerated return type of CreateIteration."""
type CreateIterationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created iteration."""
  iteration: Iteration
}

"""Autogenerated input type of CreateLatestDiffNote"""
input CreateLatestDiffNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Content of the note."""
  body: String!

  """Internal flag for a note. Default is false."""
  internal: Boolean

  """
  Path of the file to comment on. For renamed files, either the old or new path can be used.
  """
  filePath: String!

  """
  Line number on the new version of the file. Use alone for added lines, with
  oldLine for unchanged context lines. At least one of newLine or oldLine is required.
  """
  newLine: Int

  """
  Line number on the old version of the file. Use alone for removed lines, with
  newLine for unchanged context lines. At least one of newLine or oldLine is required.
  """
  oldLine: Int

  """
  End line number on the new version of the file for a multiline note. When
  provided, newLine is required and marks the start of the comment range.
  """
  endNewLine: Int

  """
  End line number on the old version of the file for a multiline note. When
  provided, oldLine is required and marks the start of the comment range.
  """
  endOldLine: Int

  """Global ID of the merge request to add a diff note to."""
  noteableId: MergeRequestID!

  """
  HEAD SHA of the merge request diff. The request fails if it does not match the
  current diff, guarding against commenting on a stale diff.
  """
  headSha: String!
}

"""Autogenerated return type of CreateLatestDiffNote."""
type CreateLatestDiffNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of CreateNote"""
input CreateNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the resource to add a note to."""
  noteableId: NoteableID!

  """Content of the note."""
  body: String!

  """Internal flag for a note. Default is false."""
  internal: Boolean

  """Global ID of the discussion the note is in reply to."""
  discussionId: DiscussionID

  """
  SHA of the head commit which is used to ensure that the merge request has not been updated since the request was sent.
  """
  mergeRequestDiffHeadSha: String
}

"""Autogenerated return type of CreateNote."""
type CreateNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of CreatePackagesProtectionRule"""
input CreatePackagesProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project where a protection rule is located."""
  projectPath: ID!

  """
  Package name protected by the protection rule. For example, `@my-scope/my-package-*`. Wildcard character `*` allowed.
  """
  packageNamePattern: String!

  """
  Package type protected by the protection rule. For example, `NPM`, `PYPI`.
  """
  packageType: PackagesProtectionRulePackageType!

  """
  Minimum GitLab access required to delete packages from the package registry.
  Valid values include `OWNER` or `ADMIN`. If the value is `nil`, the default
  minimum access level is `MAINTAINER`. Available only when feature flag
  `packages_protected_packages_delete` is enabled. Introduced in GitLab 17.10:
  **Status**: Experiment.
  """
  minimumAccessLevelForDelete: PackagesProtectionRuleAccessLevelForDelete

  """
  Minimum GitLab access required to push packages to the package registry. Valid
  values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the value is `nil`, the
  default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: PackagesProtectionRuleAccessLevel
}

"""Autogenerated return type of CreatePackagesProtectionRule."""
type CreatePackagesProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Packages protection rule after mutation."""
  packageProtectionRule: PackagesProtectionRule
}

"""Autogenerated input type of CreateRequirement"""
input CreateRequirementInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Title of the requirement."""
  title: String

  """Description of the requirement."""
  description: String

  """Full project path the requirement is associated with."""
  projectPath: ID!
}

"""Autogenerated return type of CreateRequirement."""
type CreateRequirementPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Requirement after mutation."""
  requirement: Requirement
}

"""Autogenerated input type of CreateSnippet"""
input CreateSnippetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Title of the snippet."""
  title: String!

  """Description of the snippet."""
  description: String

  """Visibility level of the snippet."""
  visibilityLevel: VisibilityLevelsEnum!

  """Full path of the project the snippet is associated with."""
  projectPath: ID

  """Paths to files uploaded in the snippet description."""
  uploadedFiles: [String!]

  """Actions to perform over the snippet repository and blobs."""
  blobActions: [SnippetBlobActionInputType!]
}

"""Autogenerated return type of CreateSnippet."""
type CreateSnippetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

"""Autogenerated input type of CreateTerraformStateProtectionRule"""
input CreateTerraformStateProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project where the protection rule is located."""
  projectPath: ID!

  """Terraform state name protected by the rule."""
  stateName: String!

  """
  Minimum GitLab access level required to perform write operations on the
  Terraform state. Valid values include `DEVELOPER`, `MAINTAINER`, `OWNER`, or `ADMIN`.
  """
  minimumAccessLevelForWrite: TerraformStateProtectionRuleAccessLevel!

  """
  Restriction on the source of write requests. `ANYWHERE` allows all sources,
  `CI_ONLY` requires a CI job token, `CI_ON_PROTECTED_BRANCH_ONLY` requires a CI
  job on a protected branch. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  allowedFrom: TerraformStateProtectionRuleAllowedFrom = ANYWHERE
}

"""Autogenerated return type of CreateTerraformStateProtectionRule."""
type CreateTerraformStateProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Terraform state protection rule after mutation. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  terraformStateProtectionRule: TerraformStateProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
}

"""Autogenerated input type of CreateTestCase"""
input CreateTestCaseInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Test case title."""
  title: String!

  """Test case description."""
  description: String

  """IDs of labels to be added to the test case."""
  labelIds: [ID!]

  """Project full path to create the test case in."""
  projectPath: ID!

  """Sets the test case confidentiality."""
  confidential: Boolean
}

"""Autogenerated return type of CreateTestCase."""
type CreateTestCasePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Test case created."""
  testCase: Issue
}

"""Attributes to create value stream stage."""
input CreateValueStreamStageInput {
  """Name of the stage."""
  name: String!

  """
  Whether the stage is customized. If false, it assigns a built-in default stage by name.
  """
  custom: Boolean = true

  """End event identifier."""
  endEventIdentifier: ValueStreamStageEvent

  """Label ID associated with the end event identifier."""
  endEventLabelId: LabelID

  """Whether the stage is hidden."""
  hidden: Boolean

  """Start event identifier."""
  startEventIdentifier: ValueStreamStageEvent

  """Label ID associated with the start event identifier."""
  startEventLabelId: LabelID
}

"""Represents the current license"""
type CurrentLicense {
  """Date when the license was activated."""
  activatedAt: Date

  """Number of billable users on the system."""
  billableUsersCount: Int

  """Date when licensed features will be blocked."""
  blockChangesAt: Date

  """Company of the licensee."""
  company: String

  """Date when the license was added."""
  createdAt: Date

  """Email of the licensee."""
  email: String

  """Date when the license expires."""
  expiresAt: Date

  """Whether the license has an active GitLab Credits add-on."""
  hasGitlabCreditsAddOn: Boolean!

  """ID of the license extracted from the license data."""
  id: ID!

  """Date when the license was last synced."""
  lastSync: Time

  """
  Highest number of billable users on the system during the term of the current license.
  """
  maximumUserCount: Int

  """Name of the licensee."""
  name: String

  """Name of the subscription plan."""
  plan: String!

  """Date when the license started."""
  startsAt: Date

  """Indicates if the license is a trial."""
  trial: Boolean

  """Type of the license."""
  type: String!

  """Number of paid users in the license."""
  usersInLicenseCount: Int

  """Number of users over the paid users in the license."""
  usersOverLicenseCount: Int
}

"""The currently authenticated GitLab user."""
type CurrentUser implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Indicates if the user is an instance administrator."""
  admin: Boolean!

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests the current user is an assignee or a reviewer of."""
  assigneeOrReviewerMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Reviewer states for merge requests the current user is assigned to."""
    assignedReviewStates: [MergeRequestReviewState!]

    """
    Reviewer states for the merge requests the current user is a reviewer of.
    """
    reviewerReviewStates: [MergeRequestReviewState!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """
  List of additional contexts enabled for Code Suggestions. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  codeSuggestionsContexts: [String!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """
  User access to AI chat feature. Introduced in GitLab 16.8: **Status**: Experiment.
  """
  duoChatAvailable: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")

  """
  List of available features for AI chat. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  duoChatAvailableFeatures: [String!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """User access to GitLab Duo Chat (non-agentic) feature."""
  duoClassicChatAvailable: Boolean!

  """
  User access to code suggestions feature. Introduced in GitLab 16.8: **Status**: Experiment.
  """
  duoCodeSuggestionsAvailable: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """
  Most-recently viewed issues for the current user. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  recentlyViewedIssues: [Issue!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Most-recently viewed items for the current user."""
  recentlyViewedItems: [RecentlyViewedItem!]

  """
  Most-recently viewed merge requests for the current user. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  recentlyViewedMergeRequests: [MergeRequest!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """
  List all runners the current user manages. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  runners(
    """
    Filter runners by `active` (true) or `paused` (false) status. Deprecated in GitLab 14.8: This was renamed.
    """
    active: Boolean

    """Filter runners by `paused` (true) or `active` (false) status."""
    paused: Boolean

    """Filter runners by status."""
    status: CiRunnerStatus

    """Filter runners by type."""
    type: CiRunnerType

    """Filter by tags associated with the runner (comma-separated or array)."""
    tagList: [String!]

    """Filter by full token or partial text in description field."""
    search: String

    """Sort order of results."""
    sort: CiRunnerSort

    """Filter by upgrade status."""
    upgradeStatus: CiRunnerUpgradeStatus

    """Filter runners by creator ID."""
    creatorId: UserID

    """Filter runners by creator username."""
    creatorUsername: String

    """
    Filter runners by version. Runners that contain runner managers with the
    version at the start of the search term are returned. For example, the
    search term '14.' returns runner managers with versions '14.11.1' and '14.2.3'.
    """
    versionPrefix: String

    """
    Filter runners by owning project or group. Introduced in GitLab 17.8: **Status**: Experiment.
    """
    ownerFullPath: String

    """
    Path of a project. When set, returns runners that can be assigned to a
    project, are not locked, and not already assigned to the project.
    """
    assignableToProjectPath: ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """
  User preferences for the given work item type and namespace. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  workItemPreferences(
    """Full path of the namespace the work item is created in."""
    namespacePath: ID!

    """Global ID of a work item type."""
    workItemTypeId: WorkItemsTypeID
  ): WorkItemTypesUserPreference @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Find work items visible to the current user. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  workItems(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

interface CurrentUserTodos {
  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!
}

"""A custom attribute key-value pair. Only available to admins."""
type CustomAttribute {
  """Key of the custom attribute."""
  key: String!

  """Value of the custom attribute."""
  value: String!
}

"""Customizable analytics dashboard"""
type CustomDashboard implements CustomDashboardInterface {
  """Dashboard layout and widget configuration."""
  config: JSON!

  """Timestamp when the dashboard was created."""
  createdAt: Time

  """User who created the dashboard."""
  createdBy: UserCore

  """Optional summary or purpose of the dashboard."""
  description: String

  """Global ID of the custom dashboard."""
  id: ID!

  """Version used for optimistic concurrency control."""
  lockVersion: Int!

  """Display name of the dashboard."""
  name: String!

  """Namespace scope of the dashboard, if any."""
  namespace: Namespace

  """Organization that owns the dashboard."""
  organization: Organization!

  """Project scope of the dashboard, if any."""
  project: Project

  """Dashboard url slug."""
  slug: String

  """Whether the dashboard is a built-in GitLab dashboard."""
  system: Boolean!

  """Timestamp when the dashboard was last updated."""
  updatedAt: Time!

  """User who last updated the dashboard."""
  updatedBy: UserCore
}

"""Configuration input for a custom analytics dashboard."""
input CustomDashboardConfigInput {
  """Description of the dashboard."""
  description: String

  """Filter controls available on the dashboard."""
  filters: CustomDashboardFiltersInput

  """Grid height display mode."""
  gridHeight: CustomDashboardGridHeight

  """Panels to display on the dashboard."""
  panels: [CustomDashboardPanelInput!]!

  """Maturity status of the dashboard."""
  status: CustomDashboardStatus

  """Display title of the dashboard."""
  title: String!
}

"""Date range filter configuration for the dashboard."""
input CustomDashboardDateRangeFilterInput {
  """Default selected date range option."""
  defaultOption: CustomDashboardDateRangeOption

  """Whether the date range filter is enabled."""
  enabled: Boolean

  """Maximum number of days allowed in a custom range."""
  numberOfDaysLimit: Float

  """Preset date range options to display."""
  options: [CustomDashboardDateRangeOption!]
}

"""Preset date range options available for dashboard filters."""
enum CustomDashboardDateRangeOption {
  """Current day."""
  TODAY

  """Custom date range."""
  CUSTOM

  """Last 7 days."""
  DAYS_7

  """Last 30 days."""
  DAYS_30

  """Last 60 days."""
  DAYS_60

  """Last 90 days."""
  DAYS_90

  """Last 180 days."""
  DAYS_180

  """Last 365 days."""
  DAYS_365
}

"""Filtered search filter configuration for the dashboard."""
input CustomDashboardFilteredSearchFilterInput {
  """Whether filtered search is enabled."""
  enabled: Boolean

  """Token options available in the filtered search."""
  options: [CustomDashboardFilteredSearchFilterOptionInput!]
}

"""Configuration for a single filtered search token."""
input CustomDashboardFilteredSearchFilterOptionInput {
  """Maximum number of suggestions to display."""
  maxSuggestions: Float

  """Comparison operator for the token."""
  operator: CustomDashboardFilteredSearchOperator

  """Token type for the filter option."""
  token: CustomDashboardFilteredSearchToken!

  """Whether only one value can be selected for the token."""
  unique: Boolean
}

"""Comparison operators for filtered search tokens."""
enum CustomDashboardFilteredSearchOperator {
  """Matches the given value."""
  IS

  """Does not match the given value."""
  IS_NOT

  """Does not match any of the given values."""
  IS_NOT_OR
}

"""Token types available for filtered search."""
enum CustomDashboardFilteredSearchToken {
  """Filter by assignee."""
  ASSIGNEE

  """Filter by author."""
  AUTHOR

  """Filter by label."""
  LABEL

  """Filter by milestone."""
  MILESTONE

  """Filter by target branch."""
  TARGET_BRANCH

  """Filter by source branch."""
  SOURCE_BRANCH
}

"""Toggleable dashboard-level filter."""
input CustomDashboardFilterInput {
  """Whether the filter is enabled."""
  enabled: Boolean
}

"""Filter controls available on the dashboard."""
input CustomDashboardFiltersInput {
  """Date range filter configuration."""
  dateRange: CustomDashboardDateRangeFilterInput

  """Filter to exclude anonymous users from metrics."""
  excludeAnonymousUsers: CustomDashboardFilterInput

  """Filtered search configuration."""
  filteredSearch: CustomDashboardFilteredSearchFilterInput

  """Project filter configuration."""
  projects: CustomDashboardFilterInput
}

"""Position and size of a panel within the dashboard grid."""
input CustomDashboardGridAttributesInput {
  """Number of grid rows the panel spans."""
  height: Int!

  """Maximum height the panel can be resized to."""
  maxHeight: Int

  """Maximum width the panel can be resized to."""
  maxWidth: Int

  """Minimum height the panel can be resized to."""
  minHeight: Int

  """Minimum width the panel can be resized to."""
  minWidth: Int

  """Number of grid columns the panel spans."""
  width: Int!

  """Horizontal grid position of the panel."""
  xPos: Int

  """Vertical grid position of the panel."""
  yPos: Int
}

"""Grid height display mode for the dashboard."""
enum CustomDashboardGridHeight {
  """Default grid height."""
  DEFAULT

  """Compact grid height."""
  COMPACT
}

interface CustomDashboardInterface {
  """Dashboard layout and widget configuration."""
  config: JSON!

  """Timestamp when the dashboard was created."""
  createdAt: Time

  """Optional summary or purpose of the dashboard."""
  description: String

  """Global ID of the dashboard."""
  id: ID!

  """Display name of the dashboard."""
  name: String!

  """Dashboard url slug."""
  slug: String

  """Whether the dashboard is a built-in GitLab dashboard."""
  system: Boolean!
}

"""The connection type for CustomDashboardInterface."""
type CustomDashboardInterfaceConnection {
  """A list of edges."""
  edges: [CustomDashboardInterfaceEdge]

  """A list of nodes."""
  nodes: [CustomDashboardInterface]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomDashboardInterfaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomDashboardInterface
}

"""Single panel within a custom dashboard."""
input CustomDashboardPanelInput {
  """Grid position and size of the panel."""
  gridAttributes: CustomDashboardGridAttributesInput!

  """Display options for the panel."""
  options: CustomDashboardPanelOptionsInput

  """Query overrides applied to the visualization."""
  queryOverrides: CustomDashboardQueryOverridesInput

  """Display title of the panel."""
  title: String!

  """Tooltip for the panel."""
  tooltip: CustomDashboardTooltipInput

  """ID of the visualization to render."""
  visualization: String!
}

"""Display options for a dashboard panel."""
input CustomDashboardPanelOptionsInput {
  """Number of decimal places to display for numeric values."""
  decimalPlaces: Int
}

"""Filters applied to the underlying visualization query."""
input CustomDashboardQueryFiltersInput {
  """Metrics to exclude from the query."""
  excludeMetrics: [String!]

  """Additional include filters."""
  include: [String!]

  """Metrics to include in the query."""
  includeMetrics: [String!]

  """Labels to filter by."""
  labels: [String!]

  """Project topics to filter by."""
  projectTopics: [String!]
}

"""Overrides applied to the visualization query at the panel level."""
input CustomDashboardQueryOverridesInput {
  """Query filter overrides."""
  filters: CustomDashboardQueryFiltersInput

  """Namespace override for the query."""
  namespace: String

  """Time dimension overrides for the query."""
  timeDimensions: JSON
}

"""Scope filter for custom dashboards"""
enum CustomDashboardScope {
  """Return all dashboards."""
  ALL

  """Return only GitLab-provided system dashboards."""
  GITLAB

  """Return only user-created dashboards."""
  USER
}

"""Maturity status of the dashboard."""
enum CustomDashboardStatus {
  """Dashboard is in beta."""
  BETA

  """Dashboard is experimental."""
  EXPERIMENT
}

"""Tooltip displayed on a dashboard panel."""
input CustomDashboardTooltipInput {
  """
  Tooltip text. Must include %{linkStart} and %{linkEnd} if descriptionLink is set.
  """
  description: String!

  """URI linked from within the tooltip description."""
  descriptionLink: String
}

"""A custom emoji uploaded by user"""
type CustomEmoji {
  """Timestamp of when the custom emoji was created."""
  createdAt: Time!

  """Whether the emoji is an external link."""
  external: Boolean!

  """ID of the emoji."""
  id: CustomEmojiID!

  """Name of the emoji."""
  name: String!

  """Link to file of the emoji."""
  url: String!

  """Permissions for the current user on the resource"""
  userPermissions: CustomEmojiPermissions!
}

"""The connection type for CustomEmoji."""
type CustomEmojiConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CustomEmojiEdge]

  """A list of nodes."""
  nodes: [CustomEmoji]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomEmojiEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomEmoji
}

"""
A `CustomEmojiID` is a global ID. It is encoded as a string.

An example `CustomEmojiID` is: `"gid://gitlab/CustomEmoji/1"`.
"""
scalar CustomEmojiID

type CustomEmojiPermissions {
  """If `true`, the user can perform `create_custom_emoji` on this resource"""
  createCustomEmoji: Boolean!

  """If `true`, the user can perform `delete_custom_emoji` on this resource"""
  deleteCustomEmoji: Boolean!

  """If `true`, the user can perform `read_custom_emoji` on this resource"""
  readCustomEmoji: Boolean!
}

type CustomerRelationsContact {
  """State of the contact."""
  active: Boolean!

  """Timestamp the contact was created."""
  createdAt: Time!

  """Description of or notes for the contact."""
  description: String

  """Email address of the contact."""
  email: String

  """First name of the contact."""
  firstName: String!

  """Internal ID of the contact."""
  id: ID!

  """Last name of the contact."""
  lastName: String!

  """Organization of the contact."""
  organization: CustomerRelationsOrganization

  """Phone number of the contact."""
  phone: String

  """Timestamp the contact was last updated."""
  updatedAt: Time!
}

"""The connection type for CustomerRelationsContact."""
type CustomerRelationsContactConnection {
  """A list of edges."""
  edges: [CustomerRelationsContactEdge]

  """A list of nodes."""
  nodes: [CustomerRelationsContact]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of CustomerRelationsContactCreate"""
input CustomerRelationsContactCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group for the contact."""
  groupId: GroupID!

  """Organization for the contact."""
  organizationId: CustomerRelationsOrganizationID

  """First name of the contact."""
  firstName: String!

  """Last name of the contact."""
  lastName: String!

  """Phone number of the contact."""
  phone: String

  """Email address of the contact."""
  email: String

  """Description of or notes for the contact."""
  description: String
}

"""Autogenerated return type of CustomerRelationsContactCreate."""
type CustomerRelationsContactCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Contact after the mutation."""
  contact: CustomerRelationsContact

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type CustomerRelationsContactEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomerRelationsContact
}

"""
A `CustomerRelationsContactID` is a global ID. It is encoded as a string.

An example `CustomerRelationsContactID` is: `"gid://gitlab/CustomerRelations::Contact/1"`.
"""
scalar CustomerRelationsContactID

enum CustomerRelationsContactState {
  """All available contacts."""
  all

  """Active contacts."""
  active

  """Inactive contacts."""
  inactive
}

"""Autogenerated input type of CustomerRelationsContactUpdate"""
input CustomerRelationsContactUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the contact."""
  id: CustomerRelationsContactID!

  """Organization of the contact."""
  organizationId: CustomerRelationsOrganizationID

  """First name of the contact."""
  firstName: String

  """Last name of the contact."""
  lastName: String

  """Phone number of the contact."""
  phone: String

  """Email address of the contact."""
  email: String

  """Description of or notes for the contact."""
  description: String

  """State of the contact."""
  active: Boolean
}

"""Autogenerated return type of CustomerRelationsContactUpdate."""
type CustomerRelationsContactUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Contact after the mutation."""
  contact: CustomerRelationsContact

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type CustomerRelationsOrganization {
  """State of the organization."""
  active: Boolean!

  """Timestamp the organization was created."""
  createdAt: Time!

  """Standard billing rate for the organization."""
  defaultRate: Float

  """Description of or notes for the organization."""
  description: String

  """Internal ID of the organization."""
  id: ID!

  """Name of the organization."""
  name: String!

  """Timestamp the organization was last updated."""
  updatedAt: Time!
}

"""The connection type for CustomerRelationsOrganization."""
type CustomerRelationsOrganizationConnection {
  """A list of edges."""
  edges: [CustomerRelationsOrganizationEdge]

  """A list of nodes."""
  nodes: [CustomerRelationsOrganization]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of CustomerRelationsOrganizationCreate"""
input CustomerRelationsOrganizationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group for the organization."""
  groupId: GroupID!

  """Name of the organization."""
  name: String!

  """Standard billing rate for the organization."""
  defaultRate: Float

  """Description of or notes for the organization."""
  description: String
}

"""Autogenerated return type of CustomerRelationsOrganizationCreate."""
type CustomerRelationsOrganizationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Organization after the mutation."""
  organization: CustomerRelationsOrganization
}

"""An edge in a connection."""
type CustomerRelationsOrganizationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomerRelationsOrganization
}

"""
A `CustomerRelationsOrganizationID` is a global ID. It is encoded as a string.

An example `CustomerRelationsOrganizationID` is: `"gid://gitlab/CustomerRelations::Organization/1"`.
"""
scalar CustomerRelationsOrganizationID

enum CustomerRelationsOrganizationState {
  """All available organizations."""
  all

  """Active organizations."""
  active

  """Inactive organizations."""
  inactive
}

"""Autogenerated input type of CustomerRelationsOrganizationUpdate"""
input CustomerRelationsOrganizationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the organization."""
  id: CustomerRelationsOrganizationID!

  """Name of the organization."""
  name: String

  """Standard billing rate for the organization."""
  defaultRate: Float

  """Description of or notes for the organization."""
  description: String

  """State of the organization."""
  active: Boolean
}

"""Autogenerated return type of CustomerRelationsOrganizationUpdate."""
type CustomerRelationsOrganizationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Organization after the mutation."""
  organization: CustomerRelationsOrganization!
}

"""Represents a custom field"""
type CustomField {
  """Whether the custom field is active."""
  active: Boolean!

  """Timestamp when the custom field was created."""
  createdAt: Time!

  """User that created the custom field."""
  createdBy: UserCore

  """Type of custom field."""
  fieldType: CustomFieldType!

  """Global ID of the custom field."""
  id: IssuablesCustomFieldID!

  """Name of the custom field."""
  name: String!

  """Available options for a select field."""
  selectOptions: [CustomFieldSelectOption!]

  """Timestamp when the custom field was last updated."""
  updatedAt: Time!

  """User that last updated the custom field."""
  updatedBy: UserCore

  """Work item types that the custom field is available on."""
  workItemTypes: [WorkItemType!]
}

"""Autogenerated input type of CustomFieldArchive"""
input CustomFieldArchiveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the custom field."""
  id: IssuablesCustomFieldID!
}

"""Autogenerated return type of CustomFieldArchive."""
type CustomFieldArchivePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Archived custom field."""
  customField: CustomField

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""The connection type for CustomField."""
type CustomFieldConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [CustomFieldEdge]

  """A list of nodes."""
  nodes: [CustomField]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of CustomFieldCreate"""
input CustomFieldCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path where the custom field is created."""
  groupPath: ID!

  """Type of custom field."""
  fieldType: CustomFieldType!

  """Name of the custom field."""
  name: String!

  """Available options for a select field."""
  selectOptions: [CustomFieldSelectOptionInput!]

  """Work item type global IDs associated to the custom field."""
  workItemTypeIds: [WorkItemsTypeID!]
}

"""Autogenerated return type of CustomFieldCreate."""
type CustomFieldCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created custom field."""
  customField: CustomField

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type CustomFieldEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomField
}

"""Represents a custom field select option"""
type CustomFieldSelectOption {
  """Global ID of the custom field select option."""
  id: IssuablesCustomFieldSelectOptionID!

  """Value of the custom field select option."""
  value: String!
}

"""Attributes for the custom field select option"""
input CustomFieldSelectOptionInput {
  """
  Global ID of the custom field select option to update. Creates a new record if not provided.
  """
  id: IssuablesCustomFieldSelectOptionID

  """Value of the custom field select option."""
  value: String!
}

"""Type of custom field"""
enum CustomFieldType {
  """Single select field type."""
  SINGLE_SELECT

  """Multi select field type."""
  MULTI_SELECT

  """Number field type."""
  NUMBER

  """Text field type."""
  TEXT

  """Date field type."""
  DATE
}

"""Autogenerated input type of CustomFieldUnarchive"""
input CustomFieldUnarchiveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the custom field."""
  id: IssuablesCustomFieldID!
}

"""Autogenerated return type of CustomFieldUnarchive."""
type CustomFieldUnarchivePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Unarchived custom field."""
  customField: CustomField

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CustomFieldUpdate"""
input CustomFieldUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the custom field."""
  id: IssuablesCustomFieldID!

  """Name of the custom field."""
  name: String

  """Available options for a select field."""
  selectOptions: [CustomFieldSelectOptionInput!]

  """Work item type global IDs associated to the custom field."""
  workItemTypeIds: [WorkItemsTypeID!]
}

"""Autogenerated return type of CustomFieldUpdate."""
type CustomFieldUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated custom field."""
  customField: CustomField

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type CustomizableAdminPermission {
  """Description of the permission."""
  description: String

  """Localized name of the permission."""
  name: String!

  """Requirements of the permission."""
  requirements: [MemberRoleAdminPermission!]

  """Value of the permission."""
  value: MemberRoleAdminPermission!
}

"""The connection type for CustomizableAdminPermission."""
type CustomizableAdminPermissionConnection {
  """A list of edges."""
  edges: [CustomizableAdminPermissionEdge]

  """A list of nodes."""
  nodes: [CustomizableAdminPermission]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomizableAdminPermissionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomizableAdminPermission
}

"""Represents a customizable dashboard."""
type CustomizableDashboard {
  """Category of dashboard."""
  category: CustomizableDashboardCategory!

  """Project which contains the dashboard definition."""
  configurationProject: Project

  """Description of the dashboard."""
  description: String

  """Errors on yaml definition."""
  errors: [String!]

  """Dashboard global filters."""
  filters: JSON

  """
  Grid cell height of the dashboard. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  gridHeight: CustomizableDashboardGridHeight @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Panels shown on the dashboard."""
  panels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableDashboardPanelConnection

  """Slug of the dashboard."""
  slug: String!

  """
  Status of the dashboard. Introduced in GitLab 17.0: **Status**: Experiment.
  """
  status: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """Title of the dashboard."""
  title: String

  """Indicates whether the dashboard is user-defined or provided by GitLab."""
  userDefined: Boolean!
}

"""Categories for customizable dashboards."""
enum CustomizableDashboardCategory {
  """Analytics category for customizable dashboards."""
  ANALYTICS
}

"""The connection type for CustomizableDashboard."""
type CustomizableDashboardConnection {
  """A list of edges."""
  edges: [CustomizableDashboardEdge]

  """A list of nodes."""
  nodes: [CustomizableDashboard]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomizableDashboardEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomizableDashboard
}

"""Grid heights for customizable dashboards."""
enum CustomizableDashboardGridHeight {
  """
  Grid cell height is 137 pixels per unit. Minimum cell height is 1 unit.
  """
  DEFAULT

  """
  Grid cell height is 10 pixels per unit. Minimum cell height is 10 units.
  """
  COMPACT
}

"""Represents a customizable dashboard panel."""
type CustomizableDashboardPanel {
  """Description of the position and size of the panel."""
  gridAttributes: JSON

  """Overrides for the visualization query object."""
  queryOverrides: JSON

  """Title of the panel."""
  title: String

  """
  Tooltip for the panel containing descriptive text and an optional link.
  """
  tooltip: CustomizableDashboardPanelTooltip

  """Visualizations the user can switch between within the panel."""
  views: [CustomizableDashboardPanelView!]!

  """Visualization of the panel."""
  visualization: CustomizableDashboardVisualization
}

"""The connection type for CustomizableDashboardPanel."""
type CustomizableDashboardPanelConnection {
  """A list of edges."""
  edges: [CustomizableDashboardPanelEdge]

  """A list of nodes."""
  nodes: [CustomizableDashboardPanel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomizableDashboardPanelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomizableDashboardPanel
}

"""Tooltip for a customizable dashboard panel."""
type CustomizableDashboardPanelTooltip {
  """
  Popover text content. When `descriptionLink` is provided, must include
  %{linkStart} and %{linkEnd} placeholders around the link text.
  """
  description: String!

  """
  Optional URL for link insertion in the `description` between %{linkStart} and %{linkEnd} placeholders.
  """
  descriptionLink: String
}

"""
Represents a view that can be selected within a customizable dashboard panel.
"""
type CustomizableDashboardPanelView {
  """Label shown in the segmented control for the view."""
  text: String

  """Visualization rendered when the view is selected."""
  visualization: CustomizableDashboardVisualization
}

"""Represents a customizable dashboard visualization."""
type CustomizableDashboardVisualization {
  """Data of the visualization."""
  data: JSON!

  """Validation errors in the visualization."""
  errors: [String!]

  """Options of the visualization."""
  options: JSON!

  """Slug of the visualization."""
  slug: String!

  """Type of the visualization."""
  type: String!
}

"""The connection type for CustomizableDashboardVisualization."""
type CustomizableDashboardVisualizationConnection {
  """A list of edges."""
  edges: [CustomizableDashboardVisualizationEdge]

  """A list of nodes."""
  nodes: [CustomizableDashboardVisualization]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomizableDashboardVisualizationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomizableDashboardVisualization
}

type CustomizableStandardPermission {
  """Objects the permission is available for."""
  availableFor: [String!]!

  """Description of the permission."""
  description: String

  """Group access levels from which the permission is allowed."""
  enabledForGroupAccessLevels: [AccessLevelEnum!]

  """Project access levels from which the permission is allowed."""
  enabledForProjectAccessLevels: [AccessLevelEnum!]

  """Localized name of the permission."""
  name: String!

  """Requirements of the permission."""
  requirements: [MemberRoleStandardPermission!]

  """Value of the permission."""
  value: MemberRoleStandardPermission!
}

"""The connection type for CustomizableStandardPermission."""
type CustomizableStandardPermissionConnection {
  """A list of edges."""
  edges: [CustomizableStandardPermissionEdge]

  """A list of nodes."""
  nodes: [CustomizableStandardPermission]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type CustomizableStandardPermissionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: CustomizableStandardPermission
}

interface CustomRoleInterface {
  """Timestamp of when the member role was created."""
  createdAt: Time!

  """
  Web UI path to edit the custom role. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  editPath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
}

"""GitLab built-in analytics dashboard (read-only)"""
type CustomSystemDashboard implements CustomDashboardInterface {
  """Dashboard layout and widget configuration."""
  config: JSON!

  """Timestamp when the dashboard was created."""
  createdAt: Time

  """Optional summary or purpose of the dashboard."""
  description: String

  """Global ID of the dashboard."""
  id: ID!

  """Display name of the dashboard."""
  name: String!

  """Dashboard url slug."""
  slug: String

  """Whether the dashboard is a built-in GitLab dashboard."""
  system: Boolean!
}

"""Represents a CVE's Enrichment (EPSS score)."""
type CveEnrichmentType {
  """CVE identifier of relevant vulnerability."""
  cve: String!

  """EPSS score for the CVE."""
  epssScore: Float!

  """Whether the CVE appears in the CISA KEV catalog."""
  isKnownExploit: Boolean!
}

"""Values for a CVSS severity"""
enum CvssSeverity {
  """Not a vulnerability."""
  NONE

  """Low severity."""
  LOW

  """Medium severity."""
  MEDIUM

  """High severity."""
  HIGH

  """Critical severity."""
  CRITICAL
}

"""Represents a vulnerability's CVSS score."""
type CvssType {
  """Base score of the CVSS."""
  baseScore: Float!

  """Overall score of the CVSS."""
  overallScore: Float!

  """Severity calculated from the overall score."""
  severity: CvssSeverity!

  """CVSS vector string."""
  vector: String!

  """Vendor who assigned the CVSS score."""
  vendor: String!

  """Version of the CVSS."""
  version: Float!
}

"""Values for sorting daily usage entries"""
enum DailyUsageSort {
  """Date by ascending order."""
  DATE_ASC

  """Date by descending order."""
  DATE_DESC

  """Credits used by ascending order."""
  CREDITS_USED_ASC

  """Credits used by descending order."""
  CREDITS_USED_DESC
}

"""Autogenerated input type of DastOnDemandScanCreate"""
input DastOnDemandScanCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the site profile belongs to."""
  fullPath: ID!

  """ID of the site profile to be used for the scan."""
  dastSiteProfileId: DastSiteProfileID!

  """ID of the scanner profile to be used for the scan."""
  dastScannerProfileId: DastScannerProfileID
}

"""Autogenerated return type of DastOnDemandScanCreate."""
type DastOnDemandScanCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """URL of the pipeline that was created."""
  pipelineUrl: String
}

"""Represents a DAST Pre Scan Verification"""
type DastPreScanVerification {
  """Pre Scan Verifications Steps."""
  preScanVerificationSteps: [DastPreScanVerificationStep!]

  """Status of the pre scan verification."""
  status: DastPreScanVerificationStatus

  """
  Whether or not the configuration has changed after the last pre scan run.
  """
  valid: Boolean!
}

"""Check type of the pre scan verification step."""
enum DastPreScanVerificationCheckType {
  """Connection check"""
  CONNECTION

  """Authentication check"""
  AUTHENTICATION

  """Crawling check"""
  CRAWLING
}

"""Status of DAST pre scan verification."""
enum DastPreScanVerificationStatus {
  """Pre Scan Verification in execution."""
  RUNNING

  """Pre Scan Verification complete without errors."""
  COMPLETE

  """Pre Scan Verification finished with one or more errors."""
  COMPLETE_WITH_ERRORS

  """Pre Scan Validation unable to finish."""
  FAILED
}

"""Represents a DAST Pre Scan Verification Step"""
type DastPreScanVerificationStep {
  """Type of the pre scan verification check."""
  checkType: DastPreScanVerificationCheckType

  """Errors that occurred in the pre scan verification step."""
  errors: [String!]

  """
  Name of the pre scan verification step. Deprecated in GitLab 15.10: This was renamed.
  """
  name: String @deprecated(reason: "This was renamed. Please use `DastPreScanVerificationStep.checkType`. Deprecated in GitLab 15.10.")

  """Whether or not the pre scan verification step has errors."""
  success: Boolean!
}

"""Represents a DAST Profile"""
type DastProfile {
  """Associated branch."""
  branch: DastProfileBranch

  """
  DAST Pre Scan Verification associated with the site profile. Will always
  return `null` if `dast_on_demand_scans_scheduler` feature flag is disabled.
  """
  dastPreScanVerification: DastPreScanVerification

  """Associated profile schedule."""
  dastProfileSchedule: DastProfileSchedule

  """Associated scanner profile."""
  dastScannerProfile: DastScannerProfile

  """Associated site profile."""
  dastSiteProfile: DastSiteProfile

  """Description of the scan."""
  description: String

  """Relative web path to the edit page of a profile."""
  editPath: String

  """ID of the profile."""
  id: DastProfileID!

  """Name of the profile."""
  name: String

  """Runner tags associated with the profile."""
  tagList: [String!]
}

"""Represents a DAST Profile Branch"""
type DastProfileBranch {
  """Indicates whether or not the branch exists."""
  exists: Boolean

  """Name of the branch."""
  name: String
}

"""Represents DAST Profile Cadence."""
type DastProfileCadence {
  """Duration of the DAST profile cadence."""
  duration: Int

  """Unit for the duration of DAST profile cadence."""
  unit: DastProfileCadenceUnit
}

"""Represents DAST Profile Cadence."""
input DastProfileCadenceInput {
  """Unit for the duration of DAST Profile Cadence."""
  unit: DastProfileCadenceUnit

  """Duration of the DAST Profile Cadence."""
  duration: Int
}

"""Unit for the duration of Dast Profile Cadence."""
enum DastProfileCadenceUnit {
  """DAST Profile Cadence duration in days."""
  DAY

  """DAST Profile Cadence duration in weeks."""
  WEEK

  """DAST Profile Cadence duration in months."""
  MONTH

  """DAST Profile Cadence duration in years."""
  YEAR
}

"""The connection type for DastProfile."""
type DastProfileConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [DastProfileEdge]

  """A list of nodes."""
  nodes: [DastProfile]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of DastProfileCreate"""
input DastProfileCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the profile belongs to."""
  fullPath: ID!

  """Represents a DAST Profile Schedule."""
  dastProfileSchedule: DastProfileScheduleInput

  """Name of the profile."""
  name: String!

  """Description of the profile. Defaults to an empty string."""
  description: String = ""

  """Associated branch."""
  branchName: String

  """ID of the site profile to be associated."""
  dastSiteProfileId: DastSiteProfileID!

  """ID of the scanner profile to be associated."""
  dastScannerProfileId: DastScannerProfileID!

  """Run scan using profile after creation. Defaults to false."""
  runAfterCreate: Boolean = false

  """Indicates the runner tags associated with the profile."""
  tagList: [String!]
}

"""Autogenerated return type of DastProfileCreate."""
type DastProfileCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created profile."""
  dastProfile: DastProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  URL of the pipeline that was created. Requires `runAfterCreate` to be set to `true`.
  """
  pipelineUrl: String
}

"""Autogenerated input type of DastProfileDelete"""
input DastProfileDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the profile to be deleted."""
  id: DastProfileID!
}

"""Autogenerated return type of DastProfileDelete."""
type DastProfileDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type DastProfileEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DastProfile
}

"""
A `DastProfileID` is a global ID. It is encoded as a string.

An example `DastProfileID` is: `"gid://gitlab/Dast::Profile/1"`.
"""
scalar DastProfileID

"""Autogenerated input type of DastProfileRun"""
input DastProfileRunInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Full path for the project the scanner profile belongs to. Deprecated in GitLab
  14.5: Full path not required to qualify Global ID.
  """
  fullPath: ID

  """ID of the profile to be used for the scan."""
  id: DastProfileID!
}

"""Autogenerated return type of DastProfileRun."""
type DastProfileRunPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """URL of the pipeline that was created."""
  pipelineUrl: String
}

"""Represents a DAST profile schedule."""
type DastProfileSchedule {
  """Status of the DAST profile schedule."""
  active: Boolean

  """Cadence of the DAST profile schedule."""
  cadence: DastProfileCadence

  """ID of the DAST profile schedule."""
  id: DastProfileScheduleID!

  """Next run time of the DAST profile schedule in the given timezone."""
  nextRunAt: Time

  """Status of the current owner of the DAST profile schedule."""
  ownerValid: Boolean

  """Start time of the DAST profile schedule in the given timezone."""
  startsAt: Time

  """Time zone of the start time of the DAST profile schedule."""
  timezone: String
}

"""
A `DastProfileScheduleID` is a global ID. It is encoded as a string.

An example `DastProfileScheduleID` is: `"gid://gitlab/Dast::ProfileSchedule/1"`.
"""
scalar DastProfileScheduleID

"""Input type for DAST Profile Schedules"""
input DastProfileScheduleInput {
  """Status of a Dast Profile Schedule."""
  active: Boolean

  """Start time of a Dast Profile Schedule."""
  startsAt: Time

  """Time Zone for the Start time of a Dast Profile Schedule."""
  timezone: String

  """Cadence of a Dast Profile Schedule."""
  cadence: DastProfileCadenceInput
}

"""Autogenerated input type of DastProfileUpdate"""
input DastProfileUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the profile to be deleted."""
  id: DastProfileID!

  """
  Project the profile belongs to. Deprecated in GitLab 14.5: Full path not required to qualify Global ID.
  """
  fullPath: ID

  """Represents a DAST profile schedule."""
  dastProfileSchedule: DastProfileScheduleInput

  """Name of the profile."""
  name: String

  """Description of the profile. Defaults to an empty string."""
  description: String = ""

  """Associated branch."""
  branchName: String

  """ID of the site profile to be associated."""
  dastSiteProfileId: DastSiteProfileID

  """ID of the scanner profile to be associated."""
  dastScannerProfileId: DastScannerProfileID

  """Run scan using profile after update. Defaults to false."""
  runAfterUpdate: Boolean = false

  """Indicates the runner tags associated with the profile."""
  tagList: [String!]
}

"""Autogenerated return type of DastProfileUpdate."""
type DastProfileUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated profile."""
  dastProfile: DastProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  The URL of the pipeline that was created. Requires the input argument
  `runAfterUpdate` to be set to `true` when calling the mutation, otherwise no
  pipeline will be created.
  """
  pipelineUrl: String
}

"""Scan method to be used by the scanner."""
enum DastScanMethodType {
  """Website scan method."""
  WEBSITE

  """OpenAPI scan method."""
  OPENAPI

  """HAR scan method."""
  HAR

  """Postman scan method."""
  POSTMAN_COLLECTION

  """GraphQL scan method."""
  GRAPHQL
}

"""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."""
  id: DastScannerProfileID!

  """Name of the DAST scanner profile."""
  profileName: String

  """List of security policy names that are referencing given project."""
  referencedInSecurityPolicies: [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!

  """Maximum number of minutes allowed for the spider to traverse the site."""
  spiderTimeout: Int

  """
  Runner tags associated with the scanner profile. Deprecated in GitLab 15.8: Moved to DastProfile.
  """
  tagList: [String!] @deprecated(reason: "Moved to DastProfile. Deprecated in GitLab 15.8.")

  """
  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

  """Project the scanner profile belongs to."""
  fullPath: ID!

  """Name of the scanner profile."""
  profileName: String!

  """Maximum number of minutes allowed for the spider to traverse the site."""
  spiderTimeout: Int

  """
  Maximum number of seconds allowed for the site under test to respond to a request.
  """
  targetTimeout: Int

  """
  Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan.
  """
  scanType: DastScanTypeEnum = PASSIVE

  """
  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

  """
  Indicates if debug messages should be included in DAST console output. True to include the debug messages.
  """
  showDebugMessages: Boolean = false

  """
  Indicates the runner tags associated with the scanner profile. Deprecated in GitLab 15.8: Moved to DastProfile.
  """
  tagList: [String!]
}

"""Autogenerated return type of DastScannerProfileCreate."""
type DastScannerProfileCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created scanner profile."""
  dastScannerProfile: DastScannerProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  ID of the scanner profile. Deprecated in GitLab 14.10: use `dastScannerProfile` field.
  """
  id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in GitLab 14.10.")
}

"""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. Deprecated in GitLab
  14.5: Full path not required to qualify Global ID.
  """
  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 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
}

"""
A `DastScannerProfileID` is a global ID. It is encoded as a string.

An example `DastScannerProfileID` is: `"gid://gitlab/DastScannerProfile/1"`.
"""
scalar DastScannerProfileID

"""Autogenerated input type of DastScannerProfileUpdate"""
input DastScannerProfileUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Project the scanner profile belongs to. Deprecated in GitLab 14.5: Full path not required to qualify Global ID.
  """
  fullPath: ID

  """ID of the scanner profile to be updated."""
  id: DastScannerProfileID!

  """Name of the scanner profile."""
  profileName: String!

  """Maximum number of minutes allowed for the spider to traverse the site."""
  spiderTimeout: Int!

  """
  Maximum number of seconds allowed for the site under test to respond to a request.
  """
  targetTimeout: Int!

  """
  Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan.
  """
  scanType: DastScanTypeEnum

  """
  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

  """
  Indicates if debug messages should be included in DAST console output. True to include the debug messages.
  """
  showDebugMessages: Boolean

  """
  Indicates the runner tags associated with the scanner profile. Deprecated in GitLab 15.8: Moved to DastProfile.
  """
  tagList: [String!]
}

"""Autogenerated return type of DastScannerProfileUpdate."""
type DastScannerProfileUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated scanner profile."""
  dastScannerProfile: DastScannerProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  ID of the scanner profile. Deprecated in GitLab 14.10: use `dastScannerProfile` field.
  """
  id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in GitLab 14.10.")
}

enum DastScanTypeEnum {
  """
  Passive DAST scan. This scan will not make active attacks against the target site.
  """
  PASSIVE

  """
  Active DAST scan. This scan will make active attacks against the target site.
  """
  ACTIVE
}

"""Represents a DAST Site Profile"""
type DastSiteProfile {
  """Target authentication details."""
  auth: DastSiteProfileAuth

  """Relative web path to the edit page of a site profile."""
  editPath: String

  """URLs to skip during an authenticated scan."""
  excludedUrls: [String!]

  """ID of the site profile."""
  id: DastSiteProfileID!

  """Normalized URL of the target to be scanned."""
  normalizedTargetUrl: String

  """Optional variables that can be configured for DAST scans."""
  optionalVariables: [JSON!]

  """Name of the site profile."""
  profileName: String

  """List of security policy names that are referencing given project."""
  referencedInSecurityPolicies: [String!]

  """
  Comma-separated list of request header names and values to be added to every request made by DAST.
  """
  requestHeaders: String

  """Scan File Path used as input for the scanner."""
  scanFilePath: String

  """Scan method used by the scanner."""
  scanMethod: DastScanMethodType

  """Type of target to be scanned."""
  targetType: DastTargetTypeEnum

  """URL of the target to be scanned."""
  targetUrl: String

  """Permissions for the current user on the resource"""
  userPermissions: DastSiteProfilePermissions!

  """Site profile validation start time."""
  validationStartedAt: Time

  """Current validation status of the site profile."""
  validationStatus: DastSiteProfileValidationStatusEnum
}

"""DastSiteProfile authentication"""
type DastSiteProfileAuth {
  """Indicates whether authentication is enabled."""
  enabled: Boolean

  """Redacted password to authenticate with on the target website."""
  password: String

  """Name of password field at the sign-in HTML form."""
  passwordField: String

  """Name or ID of sign-in submit button at the sign-in HTML form."""
  submitField: String

  """
  The URL of the page containing the sign-in HTML form on the target website.
  """
  url: String

  """Username to authenticate with on the target website."""
  username: String

  """Name of username field at the sign-in HTML form."""
  usernameField: String
}

"""Input type for DastSiteProfile authentication"""
input DastSiteProfileAuthInput {
  """Indicates whether authentication is enabled."""
  enabled: Boolean

  """
  The URL of the page containing the sign-in HTML form on the target website.
  """
  url: String

  """Name of username field at the sign-in HTML form."""
  usernameField: String

  """Name of password field at the sign-in HTML form."""
  passwordField: String

  """Username to authenticate with on the target."""
  username: String

  """Password to authenticate with on the target."""
  password: String

  """Name or ID of sign-in submit button at the sign-in HTML form."""
  submitField: String
}

"""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

  """Name of the site profile."""
  profileName: String!

  """URL of the target to be scanned."""
  targetUrl: String

  """Type of target to be scanned."""
  targetType: DastTargetTypeEnum

  """Scan method by the scanner."""
  scanMethod: DastScanMethodType

  """File Path or URL used as input for the scan method."""
  scanFilePath: String

  """
  Comma-separated list of request header names and values to be added to every request made by DAST.
  """
  requestHeaders: String

  """Parameters for authentication."""
  auth: DastSiteProfileAuthInput

  """Project the site profile belongs to."""
  fullPath: ID!

  """URLs to skip during an authenticated scan. Defaults to `[]`."""
  excludedUrls: [String!] = []

  """Optional variables that can be configured for DAST scans."""
  optionalVariables: [JSON!] = []
}

"""Autogenerated return type of DastSiteProfileCreate."""
type DastSiteProfileCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Site Profile object."""
  dastSiteProfile: DastSiteProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  ID of the site profile. Deprecated in GitLab 14.10: use `dastSiteProfile.id` field.
  """
  id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in GitLab 14.10.")
}

"""Autogenerated input type of DastSiteProfileDelete"""
input DastSiteProfileDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Project the site profile belongs to. Deprecated in GitLab 14.5: Full path not required to qualify Global ID.
  """
  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 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
}

"""
A `DastSiteProfileID` is a global ID. It is encoded as a string.

An example `DastSiteProfileID` is: `"gid://gitlab/DastSiteProfile/1"`.
"""
scalar DastSiteProfileID

"""Check permissions for the current user on site profile"""
type DastSiteProfilePermissions {
  """
  If `true`, 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

  """Name of the site profile."""
  profileName: String!

  """URL of the target to be scanned."""
  targetUrl: String

  """Type of target to be scanned."""
  targetType: DastTargetTypeEnum

  """Scan method by the scanner."""
  scanMethod: DastScanMethodType

  """File Path or URL used as input for the scan method."""
  scanFilePath: String

  """
  Comma-separated list of request header names and values to be added to every request made by DAST.
  """
  requestHeaders: String

  """Parameters for authentication."""
  auth: DastSiteProfileAuthInput

  """
  Project the site profile belongs to. Deprecated in GitLab 14.5: Full path not required to qualify Global ID.
  """
  fullPath: ID

  """ID of the site profile to be updated."""
  id: DastSiteProfileID!

  """URLs to skip during an authenticated scan."""
  excludedUrls: [String!]

  """Optional variables that can be configured for DAST scans."""
  optionalVariables: [JSON!]
}

"""Autogenerated return type of DastSiteProfileUpdate."""
type DastSiteProfileUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Site profile object."""
  dastSiteProfile: DastSiteProfile

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  ID of the site profile. Deprecated in GitLab 14.10: use `dastSiteProfile.id` field.
  """
  id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in GitLab 14.10.")
}

enum DastSiteProfileValidationStatusEnum {
  """No site validation exists."""
  NONE

  """Site validation process has not started."""
  PENDING_VALIDATION

  """Site validation process is in progress."""
  INPROGRESS_VALIDATION

  """Site validation process finished successfully."""
  PASSED_VALIDATION

  """Site validation process finished but failed."""
  FAILED_VALIDATION
}

"""Autogenerated input type of DastSiteTokenCreate"""
input DastSiteTokenCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the site token belongs to."""
  fullPath: ID!

  """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 the mutation."""
  errors: [String!]!

  """ID of the site token."""
  id: DastSiteTokenID

  """Current validation status of the target."""
  status: DastSiteProfileValidationStatusEnum

  """Token string."""
  token: String
}

"""
A `DastSiteTokenID` is a global ID. It is encoded as a string.

An example `DastSiteTokenID` is: `"gid://gitlab/DastSiteToken/1"`.
"""
scalar DastSiteTokenID

"""Represents a DAST Site Validation"""
type DastSiteValidation {
  """Global ID of the site validation."""
  id: DastSiteValidationID!

  """Normalized URL of the target to be validated."""
  normalizedTargetUrl: String

  """Status of the site validation."""
  status: DastSiteProfileValidationStatusEnum!

  """Timestamp of when the validation started."""
  validationStartedAt: Time
}

"""The connection type for DastSiteValidation."""
type DastSiteValidationConnection {
  """A list of edges."""
  edges: [DastSiteValidationEdge]

  """A list of nodes."""
  nodes: [DastSiteValidation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of DastSiteValidationCreate"""
input DastSiteValidationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the site profile belongs to."""
  fullPath: ID!

  """ID of the site token."""
  dastSiteTokenId: DastSiteTokenID!

  """Path to be requested during validation."""
  validationPath: String!

  """Validation strategy to be used."""
  strategy: DastSiteValidationStrategyEnum
}

"""Autogenerated return type of DastSiteValidationCreate."""
type DastSiteValidationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """ID of the site validation."""
  id: DastSiteValidationID

  """Current validation status."""
  status: DastSiteProfileValidationStatusEnum
}

"""An edge in a connection."""
type DastSiteValidationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DastSiteValidation
}

"""
A `DastSiteValidationID` is a global ID. It is encoded as a string.

An example `DastSiteValidationID` is: `"gid://gitlab/DastSiteValidation/1"`.
"""
scalar DastSiteValidationID

"""Autogenerated input type of DastSiteValidationRevoke"""
input DastSiteValidationRevokeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the site validation belongs to."""
  fullPath: ID!

  """Normalized URL of the target to be revoked."""
  normalizedTargetUrl: String!
}

"""Autogenerated return type of DastSiteValidationRevoke."""
type DastSiteValidationRevokePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

enum DastSiteValidationStatusEnum {
  """Site validation process has not started."""
  PENDING_VALIDATION

  """Site validation process is in progress."""
  INPROGRESS_VALIDATION

  """Site validation process finished successfully."""
  PASSED_VALIDATION

  """Site validation process finished but failed."""
  FAILED_VALIDATION
}

enum DastSiteValidationStrategyEnum {
  """Text file validation."""
  TEXT_FILE

  """Header validation."""
  HEADER

  """Meta tag validation."""
  META_TAG
}

enum DastTargetTypeEnum {
  """Website target."""
  WEBSITE

  """API target."""
  API
}

"""Color of the data visualization palette"""
enum DataVisualizationColorEnum {
  """Blue color"""
  BLUE

  """Orange color"""
  ORANGE

  """Aqua color"""
  AQUA

  """Green color"""
  GREEN

  """Magenta color"""
  MAGENTA
}

"""Weight of the data visualization palette"""
enum DataVisualizationWeightEnum {
  """50 weight"""
  WEIGHT_50

  """100 weight"""
  WEIGHT_100

  """200 weight"""
  WEIGHT_200

  """300 weight"""
  WEIGHT_300

  """400 weight"""
  WEIGHT_400

  """500 weight"""
  WEIGHT_500

  """600 weight"""
  WEIGHT_600

  """700 weight"""
  WEIGHT_700

  """800 weight"""
  WEIGHT_800

  """900 weight"""
  WEIGHT_900

  """950 weight"""
  WEIGHT_950
}

"""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

  """Global ID of the annotation to delete."""
  id: String!
}

"""Autogenerated return type of DeleteAnnotation."""
type DeleteAnnotationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DeleteContainerProtectionRepositoryRule"""
input DeleteContainerProtectionRepositoryRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the container repository protection rule to delete."""
  id: ContainerRegistryProtectionRuleID!
}

"""Autogenerated return type of DeleteContainerProtectionRepositoryRule."""
type DeleteContainerProtectionRepositoryRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Container repository protection rule that was deleted successfully."""
  containerProtectionRepositoryRule: ContainerProtectionRepositoryRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DeleteContainerProtectionTagRule"""
input DeleteContainerProtectionTagRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the tag protection rule to delete."""
  id: ContainerRegistryProtectionTagRuleID!
}

"""Autogenerated return type of DeleteContainerProtectionTagRule."""
type DeleteContainerProtectionTagRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted protection rule for container image tags."""
  containerProtectionTagRule: ContainerProtectionTagRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DeleteConversationThread"""
input DeleteConversationThreadInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the thread to delete."""
  threadId: AiConversationThreadID!
}

"""Autogenerated return type of DeleteConversationThread."""
type DeleteConversationThreadPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """List of errors that occurred whilst trying to delete the thread."""
  errors: [String!]!

  """Returns true if thread was successfully deleted."""
  success: Boolean!
}

"""Autogenerated input type of DeleteCustomDashboard"""
input DeleteCustomDashboardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the dashboard to delete."""
  id: AnalyticsCustomDashboardsDashboardID!
}

"""Autogenerated return type of DeleteCustomDashboard."""
type DeleteCustomDashboardPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted dashboard."""
  dashboard: CustomDashboard

  """Errors encountered during deletion."""
  errors: [String!]!
}

type DeletedNote {
  """ID of the discussion for the deleted note."""
  discussionId: DiscussionID

  """ID of the deleted note."""
  id: NoteID!

  """Whether deleted note is the last note in the discussion."""
  lastDiscussionNote: Boolean
}

"""Autogenerated input type of DeleteDuoWorkflowsWorkflow"""
input DeleteDuoWorkflowsWorkflowInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the workflow to delete."""
  workflowId: AiDuoWorkflowsWorkflowID!
}

"""Autogenerated return type of DeleteDuoWorkflowsWorkflow."""
type DeleteDuoWorkflowsWorkflowPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """List of errors that occurred whilst trying to delete the workflow."""
  errors: [String!]!

  """Returns true if workflow was successfully deleted."""
  success: Boolean!
}

"""Autogenerated input type of DeleteGroupCustomAttribute"""
input DeleteGroupCustomAttributeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group."""
  groupPath: ID!

  """Key of the custom attribute to delete."""
  key: String!
}

"""Autogenerated return type of DeleteGroupCustomAttribute."""
type DeleteGroupCustomAttributePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted custom attribute."""
  customAttribute: CustomAttribute

  """Errors encountered during 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

  """Number of matching jobs deleted."""
  deletedJobs: Int

  """Queue size after processing."""
  queueSize: Int
}

"""Autogenerated input type of DeletePackagesProtectionRule"""
input DeletePackagesProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the package protection rule to delete."""
  id: PackagesProtectionRuleID!
}

"""Autogenerated return type of DeletePackagesProtectionRule."""
type DeletePackagesProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Packages protection rule that was deleted successfully."""
  packageProtectionRule: PackagesProtectionRule
}

"""Autogenerated input type of DeletePagesDeployment"""
input DeletePagesDeploymentInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Pages Deployment."""
  id: PagesDeploymentID!
}

"""Autogenerated return type of DeletePagesDeployment."""
type DeletePagesDeploymentPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted Pages Deployment."""
  pagesDeployment: PagesDeployment!
}

"""Autogenerated input type of DeleteProjectCustomAttribute"""
input DeleteProjectCustomAttributeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Key of the custom attribute to delete."""
  key: String!
}

"""Autogenerated return type of DeleteProjectCustomAttribute."""
type DeleteProjectCustomAttributePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted custom attribute."""
  customAttribute: CustomAttribute

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DeleteTerraformStateProtectionRule"""
input DeleteTerraformStateProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Terraform state protection rule to delete."""
  id: TerraformStateProtectionRuleID!
}

"""Autogenerated return type of DeleteTerraformStateProtectionRule."""
type DeleteTerraformStateProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Terraform state protection rule that was deleted. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  terraformStateProtectionRule: TerraformStateProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
}

"""Autogenerated input type of DeleteUserCustomAttribute"""
input DeleteUserCustomAttributeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user."""
  userId: UserID!

  """Key of the custom attribute to delete."""
  key: String!
}

"""Autogenerated return type of DeleteUserCustomAttribute."""
type DeleteUserCustomAttributePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted custom attribute."""
  customAttribute: CustomAttribute

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""A software dependency used by a project"""
type Dependency implements DependencyInterface {
  """Version of the dependency."""
  componentVersion: ComponentVersion

  """
  Ancestor dependency paths for a dependency. \
        Returns `null` if `dependency_graph_graphql` feature flag is disabled.
  Introduced in GitLab 18.2: **Status**: Experiment.
  """
  dependencyPaths(
    """Fetch paths after the cursor."""
    after: String

    """Fetch paths before the cursor."""
    before: String

    """Number of paths to fetch."""
    limit: Int
  ): DependencyPathPage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Indicates whether the dependency has any dependency paths. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  hasDependencyPaths: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """ID of the dependency."""
  id: GlobalID!

  """Licenses associated to the dependency."""
  licenses: [License!]

  """Information about where the dependency is located."""
  location: Location

  """
  Indicates whether the dependency is a malware package. Returns `true` if a
  malware package is identified (regardless of add-on status). Returns `false`
  when the SSCS add-on is active and the package is not a malware package.
  Returns `null` when the add-on is not active. Introduced in GitLab 19.1:
  **Status**: Experiment.
  """
  malware: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Name of the dependency."""
  name: String!

  """Description of the tool used to manage the dependency."""
  packager: PackageManager

  """Information about reachability of a dependency."""
  reachability: ReachabilityType

  """
  Version of the dependency. Deprecated in GitLab 18.1: Replaced by component_version.
  """
  version: String @deprecated(reason: "Replaced by component_version. Deprecated in GitLab 18.1.")

  """Vulnerabilities associated with the dependency."""
  vulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): VulnerabilityConnection

  """Number of vulnerabilities within the dependency."""
  vulnerabilityCount: Int!
}

"""A software dependency aggregation used by a group"""
type DependencyAggregation implements DependencyInterface {
  """Version of the dependency."""
  componentVersion: ComponentVersion

  """
  Ancestor dependency paths for a dependency. \
        Returns `null` if `dependency_graph_graphql` feature flag is disabled.
  Introduced in GitLab 18.2: **Status**: Experiment.
  """
  dependencyPaths(
    """Fetch paths after the cursor."""
    after: String

    """Fetch paths before the cursor."""
    before: String

    """Number of paths to fetch."""
    limit: Int
  ): DependencyPathPage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """ID of the dependency."""
  id: GlobalID!

  """Licenses associated to the dependency."""
  licenses: [License!]

  """Information about where the dependency is located."""
  location: Location

  """
  Indicates whether the dependency is a malware package. Returns `true` if a
  malware package is identified (regardless of add-on status). Returns `false`
  when the SSCS add-on is active and the package is not a malware package.
  Returns `null` when the add-on is not active. Introduced in GitLab 19.1:
  **Status**: Experiment.
  """
  malware: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Name of the dependency."""
  name: String!

  """Number of occurrences of the dependency across projects."""
  occurrenceCount: Int!

  """Description of the tool used to manage the dependency."""
  packager: PackageManager

  """Information about reachability of a dependency."""
  reachability: ReachabilityType

  """
  Version of the dependency. Deprecated in GitLab 18.1: Replaced by component_version.
  """
  version: String @deprecated(reason: "Replaced by component_version. Deprecated in GitLab 18.1.")

  """Vulnerabilities associated with the dependency."""
  vulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): VulnerabilityConnection

  """Number of vulnerabilities within the dependency."""
  vulnerabilityCount: Int!
}

"""The connection type for DependencyAggregation."""
type DependencyAggregationConnection {
  """A list of edges."""
  edges: [DependencyAggregationEdge]

  """A list of nodes."""
  nodes: [DependencyAggregation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyAggregationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyAggregation
}

"""The connection type for Dependency."""
type DependencyConnection {
  """A list of edges."""
  edges: [DependencyEdge]

  """A list of nodes."""
  nodes: [Dependency]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Dependency
}

"""Represents policy fields related to the dependency firewall policy."""
type DependencyFirewallPolicyAttributesType {
  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!
}

interface DependencyInterface {
  """Version of the dependency."""
  componentVersion: ComponentVersion

  """
  Ancestor dependency paths for a dependency. \
        Returns `null` if `dependency_graph_graphql` feature flag is disabled.
  Introduced in GitLab 18.2: **Status**: Experiment.
  """
  dependencyPaths(
    """Fetch paths after the cursor."""
    after: String

    """Fetch paths before the cursor."""
    before: String

    """Number of paths to fetch."""
    limit: Int
  ): DependencyPathPage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """ID of the dependency."""
  id: GlobalID!

  """Licenses associated to the dependency."""
  licenses: [License!]

  """Information about where the dependency is located."""
  location: Location

  """
  Indicates whether the dependency is a malware package. Returns `true` if a
  malware package is identified (regardless of add-on status). Returns `false`
  when the SSCS add-on is active and the package is not a malware package.
  Returns `null` when the add-on is not active. Introduced in GitLab 19.1:
  **Status**: Experiment.
  """
  malware: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Name of the dependency."""
  name: String!

  """Description of the tool used to manage the dependency."""
  packager: PackageManager

  """Information about reachability of a dependency."""
  reachability: ReachabilityType

  """
  Version of the dependency. Deprecated in GitLab 18.1: Replaced by component_version.
  """
  version: String @deprecated(reason: "Replaced by component_version. Deprecated in GitLab 18.1.")

  """Vulnerabilities associated with the dependency."""
  vulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): VulnerabilityConnection

  """Number of vulnerabilities within the dependency."""
  vulnerabilityCount: Int!
}

"""Represents metadata associated with a dependency link"""
union DependencyLinkMetadata = NugetDependencyLinkMetadata

"""
Represents the Geo replication and verification state of a `dependency_list_export_part_upload`
"""
type DependencyListExportPartUploadRegistry {
  """
  Indicate if the checksums of the DependencyListExportPartUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DependencyListExportPartUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this DependencyListExportPartUploadRegistry
  """
  dataManagementDetailsPath: String

  """ID of the Dependency List Export Part Upload."""
  dependencyListExportPartUploadId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DependencyListExportPartUploadRegistry"""
  id: ID!

  """
  Error message during sync of the DependencyListExportPartUploadRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DependencyListExportPartUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the DependencyListExportPartUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the DependencyListExportPartUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the DependencyListExportPartUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DependencyListExportPartUploadRegistry
  """
  retryCount: Int

  """Sync state of the DependencyListExportPartUploadRegistry"""
  state: RegistryState

  """The local checksum of the DependencyListExportPartUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DependencyListExportPartUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the DependencyListExportPartUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the DependencyListExportPartUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DependencyListExportPartUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of DependencyListExportPartUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the DependencyListExportPartUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DependencyListExportPartUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for DependencyListExportPartUploadRegistry."""
type DependencyListExportPartUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DependencyListExportPartUploadRegistryEdge]

  """A list of nodes."""
  nodes: [DependencyListExportPartUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyListExportPartUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyListExportPartUploadRegistry
}

"""
Represents the Geo replication and verification state of a `dependency_list_export_upload`
"""
type DependencyListExportUploadRegistry {
  """
  Indicate if the checksums of the DependencyListExportUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DependencyListExportUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this DependencyListExportUploadRegistry
  """
  dataManagementDetailsPath: String

  """ID of the Dependency List Export Upload."""
  dependencyListExportUploadId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DependencyListExportUploadRegistry"""
  id: ID!

  """Error message during sync of the DependencyListExportUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DependencyListExportUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the DependencyListExportUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the DependencyListExportUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the DependencyListExportUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DependencyListExportUploadRegistry
  """
  retryCount: Int

  """Sync state of the DependencyListExportUploadRegistry"""
  state: RegistryState

  """The local checksum of the DependencyListExportUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DependencyListExportUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the DependencyListExportUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the DependencyListExportUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DependencyListExportUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of DependencyListExportUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the DependencyListExportUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DependencyListExportUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for DependencyListExportUploadRegistry."""
type DependencyListExportUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DependencyListExportUploadRegistryEdge]

  """A list of nodes."""
  nodes: [DependencyListExportUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyListExportUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyListExportUploadRegistry
}

"""Location of a software dependency within a project."""
type DependencyLocation {
  """Indicates whether the dependency has any dependency paths."""
  hasDependencyPaths: Boolean!

  """Information about where the dependency is located."""
  location: Location

  """Global ID of the SBOM occurrence."""
  occurrenceId: SbomOccurrenceID!

  """Project containing the dependency."""
  project: Project
}

"""The connection type for DependencyLocation."""
type DependencyLocationConnection {
  """A list of edges."""
  edges: [DependencyLocationEdge]

  """A list of nodes."""
  nodes: [DependencyLocation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyLocationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyLocation
}

"""Ancestor path of a given dependency."""
type DependencyPath {
  """Indicates if the path is cyclic."""
  isCyclic: Boolean!

  """Name of the dependency."""
  path: [DependencyPathPartial!]!
}

"""Edge for a paginated dependency path for SBOM occurrences"""
type DependencyPathEdge {
  """Cursor for use in pagination."""
  cursor: String!

  """Dependency path node."""
  node: DependencyPath
}

"""Paginated dependency paths for SBOM occurrences"""
type DependencyPathPage {
  """List of dependency path edges."""
  edges: [DependencyPathEdge!]!

  """List of dependency paths."""
  nodes: [DependencyPath!]!

  """Pagination information for dependency paths."""
  pageInfo: DependencyPathPageInfo!
}

type DependencyPathPageInfo {
  """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
}

"""Ancestor path partial of a given dependency."""
type DependencyPathPartial {
  """Name of the dependency."""
  name: String!

  """Version of the dependency."""
  version: String!
}

"""Dependency proxy blob"""
type DependencyProxyBlob {
  """Date of creation."""
  createdAt: Time!

  """Name of the blob."""
  fileName: String!

  """Size of the blob file."""
  size: String!

  """Date of most recent update."""
  updatedAt: Time!
}

"""The connection type for DependencyProxyBlob."""
type DependencyProxyBlobConnection {
  """A list of edges."""
  edges: [DependencyProxyBlobEdge]

  """A list of nodes."""
  nodes: [DependencyProxyBlob]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyProxyBlobEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyProxyBlob
}

"""
Represents the Geo replication and verification state of a dependency_proxy_blob
"""
type DependencyProxyBlobRegistry {
  """
  Indicate if the checksums of the DependencyProxyBlobRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DependencyProxyBlobRegistry was created"""
  createdAt: Time

  """Path to the data management view for this DependencyProxyBlobRegistry"""
  dataManagementDetailsPath: String

  """ID of the Dependency Proxy Blob."""
  dependencyProxyBlobId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DependencyProxyBlobRegistry"""
  id: ID!

  """Error message during sync of the DependencyProxyBlobRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DependencyProxyBlobRegistry
  """
  lastSyncedAt: Time

  """Indicate if the DependencyProxyBlobRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the DependencyProxyBlobRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the DependencyProxyBlobRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DependencyProxyBlobRegistry
  """
  retryCount: Int

  """Sync state of the DependencyProxyBlobRegistry"""
  state: RegistryState

  """The local checksum of the DependencyProxyBlobRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DependencyProxyBlobRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the DependencyProxyBlobRegistry"""
  verificationFailure: String

  """Timestamp after which the DependencyProxyBlobRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DependencyProxyBlobRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of DependencyProxyBlobRegistry started"""
  verificationStartedAt: Time

  """Verification state of the DependencyProxyBlobRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DependencyProxyBlobRegistry
  """
  verifiedAt: Time
}

"""The connection type for DependencyProxyBlobRegistry."""
type DependencyProxyBlobRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DependencyProxyBlobRegistryEdge]

  """A list of nodes."""
  nodes: [DependencyProxyBlobRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyProxyBlobRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyProxyBlobRegistry
}

"""Group-level Dependency Proxy TTL policy settings"""
type DependencyProxyImageTtlGroupPolicy {
  """Timestamp of creation."""
  createdAt: Time

  """Indicates whether the policy is enabled or disabled."""
  enabled: Boolean!

  """Number of days to retain a cached image file."""
  ttl: Int

  """Timestamp of the most recent update."""
  updatedAt: Time
}

"""Dependency proxy manifest"""
type DependencyProxyManifest {
  """Date of creation."""
  createdAt: Time!

  """Digest of the manifest."""
  digest: String!

  """Name of the manifest."""
  fileName: String!

  """ID of the manifest."""
  id: DependencyProxyManifestID!

  """Name of the image."""
  imageName: String!

  """Size of the manifest file."""
  size: String!

  """
  Status of the manifest (default, pending_destruction, processing, error)
  """
  status: DependencyProxyManifestStatus!

  """Date of most recent update."""
  updatedAt: Time!
}

"""The connection type for DependencyProxyManifest."""
type DependencyProxyManifestConnection {
  """A list of edges."""
  edges: [DependencyProxyManifestEdge]

  """A list of nodes."""
  nodes: [DependencyProxyManifest]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyProxyManifestEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyProxyManifest
}

"""
A `DependencyProxyManifestID` is a global ID. It is encoded as a string.

An example `DependencyProxyManifestID` is: `"gid://gitlab/DependencyProxy::Manifest/1"`.
"""
scalar DependencyProxyManifestID

"""
Represents the Geo replication and verification state of a dependency_proxy_manifest
"""
type DependencyProxyManifestRegistry {
  """
  Indicate if the checksums of the DependencyProxyManifestRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DependencyProxyManifestRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this DependencyProxyManifestRegistry
  """
  dataManagementDetailsPath: String

  """ID of the Dependency Proxy Manifest."""
  dependencyProxyManifestId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DependencyProxyManifestRegistry"""
  id: ID!

  """Error message during sync of the DependencyProxyManifestRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DependencyProxyManifestRegistry
  """
  lastSyncedAt: Time

  """Indicate if the DependencyProxyManifestRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the DependencyProxyManifestRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the DependencyProxyManifestRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DependencyProxyManifestRegistry
  """
  retryCount: Int

  """Sync state of the DependencyProxyManifestRegistry"""
  state: RegistryState

  """The local checksum of the DependencyProxyManifestRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DependencyProxyManifestRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the DependencyProxyManifestRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the DependencyProxyManifestRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DependencyProxyManifestRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of DependencyProxyManifestRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the DependencyProxyManifestRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DependencyProxyManifestRegistry
  """
  verifiedAt: Time
}

"""The connection type for DependencyProxyManifestRegistry."""
type DependencyProxyManifestRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DependencyProxyManifestRegistryEdge]

  """A list of nodes."""
  nodes: [DependencyProxyManifestRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DependencyProxyManifestRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DependencyProxyManifestRegistry
}

enum DependencyProxyManifestStatus {
  """Dependency proxy manifest has a status of default."""
  DEFAULT

  """Dependency proxy manifest has a status of pending_destruction."""
  PENDING_DESTRUCTION

  """Dependency proxy manifest has a status of processing."""
  PROCESSING

  """Dependency proxy manifest has a status of error."""
  ERROR
}

"""Project-level Dependency Proxy for packages settings"""
type DependencyProxyPackagesSetting {
  """
  Indicates whether the dependency proxy for packages is enabled for the project.
  """
  enabled: Boolean!

  """URL for the external Maven packages registry."""
  mavenExternalRegistryUrl: String

  """Username for the external Maven packages registry."""
  mavenExternalRegistryUsername: String
}

"""Group-level Dependency Proxy settings"""
type DependencyProxySetting {
  """Indicates whether the dependency proxy is enabled for the group."""
  enabled: Boolean!

  """
  Identity credential used to authenticate with Docker Hub when pulling images.
  Can be a username (for password or personal access token (PAT)) or
  organization name (for organization access token (OAT)).
  """
  identity: String
}

"""Values for sorting dependencies"""
enum DependencySort {
  """Name by descending order."""
  NAME_DESC

  """Name by ascending order."""
  NAME_ASC

  """Packager by descending order."""
  PACKAGER_DESC

  """Packager by ascending order."""
  PACKAGER_ASC

  """Severity by descending order."""
  SEVERITY_DESC

  """Severity by ascending order."""
  SEVERITY_ASC

  """License by ascending order."""
  LICENSE_ASC

  """License by descending order."""
  LICENSE_DESC
}

"""
A `DeployKeyID` is a global ID. It is encoded as a string.

An example `DeployKeyID` is: `"gid://gitlab/DeployKey/1"`.
"""
scalar DeployKeyID

"""The deployment of an environment"""
type Deployment {
  """
  Approval summary of the deployment.This field can only be resolved for one deployment in any single request.
  """
  approvalSummary: DeploymentApprovalSummary

  """Current approvals of the deployment."""
  approvals: [DeploymentApproval!]

  """Commit details of the deployment."""
  commit: Commit

  """When the deployment record was created."""
  createdAt: Time

  """When the deployment finished."""
  finishedAt: Time

  """Global ID of the deployment."""
  id: ID

  """Project-level internal ID of the deployment."""
  iid: String

  """Pipeline job of the deployment."""
  job: CiJob

  """Number of pending unified approvals on the deployment."""
  pendingApprovalCount: Int

  """Git-Ref that the deployment ran on."""
  ref: String

  """Path to the Git-Ref that the deployment ran on."""
  refPath: String

  """Git-SHA that the deployment ran on."""
  sha: String

  """Status of the deployment."""
  status: DeploymentStatus

  """True or false if the deployment ran on a Git-tag."""
  tag: Boolean

  """
  Git tags that contain this deployment. This field can only be resolved for two deployments in any single request.
  """
  tags: [DeploymentTag!]

  """User who executed the deployment."""
  triggerer: UserCore

  """When the deployment record was updated."""
  updatedAt: Time

  """Permissions for the current user on the resource"""
  userPermissions: DeploymentPermissions!

  """Web path to the deployment page."""
  webPath: String
}

"""Approval of the deployment."""
type DeploymentApproval {
  """Additional comment."""
  comment: String

  """When the user approved/rejected first time."""
  createdAt: Time

  """Whether the deployment was approved/rejected."""
  status: DeploymentsApprovalStatus

  """When the user updated the approval."""
  updatedAt: Time

  """User who approved or rejected the deployment."""
  user: UserCore
}

"""Approval summary of the deployment."""
type DeploymentApprovalSummary {
  """Approval Rules for the deployment."""
  rules: [ProtectedEnvironmentApprovalRuleForSummary!]

  """Status of the approvals."""
  status: DeploymentApprovalSummaryStatus

  """Total pending approval count."""
  totalPendingApprovalCount: Int

  """Total number of required approvals."""
  totalRequiredApprovals: Int
}

"""Status of the deployment approval summary."""
enum DeploymentApprovalSummaryStatus {
  """Summarized deployment approval status that is approved."""
  APPROVED

  """Summarized deployment approval status that is rejected."""
  REJECTED

  """Summarized deployment approval status that is pending approval."""
  PENDING_APPROVAL
}

"""The connection type for Deployment."""
type DeploymentConnection {
  """A list of edges."""
  edges: [DeploymentEdge]

  """A list of nodes."""
  nodes: [Deployment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DeploymentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Deployment
}

"""
A `DeploymentID` is a global ID. It is encoded as a string.

An example `DeploymentID` is: `"gid://gitlab/Deployment/1"`.
"""
scalar DeploymentID

type DeploymentPermissions {
  """
  Indicates the user can perform `approve_deployment` on this resource. This
  field can only be resolved for one environment in any single request.
  """
  approveDeployment: Boolean!

  """If `true`, the user can perform `destroy_deployment` on this resource"""
  destroyDeployment: Boolean!

  """If `true`, the user can perform `update_deployment` on this resource"""
  updateDeployment: Boolean!
}

"""Response for `Deployments` aggregation engine"""
type DeploymentsAggregationResponse {
  """Deployment canceled rate (out of finished deployments)"""
  canceledRate: Float

  """Deployment duration quantile in milliseconds"""
  deploymentDurationQuantile(quantile: Float): Float

  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: DeploymentsAggregationResponseDimensions

  """Deployment failure rate (out of finished deployments)"""
  failureRate: Float

  """Deployment success rate (out of finished deployments)"""
  successRate: Float

  """Total number of deployments"""
  totalCount: Int
}

"""The connection type for DeploymentsAggregationResponse."""
type DeploymentsAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

  """A list of edges."""
  edges: [DeploymentsAggregationResponseEdge]

  """A list of nodes."""
  nodes: [DeploymentsAggregationResponse]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Response dimensions for `Deployments` aggregation engine"""
type DeploymentsAggregationResponseDimensions {
  """Deployment creation time"""
  createdAt(granularity: String): Time

  """Environment ID"""
  environment: Environment

  """Deployment finish time"""
  finishedAt(granularity: String): Time

  """Deployment ref"""
  ref: String

  """Deployment status"""
  status: String
}

"""An edge in a connection."""
type DeploymentsAggregationResponseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DeploymentsAggregationResponse
}

"""
Aggregation scope for `Deployments`. Apply ordering and pagination on the aggregation.
"""
type DeploymentsAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DeploymentsAggregationResponseConnection
}

"""Status of the deployment approval."""
enum DeploymentsApprovalStatus {
  """A deployment approval that is approved."""
  APPROVED

  """A deployment approval that is rejected."""
  REJECTED
}

"""Values for ordering deployments by a specific field"""
input DeploymentsOrderByInput {
  """Order by Created time."""
  createdAt: SortDirectionEnum

  """Order by Finished time."""
  finishedAt: SortDirectionEnum
}

"""All deployment statuses."""
enum DeploymentStatus {
  """A deployment that is created."""
  CREATED

  """A deployment that is running."""
  RUNNING

  """A deployment that is success."""
  SUCCESS

  """A deployment that is failed."""
  FAILED

  """A deployment that is canceled."""
  CANCELED

  """A deployment that is skipped."""
  SKIPPED

  """A deployment that is blocked."""
  BLOCKED
}

"""Tags for a given deployment"""
type DeploymentTag {
  """Name of the git tag."""
  name: String

  """Path for the tag."""
  path: String

  """Web path for the tag."""
  webPath: String
}

"""All environment deployment tiers."""
enum DeploymentTier {
  """Production."""
  PRODUCTION

  """Staging."""
  STAGING

  """Testing."""
  TESTING

  """Development."""
  DEVELOPMENT

  """Other."""
  OTHER
}

type DescriptionVersion {
  """
  Whether current user can delete description version associated to the note
  metadata. Deprecated in GitLab 15.7: For backwards compatibility with REST API
  version and to be removed in a next iteration.
  """
  canDelete: Boolean @deprecated(reason: "For backwards compatibility with REST API version and to be removed in a next iteration. Deprecated in GitLab 15.7.")

  """
  Web path to delete description version associated to the note metadata.
  Deprecated in GitLab 15.7: For backwards compatibility with REST API version
  and to be removed in a next iteration.
  """
  deletePath: String @deprecated(reason: "For backwards compatibility with REST API version and to be removed in a next iteration. Deprecated in GitLab 15.7.")

  """
  Whether description version associated to the note metadata is deleted.
  Deprecated in GitLab 15.7: For backwards compatibility with REST API version
  and to be removed in a next iteration.
  """
  deleted: Boolean @deprecated(reason: "For backwards compatibility with REST API version and to be removed in a next iteration. Deprecated in GitLab 15.7.")

  """Content of the given description version."""
  description: String

  """Description diff between versions."""
  diff(
    """
    ID of a previous version to compare. If not specified first previous version is used.
    """
    versionId: DescriptionVersionID
  ): String

  """
  Web path to description version associated to the note metadata. Deprecated in
  GitLab 15.7: For backwards compatibility with REST API version and to be
  removed in a next iteration.
  """
  diffPath: String @deprecated(reason: "For backwards compatibility with REST API version and to be removed in a next iteration. Deprecated in GitLab 15.7.")

  """ID of the description version."""
  id: DescriptionVersionID!
}

"""
A `DescriptionVersionID` is a global ID. It is encoded as a string.

An example `DescriptionVersionID` is: `"gid://gitlab/DescriptionVersion/1"`.
"""
scalar DescriptionVersionID

"""A single design"""
type Design implements CurrentUserTodos & DesignFields & NoteableInterface & Todoable {
  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """Description of the design."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Diff refs for the design."""
  diffRefs: DiffRefs!

  """All discussions on the 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 the design was changed in the current version."""
  event: DesignVersionEvent!

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: ID!

  """ID of the design."""
  id: ID!

  """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

  """Indicates whether the design was imported."""
  imported: Boolean!

  """Import source of the design."""
  importedFrom: ImportSource!

  """Issue the design belongs to."""
  issue: Issue!

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """Total count of user-created notes for the design."""
  notesCount: Int!

  """Project the design belongs to."""
  project: Project!

  """All versions related to this design ordered newest first."""
  versions(
    """SHA256 of the most recent acceptable version."""
    earlierOrEqualToSha: String

    """Global ID of the most recent acceptable version."""
    earlierOrEqualToId: DesignManagementVersionID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): DesignVersionConnection!

  """URL of the design."""
  webUrl: String!
}

"""
A design pinned to a specific version. The image field reflects the design as of the associated version
"""
type DesignAtVersion implements DesignFields {
  """Underlying design."""
  design: Design!

  """Diff refs for the design."""
  diffRefs: DiffRefs!

  """How the design was changed in the current version."""
  event: DesignVersionEvent!

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: ID!

  """ID of the design."""
  id: ID!

  """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

  """Issue the design belongs to."""
  issue: Issue!

  """Total count of user-created notes for the design."""
  notesCount: Int!

  """Project the design belongs to."""
  project: Project!

  """Version the 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 ID."""
    id: DesignManagementDesignID

    """Find a design by its filename."""
    filename: String
  ): Design

  """Find a design as of a version."""
  designAtVersion(
    """Global ID of the design at the version."""
    id: DesignManagementDesignAtVersionID!
  ): DesignAtVersion

  """All designs for the design collection."""
  designs(
    """
    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: DesignManagementVersionID

    """Filters designs by their filename."""
    filenames: [String!]

    """Filters designs by their ID."""
    ids: [DesignManagementDesignID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!

  """Issue associated with the design collection."""
  issue: Issue!

  """Project associated with the design collection."""
  project: Project!

  """A specific version."""
  version(
    """Global ID of the version."""
    id: DesignManagementVersionID

    """SHA256 of a specific version."""
    sha: String
  ): DesignVersion

  """All versions related to all designs, ordered newest first."""
  versions(
    """SHA256 of the most recent acceptable version."""
    earlierOrEqualToSha: String

    """Global ID of the most recent acceptable version."""
    earlierOrEqualToId: DesignManagementVersionID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): DesignVersionConnection!
}

"""Copy state of a DesignCollection"""
enum DesignCollectionCopyState {
  """The DesignCollection has no copy in progress"""
  READY

  """The DesignCollection is being copied"""
  IN_PROGRESS

  """The DesignCollection encountered an error during a copy"""
  ERROR
}

"""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 {
  """Diff refs for the design."""
  diffRefs: DiffRefs!

  """How the design was changed in the current version."""
  event: DesignVersionEvent!

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: ID!

  """ID of the design."""
  id: ID!

  """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

  """Issue the design belongs to."""
  issue: Issue!

  """Total count of user-created notes for the design."""
  notesCount: Int!

  """Project the design belongs to."""
  project: Project!
}

type DesignManagement {
  """Find a design as of a version."""
  designAtVersion(
    """Global ID of the design at the version."""
    id: DesignManagementDesignAtVersionID!
  ): DesignAtVersion

  """Find a version."""
  version(
    """Global ID of the version."""
    id: DesignManagementVersionID!
  ): DesignVersion
}

"""
Represents the Geo replication and verification state of a `design_management_action_upload`
"""
type DesignManagementActionUploadRegistry {
  """
  Indicate if the checksums of the DesignManagementActionUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DesignManagementActionUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this DesignManagementActionUploadRegistry
  """
  dataManagementDetailsPath: String

  """ID of the Design Management Action Upload."""
  designManagementActionUploadId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DesignManagementActionUploadRegistry"""
  id: ID!

  """Error message during sync of the DesignManagementActionUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DesignManagementActionUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the DesignManagementActionUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the DesignManagementActionUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the DesignManagementActionUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DesignManagementActionUploadRegistry
  """
  retryCount: Int

  """Sync state of the DesignManagementActionUploadRegistry"""
  state: RegistryState

  """The local checksum of the DesignManagementActionUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DesignManagementActionUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the DesignManagementActionUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the DesignManagementActionUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DesignManagementActionUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of DesignManagementActionUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the DesignManagementActionUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DesignManagementActionUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for DesignManagementActionUploadRegistry."""
type DesignManagementActionUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DesignManagementActionUploadRegistryEdge]

  """A list of nodes."""
  nodes: [DesignManagementActionUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DesignManagementActionUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DesignManagementActionUploadRegistry
}

"""Autogenerated input type of DesignManagementDelete"""
input DesignManagementDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project where the issue is to upload designs for."""
  projectPath: ID!

  """IID of the issue to modify designs for."""
  iid: ID!

  """Filenames of the designs to delete."""
  filenames: [String!]!
}

"""Autogenerated return type of DesignManagementDelete."""
type DesignManagementDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """New version in which the designs are deleted."""
  version: DesignVersion
}

"""
A `DesignManagementDesignAtVersionID` is a global ID. It is encoded as a string.

An example `DesignManagementDesignAtVersionID` is: `"gid://gitlab/DesignManagement::DesignAtVersion/1"`.
"""
scalar DesignManagementDesignAtVersionID

"""
A `DesignManagementDesignID` is a global ID. It is encoded as a string.

An example `DesignManagementDesignID` is: `"gid://gitlab/DesignManagement::Design/1"`.
"""
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 preceding design."""
  previous: DesignManagementDesignID

  """ID of the immediately following design."""
  next: DesignManagementDesignID
}

"""Autogenerated return type of DesignManagementMove."""
type DesignManagementMovePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Current state of the collection."""
  designCollection: DesignCollection

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Represents the Geo replication and verification state of a Design Management Repository
"""
type DesignManagementRepositoryRegistry {
  """
  Indicate if the checksums of the DesignManagementRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the DesignManagementRepositoryRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this DesignManagementRepositoryRegistry
  """
  dataManagementDetailsPath: String

  """ID of the Design Management Repository."""
  designManagementRepositoryId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the DesignManagementRepositoryRegistry"""
  id: ID!

  """Error message during sync of the DesignManagementRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the DesignManagementRepositoryRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the DesignManagementRepositoryRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the DesignManagementRepositoryRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the DesignManagementRepositoryRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the DesignManagementRepositoryRegistry
  """
  retryCount: Int

  """Sync state of the DesignManagementRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the DesignManagementRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the DesignManagementRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the DesignManagementRepositoryRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the DesignManagementRepositoryRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the DesignManagementRepositoryRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of DesignManagementRepositoryRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the DesignManagementRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the DesignManagementRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for DesignManagementRepositoryRegistry."""
type DesignManagementRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [DesignManagementRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [DesignManagementRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DesignManagementRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DesignManagementRepositoryRegistry
}

"""Autogenerated input type of DesignManagementUpdate"""
input DesignManagementUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the design to update."""
  id: DesignManagementDesignID!

  """Description of the design."""
  description: String
}

"""Autogenerated return type of DesignManagementUpdate."""
type DesignManagementUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated design."""
  design: Design!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DesignManagementUpload"""
input DesignManagementUploadInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project where the issue is to upload designs for."""
  projectPath: ID!

  """IID of the issue to modify designs for."""
  iid: ID!

  """Files to upload."""
  files: [Upload!]!
}

"""Autogenerated return type of DesignManagementUpload."""
type DesignManagementUploadPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Designs that were uploaded by the mutation."""
  designs: [Design!]!

  """Errors encountered during 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 `DesignManagementVersionID` is a global ID. It is encoded as a string.

An example `DesignManagementVersionID` is: `"gid://gitlab/DesignManagement::Version/1"`.
"""
scalar DesignManagementVersionID

"""A specific version in which designs were added, modified or deleted"""
type DesignVersion {
  """Author of the version."""
  author: UserCore!

  """Timestamp of when the version was created."""
  createdAt: Time!

  """
  A particular design as of this version, provided it is visible at this version.
  """
  designAtVersion(
    """ID of a specific design."""
    designId: DesignManagementDesignID

    """Filename of a specific design."""
    filename: String

    """ID of the DesignAtVersion."""
    id: DesignManagementDesignAtVersionID
  ): 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(
    """Filters designs by their filename."""
    filenames: [String!]

    """Filters designs by their ID."""
    ids: [DesignManagementDesignID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): 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 {
  """No change."""
  NONE

  """A creation event"""
  CREATION

  """A modification event"""
  MODIFICATION

  """A deletion event"""
  DELETION
}

"""Autogenerated input type of DestroyBoard"""
input DestroyBoardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 the mutation."""
  errors: [String!]!

  """List after mutation."""
  list: BoardList
}

"""Autogenerated return type of DestroyBoard."""
type DestroyBoardPayload {
  """Board after mutation."""
  board: Board

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyComplianceFramework"""
input DestroyComplianceFrameworkInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance framework to destroy."""
  id: ComplianceManagementFrameworkID!
}

"""Autogenerated return type of DestroyComplianceFramework."""
type DestroyComplianceFrameworkPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyComplianceRequirement"""
input DestroyComplianceRequirementInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance requirement to destroy."""
  id: ComplianceManagementComplianceFrameworkComplianceRequirementID!
}

"""Autogenerated return type of DestroyComplianceRequirement."""
type DestroyComplianceRequirementPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyComplianceRequirementsControl"""
input DestroyComplianceRequirementsControlInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance requirement control to destroy."""
  id: ComplianceManagementComplianceFrameworkComplianceRequirementsControlID!
}

"""Autogenerated return type of DestroyComplianceRequirementsControl."""
type DestroyComplianceRequirementsControlPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyContainerRepository"""
input DestroyContainerRepositoryInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container repository."""
  id: ContainerRepositoryID!
}

"""Autogenerated return type of DestroyContainerRepository."""
type DestroyContainerRepositoryPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Container repository policy after scheduling the deletion."""
  containerRepository: ContainerRepository!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyContainerRepositoryTags"""
input DestroyContainerRepositoryTagsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the container repository."""
  id: ContainerRepositoryID!

  """
  Container repository tag(s) to delete. Total number can't be greater than 20
  """
  tagNames: [String!]!
}

"""Autogenerated return type of DestroyContainerRepositoryTags."""
type DestroyContainerRepositoryTagsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted container repository tags."""
  deletedTagNames: [String!]!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyCustomEmoji"""
input DestroyCustomEmojiInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the custom emoji to destroy."""
  id: CustomEmojiID!
}

"""Autogenerated return type of DestroyCustomEmoji."""
type DestroyCustomEmojiPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Deleted custom emoji."""
  customEmoji: CustomEmoji

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyEpicBoard"""
input DestroyEpicBoardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the board to destroy."""
  id: BoardsEpicBoardID!
}

"""Autogenerated return type of DestroyEpicBoard."""
type DestroyEpicBoardPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Epic board after mutation."""
  epicBoard: EpicBoard

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyNote"""
input DestroyNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of DestroyPackageFile"""
input DestroyPackageFileInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Package file."""
  id: PackagesPackageFileID!
}

"""Autogenerated return type of DestroyPackageFile."""
type DestroyPackageFilePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyPackageFiles"""
input DestroyPackageFilesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project path where the packages cleanup policy is located."""
  projectPath: ID!

  """IDs of the Package file."""
  ids: [PackagesPackageFileID!]!
}

"""Autogenerated return type of DestroyPackageFiles."""
type DestroyPackageFilesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyPackage"""
input DestroyPackageInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Package."""
  id: PackagesPackageID!
}

"""Autogenerated return type of DestroyPackage."""
type DestroyPackagePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroyPackages"""
input DestroyPackagesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of the Packages. Max 100"""
  ids: [PackagesPackageID!]!
}

"""Autogenerated return type of DestroyPackages."""
type DestroyPackagesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of DestroySnippet"""
input DestroySnippetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the snippet to destroy."""
  id: SnippetID!
}

"""Autogenerated return type of DestroySnippet."""
type DestroySnippetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

"""Details of the import status of a project."""
type DetailedImportStatus {
  """ID of the import state."""
  id: ProjectImportStateID

  """Last error of the import."""
  lastError: String

  """Time of the last successful update."""
  lastSuccessfulUpdateAt: Time

  """Time of the last update."""
  lastUpdateAt: Time

  """Time of the start of the last update."""
  lastUpdateStartedAt: Time

  """Current status of the import."""
  status: String

  """Import url."""
  url: String
}

"""
Detailed representation of whether a GitLab merge request can be merged.
"""
enum DetailedMergeStatus {
  """Merge status has not been checked."""
  UNCHECKED

  """Currently checking for mergeability."""
  CHECKING

  """Branch can be merged."""
  MERGEABLE

  """Source branch exists and contains commits."""
  COMMITS_STATUS

  """Pipeline must succeed before merging."""
  CI_MUST_PASS

  """Pipeline is still running."""
  CI_STILL_RUNNING

  """Discussions must be resolved before merging."""
  DISCUSSIONS_NOT_RESOLVED

  """Merge request must not be draft before merging."""
  DRAFT_STATUS

  """Merge request must be open before merging."""
  NOT_OPEN

  """Merge request must be approved before merging."""
  NOT_APPROVED

  """Merge request dependencies must be merged."""
  BLOCKED_STATUS

  """Status checks must pass."""
  EXTERNAL_STATUS_CHECKS

  """Merge request diff is being created."""
  PREPARING

  """Either the title or description must reference a Jira issue."""
  JIRA_ASSOCIATION

  """There are conflicts between the source and target branches."""
  CONFLICT

  """Merge request needs to be rebased."""
  NEED_REBASE

  """Merge request approvals currently syncing."""
  APPROVALS_SYNCING

  """Merge request includes locked paths."""
  LOCKED_PATHS

  """Merge request includes locked LFS files."""
  LOCKED_LFS_FILES

  """Merge request may not be merged until after the specified time."""
  MERGE_TIME

  """All policy rules must be satisfied."""
  SECURITY_POLICIES_VIOLATIONS

  """Merge request title does not match required regex."""
  TITLE_NOT_MATCHING

  """Indicates a reviewer has requested changes."""
  REQUESTED_CHANGES

  """All security policy pipelines must succeed."""
  SECURITY_POLICY_PIPELINE_CHECK
}

type DetailedStatus {
  """
  Action information for the status. This includes method, button title, icon, path, and title.
  """
  action: StatusAction

  """Path of the deployment details for the status."""
  deploymentDetailsPath: String

  """Path of the details for the status."""
  detailsPath: String

  """Favicon of the status."""
  favicon: String

  """
  Group of the status. Deprecated in GitLab 16.4: The `group` attribute is deprecated. Use `name` instead.
  """
  group: String @deprecated(reason: "The `group` attribute is deprecated. Use `name` instead. Deprecated in GitLab 16.4.")

  """Indicates if the status has further details."""
  hasDetails: Boolean

  """
  Icon of the status. Deprecated in GitLab 16.4: The `icon` attribute is
  deprecated. Use `name` to identify the status to display instead.
  """
  icon: String @deprecated(reason: "The `icon` attribute is deprecated. Use `name` to identify the status to display instead. Deprecated in GitLab 16.4.")

  """ID for a detailed status."""
  id: String!

  """Human-readable label of the status (e.g. success)."""
  label: String

  """Machine-readable status name (e.g. SUCCESS)."""
  name: String

  """
  Text of the status. Deprecated in GitLab 16.4: The `text` attribute is being deprecated. Use `label` instead.
  """
  text: String @deprecated(reason: "The `text` attribute is being deprecated. Use `label` instead. Deprecated in GitLab 16.4.")

  """Tooltip associated with the status."""
  tooltip: String
}

"""Autogenerated input type of DevfileValidate"""
input DevfileValidateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Input devfile."""
  devfileYaml: String!
}

"""Autogenerated return type of DevfileValidate."""
type DevfileValidatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Status whether devfile is valid or not."""
  valid: Boolean
}

"""Enabled namespace for DevopsAdoption"""
type DevopsAdoptionEnabledNamespace {
  """Namespace where data should be displayed."""
  displayNamespace: Namespace

  """ID of the enabled namespace."""
  id: ID!

  """Metrics snapshot for previous month for the enabled namespace."""
  latestSnapshot: DevopsAdoptionSnapshot

  """Namespace which should be calculated."""
  namespace: Namespace

  """Data snapshots of the namespace."""
  snapshots(
    """Filter to snapshots with month end before the provided date."""
    endTimeBefore: Time

    """Filter to snapshots with month end after the provided date."""
    endTimeAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DevopsAdoptionSnapshotConnection
}

"""The connection type for DevopsAdoptionEnabledNamespace."""
type DevopsAdoptionEnabledNamespaceConnection {
  """A list of edges."""
  edges: [DevopsAdoptionEnabledNamespaceEdge]

  """A list of nodes."""
  nodes: [DevopsAdoptionEnabledNamespace]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DevopsAdoptionEnabledNamespaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DevopsAdoptionEnabledNamespace
}

"""Snapshot"""
type DevopsAdoptionSnapshot {
  """Total number of projects with existing CODEOWNERS file."""
  codeOwnersUsedCount: Int

  """Total number of projects with enabled coverage fuzzing."""
  coverageFuzzingEnabledCount: Int

  """Total number of projects with enabled DAST."""
  dastEnabledCount: Int

  """Total number of projects with enabled dependency scanning."""
  dependencyScanningEnabledCount: Int

  """At least one deployment succeeded."""
  deploySucceeded: Boolean!

  """End time for the snapshot where the data points were collected."""
  endTime: Time!

  """At least one issue was opened."""
  issueOpened: Boolean!

  """At least one merge request was approved."""
  mergeRequestApproved: Boolean!

  """At least one merge request was opened."""
  mergeRequestOpened: Boolean!

  """At least one pipeline succeeded."""
  pipelineSucceeded: Boolean!

  """Time the snapshot was recorded."""
  recordedAt: Time!

  """At least one runner was used."""
  runnerConfigured: Boolean!

  """Total number of projects with enabled SAST."""
  sastEnabledCount: Int

  """Start time for the snapshot where the data points were collected."""
  startTime: Time!

  """Total number of projects."""
  totalProjectsCount: Int

  """
  Total number of projects with vulnerability management used at least once.
  """
  vulnerabilityManagementUsedCount: Int
}

"""The connection type for DevopsAdoptionSnapshot."""
type DevopsAdoptionSnapshotConnection {
  """A list of edges."""
  edges: [DevopsAdoptionSnapshotEdge]

  """A list of nodes."""
  nodes: [DevopsAdoptionSnapshot]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DevopsAdoptionSnapshotEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DevopsAdoptionSnapshot
}

type Diff {
  """Old file mode of the file."""
  aMode: String

  """New file mode of the file."""
  bMode: String

  """File diffs are excluded but can be fetched on request."""
  collapsed: String

  """Indicates if the file has been removed. """
  deletedFile: String

  """Diff representation of the changes made to the file."""
  diff: String

  """Indicates if the file has just been added. """
  newFile: String

  """New path of the file."""
  newPath: String

  """Old path of the file."""
  oldPath: String

  """Indicates if the file has been renamed."""
  renamedFile: String

  """File diffs are excluded and cannot be retrieved."""
  tooLarge: 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!

  """SHA of the branch being compared against."""
  startSha: String!

  """
  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!

  """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!
}

"""A single line of a diff displayed above a diff note."""
type DiffLine {
  """Indicates whether the line can receive a suggestion."""
  canReceiveSuggestion: Boolean!

  """Line code of the diff line."""
  lineCode: String

  """Line number on the HEAD SHA."""
  newLine: Int

  """Line number on the start SHA."""
  oldLine: Int

  """Syntax-highlighted HTML of the diff line."""
  richText: String

  """Raw text of the diff line, including the leading diff sign."""
  text: String

  """
  Type of the diff line, such as 'new' or 'old'. Null for unchanged context lines.
  """
  type: String
}

"""
A `DiffNoteID` is a global ID. It is encoded as a string.

An example `DiffNoteID` is: `"gid://gitlab/DiffNote/1"`.
"""
scalar DiffNoteID

input DiffPathsInput {
  """Path of the file on the HEAD SHA."""
  newPath: String

  """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!

  """SHA of the branch being compared against."""
  startSha: String!

  """
  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!

  """
  Line on HEAD SHA that was changed. Please see the [REST API Documentation](https://docs.gitlab.com/api/discussions/#create-a-new-thread-in-the-merge-request-diff)
  for more information on how to use this field.
  """
  newLine: Int

  """
  Line on start SHA that was changed. Please see the [REST API Documentation](https://docs.gitlab.com/api/discussions/#create-a-new-thread-in-the-merge-request-diff)
  for more information on how to use this field.
  """
  oldLine: Int
}

"""Type of file the position refers to"""
enum DiffPositionType {
  """Text file."""
  text

  """An image."""
  image

  """Unknown file type."""
  file
}

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 the file."""
  additions: Int!

  """Number of lines deleted from the 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!
}

"""Autogenerated input type of DisableDevopsAdoptionNamespace"""
input DisableDevopsAdoptionNamespaceInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """One or many IDs of the enabled namespaces to disable."""
  id: [AnalyticsDevopsAdoptionEnabledNamespaceID!]!
}

"""Autogenerated return type of DisableDevopsAdoptionNamespace."""
type DisableDevopsAdoptionNamespacePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type Discussion implements BaseDiscussionInterface & ResolvableInterface {
  """Timestamp of the discussion's creation."""
  createdAt: Time!

  """ID of the discussion."""
  id: DiscussionID!

  """Object which the discussion belongs to."""
  noteable: NoteableType

  """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 the discussion."""
  replyId: DiscussionID!

  """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: UserCore

  """
  At most 16 highlighted diff lines above the diff note, up to and including the
  commented line. Null for non-diff discussions.
  """
  truncatedDiffLines: [DiffLine!]

  """Permissions for the current user on the resource"""
  userPermissions: DiscussionPermissions!
}

"""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
}

"""
A `DiscussionID` is a global ID. It is encoded as a string.

An example `DiscussionID` is: `"gid://gitlab/Discussion/1"`.
"""
scalar DiscussionID

type DiscussionPermissions {
  """If `true`, the user can perform `resolve_note` on this resource"""
  resolveNote: Boolean!
}

"""Autogenerated input type of DiscussionToggleResolve"""
input DiscussionToggleResolveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the discussion."""
  id: DiscussionID!

  """
  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

  """Discussion after mutation."""
  discussion: Discussion

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Represents the different dismissal types for security policy violations.
"""
enum DismissalType {
  """Dismissal due to policy false positive."""
  POLICY_FALSE_POSITIVE

  """Dismissal due to scanner false positive."""
  SCANNER_FALSE_POSITIVE

  """Dismissal due to emergency hot fix."""
  EMERGENCY_HOT_FIX

  """Dismissal due to other reasons."""
  OTHER
}

"""Autogenerated input type of DismissPolicyViolations"""
input DismissPolicyViolationsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """IDs of warn mode policies with violations to dismiss."""
  securityPolicyIds: [ID!]!

  """Type of dismissal for the policy violations."""
  dismissalTypes: [DismissalType!]!

  """Comment explaining the dismissal of the policy violations."""
  comment: String!
}

"""Autogenerated return type of DismissPolicyViolations."""
type DismissPolicyViolationsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""All information related to DORA metrics."""
type Dora {
  """DORA metrics for the current group or project."""
  metrics(
    """Date range to start from. Default is 3 months ago."""
    startDate: Date

    """Date range to end at. Default is the current date."""
    endDate: Date

    """
    How the metric should be aggregated. Defaults to `DAILY`. In the case of
    `ALL`, the `date` field in the response will be `null`.
    """
    interval: DoraMetricBucketingInterval

    """
    Deployment tiers of the environments to return. Defaults to `[PRODUCTION]`.
    """
    environmentTiers: [DeploymentTier!]
  ): [DoraMetric!]
}

type DoraMetric {
  """Percentage of deployments that caused incidents in production."""
  changeFailureRate: Float

  """Date of the data point."""
  date: String

  """Number of deployments per day."""
  deploymentFrequency: Float

  """Median time to deploy a merged merge request."""
  leadTimeForChanges: Float

  """Median time to close an incident."""
  timeToRestoreService: Float
}

"""All possible ways that DORA metrics can be aggregated."""
enum DoraMetricBucketingInterval {
  """All data points are combined into a single value."""
  ALL

  """Data points are combined into chunks by month."""
  MONTHLY

  """Data points are combined into chunks by day."""
  DAILY
}

"""Aggregated DORA score counts for projects for the last complete month."""
type DoraPerformanceScoreCount {
  """Number of projects that score "high" on the metric."""
  highProjectsCount: Int

  """Number of projects that score "low" on the metric."""
  lowProjectsCount: Int

  """Number of projects that score "medium" on the metric."""
  mediumProjectsCount: Int

  """Name of the DORA metric."""
  metricName: String!

  """Number of projects with no data for the metric."""
  noDataProjectsCount: Int
}

"""The connection type for DoraPerformanceScoreCount."""
type DoraPerformanceScoreCountConnection {
  """A list of edges."""
  edges: [DoraPerformanceScoreCountEdge]

  """Count of projects without any DORA scores within the scope."""
  noDoraDataProjectsCount: Int!

  """A list of nodes."""
  nodes: [DoraPerformanceScoreCount]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """Count of total projects."""
  totalProjectsCount: Int!
}

"""An edge in a connection."""
type DoraPerformanceScoreCountEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DoraPerformanceScoreCount
}

"""Filter parameters for projects to be aggregated for DORA metrics."""
input DoraProjectFilterInput {
  """Filter projects by topic."""
  topic: [String!]
}

"""Requires ClickHouse. Premium and Ultimate only."""
type duoChatMetrics {
  """Total count of `request_duo_chat_response` event."""
  requestDuoChatResponseEventCount: Int
}

"""Response for `DuoCodeSuggestions` aggregation engine"""
type DuoCodeSuggestionsAggregationResponse {
  """Acceptance rate (accepted / shown)"""
  acceptanceRate: Float

  """Number of accepted suggestions"""
  acceptedCount: Int

  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: DuoCodeSuggestionsAggregationResponseDimensions

  """Number of rejected suggestions"""
  rejectedCount: Int

  """Number of shown suggestions"""
  shownCount: Int

  """Total suggestions volume"""
  suggestionSizeSum: Int

  """Total number of suggestions"""
  totalCount: Int

  """Number of unique users"""
  usersCount: Int
}

"""The connection type for DuoCodeSuggestionsAggregationResponse."""
type DuoCodeSuggestionsAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

  """A list of edges."""
  edges: [DuoCodeSuggestionsAggregationResponseEdge]

  """A list of nodes."""
  nodes: [DuoCodeSuggestionsAggregationResponse]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Response dimensions for `DuoCodeSuggestions` aggregation engine"""
type DuoCodeSuggestionsAggregationResponseDimensions {
  """IDE name"""
  ideName: String

  """Programming language"""
  language: String

  """Suggestion timestamp"""
  timestamp(granularity: String): Date

  """User"""
  user: UserCore
}

"""An edge in a connection."""
type DuoCodeSuggestionsAggregationResponseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DuoCodeSuggestionsAggregationResponse
}

"""
Aggregation scope for `DuoCodeSuggestions`. Apply ordering and pagination on the aggregation.
"""
type DuoCodeSuggestionsAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoCodeSuggestionsAggregationResponseConnection
}

"""Settings for Duo context exclusion rules"""
type DuoContextExclusionSettings {
  """List of rules for excluding files from Duo context."""
  exclusionRules: [String!]
}

"""Input for Duo context exclusion settings"""
input DuoContextExclusionSettingsInput {
  """List of rules for excluding files from Duo context."""
  exclusionRules: [String!]!
}

"""List of GitLab Duo licensed features."""
enum DuoLicensedFeature {
  """Agentic Chat feature."""
  AGENTIC_CHAT

  """AI Catalog feature."""
  AI_CATALOG

  """AI features."""
  AI_FEATURES
}

"""A message in a Duo Workflow chat log"""
type DuoMessage {
  """Additional context items attached to the message."""
  additionalContext: [AiAdditionalContext!]

  """
  Component name associated with the message. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  componentName: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Content of the message."""
  content: String!

  """
  Optional client-supplied identifier echoed back to correlate this message with the request that initiated it.
  """
  correlationId: String

  """Opaque identifier for the message, assigned by the workflow executor."""
  messageId: ID

  """
  Sub-type of the message, used to discriminate among messages of the same type.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  messageSubType: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Type of the message."""
  messageType: String!

  """Role of the message."""
  role: String

  """Status of the message."""
  status: String

  """
  Subsession ID associated with the message. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  subsessionId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Timestamp of the message."""
  timestamp: String

  """Tool information for the message."""
  toolInfo: String
}

"""GitLab Duo settings"""
type DuoSettings {
  """Timeout in seconds for requests to the AI Gateway server."""
  aiGatewayTimeoutSeconds: Int

  """
  URL for the local AI Gateway server. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  aiGatewayUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Whether all Unix sockets are allowed for network access. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  allowAllUnixSockets: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Whether projects can extend the network access domain allowlist. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  allowProjectExtension: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  URL for local Duo Agent Platform service. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  duoAgentPlatformServiceUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Indicates whether GitLab Duo CLI access is enabled. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  duoCliEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Indicates whether GitLab Duo Core features are enabled. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  duoCoreFeaturesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """
  Whether recommended domains are included in the network access allowlist.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  includeRecommendedAllowed: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Minimum access level required to enable Duo Agent Platform. Returns `null` if
  `dap_instance_customizable_permissions` feature flag is disabled. Introduced
  in GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelEnableOnProjects: AccessLevelEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Minimum access level required to execute Duo Agent Platform. Returns `null` if
  `dap_instance_customizable_permissions` feature flag is disabled. Introduced
  in GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelExecute: AccessLevelEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Minimum access level required to execute Duo Agent Platform features in CI/CD.
  Returns `null` if `dap_instance_customizable_permissions` feature flag is
  disabled. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelExecuteAsync: AccessLevelEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Minimum access level required to manage Duo Agent Platform. Returns `null` if
  `dap_instance_customizable_permissions` feature flag is disabled. Introduced
  in GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelManage: AccessLevelEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Whether local Duo Agent Platform service uses secure transport (TLS)."""
  selfHostedDuoAgentPlatformServiceSecure: Boolean

  """
  Timestamp of last GitLab Duo setting update. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  updatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
}

"""Autogenerated input type of DuoSettingsUpdate"""
input DuoSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """URL for the local AI Gateway server."""
  aiGatewayUrl: String

  """Timeout for the AI Gateway request."""
  aiGatewayTimeoutSeconds: Int

  """URL for the local Duo Agent Platform service."""
  duoAgentPlatformServiceUrl: String

  """
  Whether to use secure transport (TLS) for the local Duo Agent Platform service.
  """
  selfHostedDuoAgentPlatformServiceSecure: Boolean

  """Indicates whether GitLab Duo Core features are enabled."""
  duoCoreFeaturesEnabled: Boolean

  """
  Indicates whether GitLab Duo CLI access is enabled. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  duoCliEnabled: Boolean

  """
  Whether to include recommended domains in the network access allowlist.
  Ignored if dap_instance_network_access_controls feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  includeRecommendedAllowed: Boolean

  """
  Whether to allow all Unix sockets for network access. Ignored if
  dap_instance_network_access_controls feature flag is disabled. Introduced in
  GitLab 19.0: **Status**: Experiment.
  """
  allowAllUnixSockets: Boolean

  """
  Whether to allow projects to extend the network access domain allowlist.
  Ignored if dap_instance_network_access_controls feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  allowProjectExtension: Boolean

  """
  Minimum access level for execute on Duo Agent Platform. Ignored if
  dap_instance_customizable_permissions feature flag is disabled. Introduced in
  GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelExecute: AccessLevelEnum

  """
  Minimum access level to execute Duo Agent Platform features in CI/CD. Ignored
  if dap_instance_customizable_permissions feature flag is disabled. Introduced
  in GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelExecuteAsync: AccessLevelEnum

  """
  Minimum access level for manage on Duo Agent Platform. Ignored if
  dap_instance_customizable_permissions feature flag is disabled. Introduced in
  GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelManage: AccessLevelEnum

  """
  Minimum access level for enable on Duo Agent Platform. Ignored if
  dap_instance_customizable_permissions feature flag is disabled. Introduced in
  GitLab 18.7: **Status**: Experiment.
  """
  minimumAccessLevelEnableOnProjects: AccessLevelEnum
}

"""Autogenerated return type of DuoSettingsUpdate."""
type DuoSettingsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """GitLab Duo settings after mutation."""
  duoSettings: DuoSettings!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Response for `DuoUsageEvents` aggregation engine"""
type DuoUsageEventsAggregationResponse {
  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: DuoUsageEventsAggregationResponseDimensions

  """Number of unique features"""
  featuresCount: Int

  """Number of unique users in the previous period"""
  previousPeriodUsersCount: Int

  """Number of users who also used this feature in the previous period"""
  returningUsersCount: Int

  """Total number of events"""
  totalCount: Int

  """Number of unique users"""
  usersCount: Int
}

"""The connection type for DuoUsageEventsAggregationResponse."""
type DuoUsageEventsAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

  """A list of edges."""
  edges: [DuoUsageEventsAggregationResponseEdge]

  """A list of nodes."""
  nodes: [DuoUsageEventsAggregationResponse]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Response dimensions for `DuoUsageEvents` aggregation engine"""
type DuoUsageEventsAggregationResponseDimensions {
  """Event identifier"""
  event: String

  """Feature identifier"""
  feature: String

  """Event timestamp"""
  timestamp(granularity: String): Time

  """Event owner"""
  user: UserCore
}

"""An edge in a connection."""
type DuoUsageEventsAggregationResponseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DuoUsageEventsAggregationResponse
}

"""
Aggregation scope for `DuoUsageEvents`. Apply ordering and pagination on the aggregation.
"""
type DuoUsageEventsAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

    """
    Filter by the number of unique features The `features_count` metric must
    also be requested when using this filter. Start of the range.
    """
    featuresCountFrom: Int

    """
    Filter by the number of unique features The `features_count` metric must
    also be requested when using this filter. End of the range.
    """
    featuresCountTo: Int

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoUsageEventsAggregationResponseConnection
}

"""Autogenerated input type of DuoUserFeedback"""
input DuoUserFeedbackInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the AI Message."""
  aiMessageId: String!

  """Tracking event data."""
  trackingEvent: TrackingEventInput
}

"""Autogenerated return type of DuoUserFeedback."""
type DuoUserFeedbackPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""GitLab Duo Agent Platform session"""
type DuoWorkflow implements Todoable {
  """
  Name of the agent used for the workflow. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  agentName: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Privileges granted to the agent during execution."""
  agentPrivilegesNames: [String!]

  """
  ID of the AI catalog item version that triggered the workflow. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  aiCatalogItemVersionId: AiCatalogItemVersionID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """List of all the executor logs for the workflow."""
  allExecutorLogsUrls: [String!]

  """Allow the agent to request user input."""
  allowAgentToRequestUser: Boolean

  """Archived due to retention policy."""
  archived: Boolean

  """
  Audit events recorded for the session. Returns no events when the
  `agent_artifacts_page` feature flag is disabled. Introduced in GitLab 19.0:
  **Status**: Experiment.
  """
  auditEvents(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiAuditEventConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Timestamp of when the session was created."""
  createdAt: Time!

  """Environment, like IDE or web."""
  environment: WorkflowEnvironment

  """First checkpoint of the session."""
  firstCheckpoint: DuoWorkflowEvent

  """Goal of the session."""
  goal: String

  """Human-readable status of the session."""
  humanStatus: String!

  """ID of the session."""
  id: ID!

  """URL to the latest executor logs of the workflow."""
  lastExecutorLogsUrl: String

  """Latest checkpoint of the session."""
  latestCheckpoint: DuoWorkflowEvent

  """Has MCP been enabled for the namespace."""
  mcpEnabled: Boolean

  """Associated merge request, if any."""
  mergeRequest: MergeRequest

  """Name or title of the object."""
  name: String

  """namespace that the session is in."""
  namespace: Namespace

  """ID of the namespace."""
  namespaceId: TypesNamespaceID

  """Privileges pre-approved for the agent during execution."""
  preApprovedAgentPrivilegesNames: [String!]

  """Project that the session is in."""
  project: Project

  """ID of the project."""
  projectId: ProjectID

  """IID of the associated resource (issue or merge request)."""
  resourceIid: Int

  """Web URL of the associated resource (issue or merge request)."""
  resourceWebUrl: String

  """Workflow got created but has no checkpoints."""
  stalled: Boolean

  """Status of the session."""
  status: DuoWorkflowStatus

  """Status group of the flow session."""
  statusGroup: DuoWorkflowStatusGroup

  """Status name of the session."""
  statusName: String

  """Summary of the session."""
  summary: String

  """Title of the session."""
  title: String

  """Tools approval per session policy."""
  toolCallApprovals: JSON

  """Whether the specified tool call is approved for the session."""
  toolCallApproved(
    """JSON-serialized arguments for the tool call."""
    toolCallArgs: String!

    """Name of the tool to check."""
    toolName: String!
  ): Boolean!

  """Timestamp of when the session was last updated."""
  updatedAt: Time!

  """User who created the session."""
  user: UserCore

  """ID of the user."""
  userId: UserID!

  """Permissions of the current user for the workflow."""
  userPermissions: DuoWorkflowPermissions

  """URL of the object."""
  webUrl: String

  """Associated work item (issue or epic), if any."""
  workItem: WorkItem

  """GitLab Duo Agent Platform flow type based on its capabilities."""
  workflowDefinition: String
}

"""The connection type for DuoWorkflow."""
type DuoWorkflowConnection {
  """A list of edges."""
  edges: [DuoWorkflowEdge]

  """A list of nodes."""
  nodes: [DuoWorkflow]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DuoWorkflowEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DuoWorkflow
}

"""Duo Agent Platform enablement status checks."""
type DuoWorkflowEnablement {
  """Enablement checks."""
  checks: [DuoWorkflowEnablementCheck!]

  """
  Indicates whether the user can create Duo Workflows for CI in the project.
  Introduced in GitLab 18.9: **Status**: Experiment.
  """
  createDuoWorkflowForCiAllowed: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Indicates whether Duo Agent Platform is enabled for current user and the project.
  """
  enabled: Boolean!

  """
  Indicates if Duo Agent Platform foundational flows are enabled for the project.
  """
  foundationalFlowsEnabled: Boolean

  """
  Indicates if Duo Agent Platform remote flows are enabled for the project.
  """
  remoteFlowsEnabled: Boolean
}

"""Represents single Duo Agent Platform enablement check."""
type DuoWorkflowEnablementCheck {
  """Description of status check."""
  message: String

  """Name of the status check."""
  name: String!

  """Whether the check was successful or not."""
  value: Boolean!
}

"""
Events that describe the history and progress of a GitLab Duo Agent Platform session
"""
type DuoWorkflowEvent {
  """
  Checkpoint of the event. Deprecated in GitLab 18.7: Checkpoints are big & contain internal langgraph details.
  """
  checkpoint: JsonString @deprecated(reason: "Checkpoints are big & contain internal langgraph details. Deprecated in GitLab 18.7.")

  """Checkpoint of the event, zlib-compressed and Base64-encoded."""
  compressedCheckpoint: String

  """Messages from the ui_chat_log for the checkpoint."""
  duoMessages: [DuoMessage!]

  """Message errors."""
  errors: [String!]

  """
  Granular status of the session's execution. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  executionStatus: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Metadata associated with the event."""
  metadata: JsonString

  """
  UUID v7 timestamp identifier of the parent message for branched conversations or responses.
  """
  parentTs: String

  """
  UUID v7 timestamp identifier for the conversation thread/session in LangGraph state management.
  """
  threadTs: String

  """GitLab Duo Agent Platform flow type based on its capabilities."""
  workflowDefinition: String

  """Goal of the session."""
  workflowGoal: String

  """Status of the session."""
  workflowStatus: DuoWorkflowStatus
}

"""The connection type for DuoWorkflowEvent."""
type DuoWorkflowEventConnection {
  """A list of edges."""
  edges: [DuoWorkflowEventEdge]

  """A list of nodes."""
  nodes: [DuoWorkflowEvent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DuoWorkflowEventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DuoWorkflowEvent
}

"""Check permissions for the current user on a Duo workflow."""
type DuoWorkflowPermissions {
  """If `true`, the user can perform `delete_duo_workflow` on this resource"""
  deleteDuoWorkflow: Boolean!

  """If `true`, the user can perform `read_duo_workflow` on this resource"""
  readDuoWorkflow: Boolean!

  """If `true`, the user can perform `resume_duo_workflow` on this resource"""
  resumeDuoWorkflow: Boolean!

  """If `true`, the user can perform `update_duo_workflow` on this resource"""
  updateDuoWorkflow: Boolean!
}

"""A Duo Agent Platform session artifact."""
type DuoWorkflowSessionArtifact {
  """Number of audit events recorded for the session."""
  auditEventsCount: Int!

  """Global ID of the session, as an `Ai::DuoWorkflows::Workflow`."""
  id: ID!

  """Project the session belongs to."""
  project: Project

  """Path of the session."""
  webPath: String

  """Timestamp of when the session was created."""
  workflowCreatedAt: Time!

  """Workflow definition type of the session."""
  workflowDefinition: String!
}

"""The connection type for DuoWorkflowSessionArtifact."""
type DuoWorkflowSessionArtifactConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [DuoWorkflowSessionArtifactEdge]

  """A list of nodes."""
  nodes: [DuoWorkflowSessionArtifact]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type DuoWorkflowSessionArtifactEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: DuoWorkflowSessionArtifact
}

"""Negated filter arguments for Duo Agent Platform session artifacts."""
input DuoWorkflowSessionArtifactNegatedFilterInput {
  """Exclude session artifacts with the workflow definition."""
  workflowDefinition: String

  """Exclude session artifacts belonging to the project full path."""
  projectPath: String
}

"""The status of the workflow."""
enum DuoWorkflowStatus {
  """The workflow is created."""
  CREATED

  """The workflow is running."""
  RUNNING

  """The workflow is paused."""
  PAUSED

  """The workflow is input_required."""
  INPUT_REQUIRED

  """The workflow is plan_approval_required."""
  PLAN_APPROVAL_REQUIRED

  """The workflow is tool_call_approval_required."""
  TOOL_CALL_APPROVAL_REQUIRED

  """The workflow is stopped."""
  STOPPED

  """The workflow is failed."""
  FAILED

  """The workflow is finished."""
  FINISHED
}

"""The status group of the flow session."""
enum DuoWorkflowStatusGroup {
  """Flow sessions with a status group of active."""
  ACTIVE

  """Flow sessions with a status group of paused."""
  PAUSED

  """Flow sessions with a status group of awaiting_input."""
  AWAITING_INPUT

  """Flow sessions with a status group of completed."""
  COMPLETED

  """Flow sessions with a status group of failed."""
  FAILED

  """Flow sessions with a status group of canceled."""
  CANCELED
}

"""Values for sorting Duo Workflows."""
enum DuoWorkflowsWorkflowSort {
  """By status ascending order."""
  STATUS_ASC

  """By status descending order."""
  STATUS_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""
Duo Workflow user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type duoWorkflowUserMetrics {
  """Total count of `duo_workflow_workload_completed` event."""
  duoWorkflowWorkloadCompletedEventCount: Int

  """Date of the last Duo Workflow activity for the user."""
  lastDuoActivityOn: Date

  """Total count of all Duo Workflow events for the user."""
  totalEventCount: Int
}

"""
Duration between two instants, represented as a fractional number of seconds.

For example: 12.3334

"""
scalar Duration

"""Autogenerated input type of EchoCreate"""
input EchoCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors to return to the user."""
  errors: [String!]

  """Messages to return to the user."""
  messages: [String!]
}

"""Autogenerated return type of EchoCreate."""
type EchoCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Messages returned to the user."""
  echoes: [String!]

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type EgressNode {
  """Artifacts egress for that project in that period of time."""
  artifactsEgress: BigInt!

  """First day of the node range. There is one node per month."""
  date: String!

  """Packages egress for that project in that period of time."""
  packagesEgress: BigInt!

  """Registry egress for that project in that period of time."""
  registryEgress: BigInt!

  """Repository egress for that project in that period of time."""
  repositoryEgress: BigInt!

  """Total egress for that project in that period of time."""
  totalEgress: BigInt!
}

"""The connection type for EgressNode."""
type EgressNodeConnection {
  """A list of edges."""
  edges: [EgressNodeEdge]

  """A list of nodes."""
  nodes: [EgressNode]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EgressNodeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: EgressNode
}

type Email {
  """Timestamp the email was confirmed."""
  confirmedAt: Time

  """Timestamp the email was created."""
  createdAt: Time!

  """Email address."""
  email: String!

  """Internal ID of the email."""
  id: ID!

  """Timestamp the email was last updated."""
  updatedAt: Time!
}

"""The connection type for Email."""
type EmailConnection {
  """A list of edges."""
  edges: [EmailEdge]

  """A list of nodes."""
  nodes: [Email]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EmailEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Email
}

"""
A `EmailID` is a global ID. It is encoded as a string.

An example `EmailID` is: `"gid://gitlab/Email/1"`.
"""
scalar EmailID

type EmailParticipantType {
  """
  Email address of the email participant. For guests, the email address is obfuscated.
  """
  email: String!
}

"""The connection type for EmailParticipantType."""
type EmailParticipantTypeConnection {
  """A list of edges."""
  edges: [EmailParticipantTypeEdge]

  """A list of nodes."""
  nodes: [EmailParticipantType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EmailParticipantTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: EmailParticipantType
}

"""Autogenerated input type of EnableDevopsAdoptionNamespace"""
input EnableDevopsAdoptionNamespaceInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace ID."""
  namespaceId: NamespaceID!

  """Display namespace ID."""
  displayNamespaceId: NamespaceID
}

"""Autogenerated return type of EnableDevopsAdoptionNamespace."""
type EnableDevopsAdoptionNamespacePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Enabled namespace after mutation."""
  enabledNamespace: DevopsAdoptionEnabledNamespace

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Types of scans enabled on a merge request"""
type EnabledSecurityScans {
  """`true` if there is a Api fuzzing scan in the pipeline"""
  apiFuzzing: Boolean!

  """`true` if there is a Cluster image scanning scan in the pipeline"""
  clusterImageScanning: Boolean!

  """`true` if there is a Container scanning scan in the pipeline"""
  containerScanning: Boolean!

  """`true` if there is a Coverage fuzzing scan in the pipeline"""
  coverageFuzzing: Boolean!

  """`true` if there is a Dast scan in the pipeline"""
  dast: Boolean!

  """`true` if there is a Dependency scanning scan in the pipeline"""
  dependencyScanning: Boolean!

  """Returns `true` when report processing has been completed."""
  ready: Boolean!

  """`true` if there is a Sarif scan in the pipeline"""
  sarif: Boolean!

  """`true` if there is a Sast scan in the pipeline"""
  sast: Boolean!

  """`true` if there is a Secret detection scan in the pipeline"""
  secretDetection: Boolean!
}

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!

  """SHA of the entry."""
  sha: String!

  """Type of tree entry."""
  type: EntryType!
}

interface EntryInterface {
  """
  Content type of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  contentType: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was created. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  createdAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Number of times the entry has been downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadsCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  MD5 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileMd5: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  SHA1 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileSha1: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ID of the cache entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  id: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Relative path of the cached entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  relativePath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Size of the cached file in bytes. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  size: BigInt! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last updated. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  updatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the upstream was last checked. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamCheckedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ETag from the upstream source. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamEtag: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
}

"""Type of a tree entry"""
enum EntryType {
  """Directory tree type."""
  tree

  """File tree type."""
  blob

  """Commit tree type."""
  commit
}

"""Describes where code is deployed for a project"""
type Environment {
  """When the environment is going to be deleted automatically."""
  autoDeleteAt: Time

  """When the environment is going to be stopped automatically."""
  autoStopAt: Time

  """Auto stop setting of the environment."""
  autoStopSetting: AutoStopSetting

  """Cluster agent of the environment."""
  clusterAgent: ClusterAgent

  """When the environment was created."""
  createdAt: Time

  """Deployment freeze periods of the environment."""
  deployFreezes: [CiFreezePeriod!]

  """
  Deployments of the environment. This field can only be resolved for one environment in any single request.
  """
  deployments(
    """Statuses of the deployments."""
    statuses: [DeploymentStatus!]

    """Order by a specified field."""
    orderBy: DeploymentsOrderByInput

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DeploymentConnection

  """
  Number of deployments in the environment for display. Returns the precise
  number up to 999, and "999+" for counts exceeding this limit.
  """
  deploymentsDisplayCount: String

  """Description of the environment."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Folder name of the environment."""
  environmentType: String

  """External URL of the environment."""
  externalUrl: String

  """Flux resource path of the environment."""
  fluxResourcePath: String

  """ID of the environment."""
  id: ID!

  """Kubernetes namespace of the environment."""
  kubernetesNamespace: String

  """Last deployment of the environment."""
  lastDeployment(
    """Status of the Deployment."""
    status: DeploymentStatus!
  ): Deployment

  """
  Most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned.
  """
  latestOpenedMostSevereAlert: AlertManagementAlert

  """Human-readable name of the environment."""
  name: String!

  """Path to the environment."""
  path: String!

  """Protected Environments for the environment."""
  protectedEnvironments(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProtectedEnvironmentConnection

  """Slug of the environment."""
  slug: String

  """State of the environment, for example: available/stopped."""
  state: String!

  """Deployment tier of the environment."""
  tier: DeploymentTier

  """When the environment was updated."""
  updatedAt: Time

  """
  Permissions for the current user on the resource. This field can only be
  resolved for one environment in any single request.
  """
  userPermissions: EnvironmentPermissions!
}

"""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!
}

"""Autogenerated input type of EnvironmentCreate"""
input EnvironmentCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Name of the environment."""
  name: String!

  """Description of the environment."""
  description: String

  """External URL of the environment."""
  externalUrl: String

  """Tier of the environment."""
  tier: DeploymentTier

  """Cluster agent of the environment."""
  clusterAgentId: ClustersAgentID

  """Kubernetes namespace of the environment."""
  kubernetesNamespace: String

  """Flux resource path of the environment."""
  fluxResourcePath: String

  """Auto stop setting of the environment."""
  autoStopSetting: AutoStopSetting
}

"""Autogenerated return type of EnvironmentCreate."""
type EnvironmentCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created environment."""
  environment: Environment

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of EnvironmentDelete"""
input EnvironmentDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the environment to Delete."""
  id: EnvironmentID!
}

"""Autogenerated return type of EnvironmentDelete."""
type EnvironmentDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""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
}

"""
A `EnvironmentID` is a global ID. It is encoded as a string.

An example `EnvironmentID` is: `"gid://gitlab/Environment/1"`.
"""
scalar EnvironmentID

type EnvironmentPermissions {
  """If `true`, the user can perform `destroy_environment` on this resource"""
  destroyEnvironment: Boolean!

  """If `true`, the user can perform `stop_environment` on this resource"""
  stopEnvironment: Boolean!

  """If `true`, the user can perform `update_environment` on this resource"""
  updateEnvironment: Boolean!
}

"""Autogenerated input type of EnvironmentsCanaryIngressUpdate"""
input EnvironmentsCanaryIngressUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the environment to update."""
  id: EnvironmentID!

  """Weight of the Canary Ingress."""
  weight: Int!
}

"""Autogenerated return type of EnvironmentsCanaryIngressUpdate."""
type EnvironmentsCanaryIngressUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of EnvironmentStop"""
input EnvironmentStopInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the environment to stop."""
  id: EnvironmentID!

  """Force environment to stop without executing on_stop actions."""
  force: Boolean
}

"""Autogenerated return type of EnvironmentStop."""
type EnvironmentStopPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Environment after attempt to stop."""
  environment: Environment

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of EnvironmentUpdate"""
input EnvironmentUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the environment to update."""
  id: EnvironmentID!

  """Description of the environment."""
  description: String

  """External URL of the environment."""
  externalUrl: String

  """Tier of the environment."""
  tier: DeploymentTier

  """Cluster agent of the environment."""
  clusterAgentId: ClustersAgentID

  """Kubernetes namespace of the environment."""
  kubernetesNamespace: String

  """Flux resource path of the environment."""
  fluxResourcePath: String

  """Auto stop setting of the environment."""
  autoStopSetting: AutoStopSetting
}

"""Autogenerated return type of EnvironmentUpdate."""
type EnvironmentUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Environment after attempt to update."""
  environment: Environment

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Represents an epic"""
type Epic implements CurrentUserTodos & Eventable & NoteableInterface & Todoable {
  """Ancestors (parents) of the epic."""
  ancestors(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """IID of the epic, e.g., "1"."""
    iid: ID

    """List of IIDs of epics, e.g., `[1, 2]`."""
    iids: [ID!]

    """Filter epics by state."""
    state: EpicState

    """List epics by sort order."""
    sort: EpicSort

    """Filter epics by author."""
    authorUsername: String

    """Filter epics by labels."""
    labelName: [String!]

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include epics from ancestor groups."""
    includeAncestorGroups: Boolean = true

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: 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
  ): EpicConnection

  """Author of the epic."""
  author: UserCore!

  """List of emoji reactions associated with the epic."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """Indicates the epic is blocked."""
  blocked: Boolean

  """Count of epics blocking the epic."""
  blockedByCount: Int

  """Epics blocking the epic."""
  blockedByEpics(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EpicConnection

  """Count of epics that the epic is blocking."""
  blockingCount: Int

  """Children (sub-epics) of the epic."""
  children(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """IID of the epic, e.g., "1"."""
    iid: ID

    """List of IIDs of epics, e.g., `[1, 2]`."""
    iids: [ID!]

    """Filter epics by state."""
    state: EpicState

    """List epics by sort order."""
    sort: EpicSort

    """Filter epics by author."""
    authorUsername: String

    """Filter epics by labels."""
    labelName: [String!]

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include child epics from ancestor groups."""
    includeAncestorGroups: Boolean = true

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: 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
  ): EpicConnection

  """Timestamp of when the epic was closed."""
  closedAt: Time

  """Color of the epic."""
  color: String

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Indicates if the epic is confidential."""
  confidential: Boolean

  """Timestamp of when the epic was created."""
  createdAt: Time

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """
  Default Project for issue creation. Based on the project the user created the last issue in.
  """
  defaultProjectForIssueCreation: Project

  """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

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """All discussions on the 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 child epics or milestones."""
  dueDateFromInheritedSource: Time

  """Inherited due date of the epic from milestones."""
  dueDateFromMilestones: Time

  """Indicates if the due date has been manually set."""
  dueDateIsFixed: Boolean

  """List of events associated with the object."""
  events(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """Group to which the epic belongs."""
  group: Group!

  """Indicates if the epic has children."""
  hasChildren: Boolean!

  """Indicates if the epic has children in the specified timeframe."""
  hasChildrenWithinTimeframe: 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: String!

  """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

  """Work items linked to the epic."""
  linkedWorkItems(
    """
    Filter by link type. Supported values: RELATED, BLOCKED_BY, and BLOCKS. Returns all types if omitted.
    """
    filter: WorkItemRelatedLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LinkedWorkItemTypeConnection

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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
  ): UserCoreConnection

  """
  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

  """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 child epics or milestones."""
  startDateFromInheritedSource: 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!

  """Text color generated for the epic."""
  textColor: String

  """Title of the epic."""
  title: String

  """HTML rendering of `title`"""
  titleHtml: String

  """Timestamp of when the epic was updated."""
  updatedAt: Time

  """Number of upvotes the epic has received."""
  upvotes: Int!

  """Number of user discussions in the epic."""
  userDiscussionsCount: Int!

  """Number of user notes of the epic."""
  userNotesCount: 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!

  """ID of the corresponding work item for a legacy epic."""
  workItemId: WorkItemID!
}

"""Autogenerated input type of EpicAddIssue"""
input EpicAddIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """IID of the epic to mutate."""
  iid: ID!

  """Group the epic to mutate belongs to."""
  groupPath: ID!

  """Full path of the project the issue belongs to."""
  projectPath: ID!

  """IID of the issue to be added."""
  issueIid: String!
}

"""Autogenerated return type of EpicAddIssue."""
type EpicAddIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Epic after mutation."""
  epic: Epic

  """Epic-issue relationship."""
  epicIssue: EpicIssue

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Represents an epic board"""
type EpicBoard {
  """Whether or not display epic colors."""
  displayColors: Boolean

  """Whether or not backlog list is hidden."""
  hideBacklogList: Boolean

  """Whether or not closed list is hidden."""
  hideClosedList: Boolean

  """Global ID of the epic board."""
  id: BoardsEpicBoardID!

  """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

  """Epic board lists."""
  lists(
    """Find an epic board list by ID."""
    id: BoardsEpicListID

    """Filters applied when getting epic metadata in the epic board list."""
    epicFilters: EpicFilters

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EpicListConnection

  """Name of the epic board."""
  name: String

  """Web path of the epic board."""
  webPath: String!

  """Web URL of the epic board."""
  webUrl: String!
}

"""The connection type for EpicBoard."""
type EpicBoardConnection {
  """A list of edges."""
  edges: [EpicBoardEdge]

  """A list of nodes."""
  nodes: [EpicBoard]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of EpicBoardCreate"""
input EpicBoardCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether or not display epic colors."""
  displayColors: Boolean

  """Board name."""
  name: String

  """Whether or not backlog list is hidden."""
  hideBacklogList: Boolean

  """Whether or not closed list is hidden."""
  hideClosedList: Boolean

  """Labels of the issue."""
  labels: [String!]

  """IDs of labels to be added to the board."""
  labelIds: [LabelID!]

  """Full path of the group with which the resource is associated."""
  groupPath: ID
}

"""Autogenerated return type of EpicBoardCreate."""
type EpicBoardCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Created epic board."""
  epicBoard: EpicBoard

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type EpicBoardEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: EpicBoard
}

"""Autogenerated input type of EpicBoardListCreate"""
input EpicBoardListCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Create the backlog list."""
  backlog: Boolean

  """Global ID of an existing label."""
  labelId: LabelID

  """Global ID of the issue board to mutate."""
  boardId: BoardsEpicBoardID!
}

"""Autogenerated return type of EpicBoardListCreate."""
type EpicBoardListCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Epic list in the epic board."""
  list: EpicList
}

"""Autogenerated input type of EpicBoardListDestroy"""
input EpicBoardListDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the epic board list to destroy."""
  listId: BoardsEpicListID!
}

"""Autogenerated return type of EpicBoardListDestroy."""
type EpicBoardListDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Epic board list. `null` if the board was destroyed successfully."""
  list: EpicList
}

"""Autogenerated input type of EpicBoardUpdate"""
input EpicBoardUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether or not display epic colors."""
  displayColors: Boolean

  """Board name."""
  name: String

  """Whether or not backlog list is hidden."""
  hideBacklogList: Boolean

  """Whether or not closed list is hidden."""
  hideClosedList: Boolean

  """Labels of the issue."""
  labels: [String!]

  """IDs of labels to be added to the board."""
  labelIds: [LabelID!]

  """Epic board global ID."""
  id: BoardsEpicBoardID!
}

"""Autogenerated return type of EpicBoardUpdate."""
type EpicBoardUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated epic board."""
  epicBoard: EpicBoard

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""The connection type for Epic."""
type EpicConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """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 the epic, including epic
  descendants. Deprecated in GitLab 16.6: Use `closedIssuesTotal`.
  """
  closedIssues: Int @deprecated(reason: "Use `closedIssuesTotal`. Deprecated in GitLab 16.6.")

  """
  Total weight of completed (closed) issues in this epic, including epic descendants,
      encoded as a string.
  """
  closedIssuesTotal: BigInt

  """
  Total weight of opened issues in the epic, including epic descendants. Deprecated in GitLab 16.6: Use `OpenedIssuesTotal`.
  """
  openedIssues: Int @deprecated(reason: "Use `OpenedIssuesTotal`. Deprecated in GitLab 16.6.")

  """
  Total weight of opened issues in the epic, including epic descendants, encoded as a string.
  """
  openedIssuesTotal: BigInt
}

"""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
}

input EpicFilters {
  """Filter by label name."""
  labelName: [String]

  """Filter by author username."""
  authorUsername: String

  """
  Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
  """
  myReactionEmoji: String

  """Negated epic arguments."""
  not: NegatedEpicBoardIssueInput

  """List of arguments with inclusive OR."""
  or: UnionedEpicFilterInput

  """Search query for epic title or description."""
  search: String

  """Filter by confidentiality."""
  confidential: Boolean

  """
  Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""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
}

"""
A `EpicID` is a global ID. It is encoded as a string.

An example `EpicID` is: `"gid://gitlab/Epic/1"`.
"""
scalar EpicID

"""Relationship between an epic and an issue"""
type EpicIssue implements CurrentUserTodos & NoteableInterface & Todoable {
  """
  Alert associated to the issue. Deprecated in GitLab 15.6: Use `alert_management_alerts`.
  """
  alertManagementAlert: AlertManagementAlert @deprecated(reason: "Use `alert_management_alerts`. Deprecated in GitLab 15.6.")

  """Alert Management alerts associated to this issue."""
  alertManagementAlerts(
    """IID of the alert. For example, "1"."""
    iid: String

    """Alerts with the specified statues. For example, `[TRIGGERED]`."""
    statuses: [AlertManagementStatus!]

    """Sort alerts by the criteria."""
    sort: AlertManagementAlertSort

    """Filter query for given domain."""
    domain: AlertManagementDomainFilter! = operations

    """Search query for title, description, service, or monitoring_tool."""
    search: String

    """Username of a user assigned to the issue."""
    assigneeUsername: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementAlertConnection

  """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
  ): UserCoreConnection

  """User that created the issue."""
  author: UserCore!

  """Indicates the issue is blocked."""
  blocked: Boolean!

  """Count of issues blocking the issue."""
  blockedByCount: Int

  """Issues blocking the issue."""
  blockedByIssues(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssueConnection

  """Count of issues the issue is blocking."""
  blockingCount: Int!

  """Issue the issue was closed as a duplicate of."""
  closedAsDuplicateOf: Issue

  """Timestamp of when the issue was closed."""
  closedAt: Time

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Indicates the issue is confidential."""
  confidential: Boolean!

  """User specific email address for the issue."""
  createNoteEmail: String

  """Timestamp of when the issue was created."""
  createdAt: Time!

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """Customer relations contacts of the issue."""
  customerRelationsContacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomerRelationsContactConnection

  """Description of the issue."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Collection of design images associated with the issue."""
  designCollection: DesignCollection

  """Indicates discussion is locked on the issue."""
  discussionLocked: Boolean!

  """All discussions on the 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

  """
  Indicates if the parent project or group has email notifications disabled:
  `true` if email notifications are disabled. Deprecated in GitLab 16.3: Use
  `emails_enabled`.
  """
  emailsDisabled: Boolean! @deprecated(reason: "Use `emails_enabled`. Deprecated in GitLab 16.3.")

  """
  Indicates if the parent project or group has email notifications disabled: `false` if email notifications are disabled.
  """
  emailsEnabled: Boolean!

  """
  Epic to which the issue belongs. Deprecated in GitLab 17.5: Replaced by WorkItem type.
  """
  epic: Epic @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """ID of the epic-issue relation."""
  epicIssueId: ID!

  """
  Escalation policy associated with the issue. Available for issues which support escalation.
  """
  escalationPolicy: EscalationPolicyType

  """Escalation status of the issue."""
  escalationStatus: IssueEscalationStatus

  """
  Email address of non-GitLab user reporting the issue. For guests, the email address is obfuscated.
  """
  externalAuthor: String

  """
  Indicates if the issue belongs to an epic.
              Can return true and not show an associated epic when the user has no access to the epic.
  """
  hasEpic: Boolean!

  """
  Indicates if the issue has a parent work item. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  hasParent: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Current health status."""
  healthStatus: HealthStatus

  """Indicates the issue is hidden because the author has been banned."""
  hidden: Boolean

  """Human-readable time estimate of the issue."""
  humanTimeEstimate: String

  """Human-readable total time reported as spent on the issue."""
  humanTotalTimeSpent: String

  """Global ID of the epic-issue relation."""
  id: ID

  """Internal ID of the issue."""
  iid: String!

  """Issuable resource links of the incident issue."""
  issuableResourceLinks(
    """ID of the incident."""
    incidentId: IssueID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssuableResourceLinkConnection

  """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

  """
  Work items linked to the issue. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  linkedWorkItems(
    """
    Filter by link type. Supported values: RELATED, BLOCKED_BY, and BLOCKS. Returns all types if omitted.
    """
    filter: WorkItemRelatedLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LinkedWorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """Number of merge requests that close the issue on merge."""
  mergeRequestsCount: Int!

  """Metric images associated to the issue."""
  metricImages: [MetricImage!]

  """Milestone of the issue."""
  milestone: Milestone

  """Indicates if issue got moved from other project."""
  moved: Boolean

  """Updated Issue after it got moved to another project."""
  movedTo: Issue

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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
  ): UserCoreConnection

  """ID of the issue project."""
  projectId: Int

  """
  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!

  """
  Merge requests related to the issue. This field can only be resolved for one issue in any single request.
  """
  relatedMergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Related vulnerabilities of the issue."""
  relatedVulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityConnection

  """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!

  """
  Status of the issue. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  status: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """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!

  """Timelogs on the issue."""
  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

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): TimelogConnection!

  """Title of the issue."""
  title: String!

  """HTML rendering of `title`"""
  titleHtml: String

  """Total time (in seconds) reported as spent on the issue."""
  totalTimeSpent: Int!

  """Type of the issue."""
  type: IssueType

  """Timestamp of when the issue was last updated."""
  updatedAt: Time!

  """User that last updated the issue."""
  updatedBy: UserCore

  """Number of upvotes the issue has received."""
  upvotes: Int!

  """Number of user discussions in the issue."""
  userDiscussionsCount: 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

  """Type assigned to the issue."""
  workItemType: WorkItemType!
}

"""The connection type for EpicIssue."""
type EpicIssueConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [EpicIssueEdge]

  """A list of nodes."""
  nodes: [EpicIssue]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """Total weight of issues collection."""
  weight: Int!
}

"""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
}

"""Represents an epic board list"""
type EpicList {
  """Indicates if the list is collapsed for the user."""
  collapsed: Boolean

  """List epics."""
  epics(
    """Filters applied when selecting epics in the board list."""
    filters: EpicFilters

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EpicConnection

  """Global ID of the board list."""
  id: BoardsEpicListID!

  """Label of the list."""
  label: Label

  """Type of the list."""
  listType: String!

  """Epic list metatada."""
  metadata: EpicListMetadata

  """Position of the list within the board."""
  position: Int

  """Title of the list."""
  title: String!
}

"""The connection type for EpicList."""
type EpicListConnection {
  """A list of edges."""
  edges: [EpicListEdge]

  """A list of nodes."""
  nodes: [EpicList]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EpicListEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: EpicList
}

"""Represents epic board list metadata"""
type EpicListMetadata {
  """Count of epics in the list."""
  epicsCount: Int

  """
  Total weight of all issues in the list. Introduced in GitLab 14.7: **Status**: Experiment.
  """
  totalWeight: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 14.7.")
}

"""Autogenerated input type of EpicMoveList"""
input EpicMoveListInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the board that the epic is in."""
  boardId: BoardsEpicBoardID!

  """ID of the epic to mutate."""
  epicId: EpicID!

  """
  ID of the board list that the epic will be moved from. Required if moving between lists.
  """
  fromListId: BoardsEpicListID

  """ID of the list the epic will be in after mutation."""
  toListId: BoardsEpicListID!

  """ID of epic that should be placed before the current epic."""
  moveBeforeId: EpicID

  """ID of epic that should be placed after the current epic."""
  moveAfterId: EpicID

  """
  Position of epics within the board list. Positions start at 0. Use -1 to move to the end of the list.
  """
  positionInList: Int
}

"""Autogenerated return type of EpicMoveList."""
type EpicMoveListPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Epic after mutation."""
  epic: Epic

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Check permissions for the current user on an epic"""
type EpicPermissions {
  """If `true`, the user can perform `admin_epic` on this resource"""
  adminEpic: Boolean!

  """If `true`, the user can perform `admin_epic_relation` on this resource"""
  adminEpicRelation: Boolean!

  """If `true`, the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """If `true`, the user can perform `create_epic` on this resource"""
  createEpic: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """If `true`, the user can perform `destroy_epic` on this resource"""
  destroyEpic: Boolean!

  """If `true`, the user can perform `read_epic` on this resource"""
  readEpic: Boolean!

  """If `true`, the user can perform `read_epic_iid` on this resource"""
  readEpicIid: Boolean!

  """If `true`, 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

  """IID of the epic to mutate."""
  iid: ID!

  """Group the epic to mutate belongs to."""
  groupPath: ID!

  """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

  """Epic after mutation."""
  epic: Epic

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Roadmap sort values"""
enum EpicSort {
  """
  Start date at descending order. Deprecated in GitLab 13.11: Use START_DATE_DESC.
  """
  start_date_desc @deprecated(reason: "Use START_DATE_DESC. Deprecated in GitLab 13.11.")

  """
  Start date at ascending order. Deprecated in GitLab 13.11: Use START_DATE_ASC.
  """
  start_date_asc @deprecated(reason: "Use START_DATE_ASC. Deprecated in GitLab 13.11.")

  """
  End date at descending order. Deprecated in GitLab 13.11: Use END_DATE_DESC.
  """
  end_date_desc @deprecated(reason: "Use END_DATE_DESC. Deprecated in GitLab 13.11.")

  """
  End date at ascending order. Deprecated in GitLab 13.11: Use END_DATE_ASC.
  """
  end_date_asc @deprecated(reason: "Use END_DATE_ASC. Deprecated in GitLab 13.11.")

  """Sort by start date in descending order."""
  START_DATE_DESC

  """Sort by start date in ascending order."""
  START_DATE_ASC

  """Sort by end date in descending order."""
  END_DATE_DESC

  """Sort by end date in ascending order."""
  END_DATE_ASC

  """Sort by title in descending order."""
  TITLE_DESC

  """Sort by title in ascending order."""
  TITLE_ASC

  """Sort by created_at by ascending order."""
  CREATED_AT_ASC

  """Sort by created_at by descending order."""
  CREATED_AT_DESC

  """Sort by updated_at by ascending order."""
  UPDATED_AT_ASC

  """Sort by updated_at by descending order."""
  UPDATED_AT_DESC
}

"""State of an epic"""
enum EpicState {
  """All epics."""
  all

  """Open epics."""
  opened

  """Closed epics."""
  closed
}

"""State event of an epic"""
enum EpicStateEvent {
  """Reopen the epic."""
  REOPEN

  """Close the epic."""
  CLOSE
}

"""A node of an epic tree."""
input EpicTreeNodeFieldsInputType {
  """ID of the epic issue or epic that is being moved."""
  id: EpicTreeSortingID!

  """ID of the epic issue or issue the epic or issue is switched with."""
  adjacentReferenceId: EpicTreeSortingID

  """Type of switch. Valid values are `after` or `before`."""
  relativePosition: MoveType

  """ID of the new parent epic."""
  newParentId: EpicID
}

"""Autogenerated input type of EpicTreeReorder"""
input EpicTreeReorderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the base epic of the tree."""
  baseEpicId: EpicID!

  """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 the mutation."""
  errors: [String!]!
}

"""
A `EpicTreeSortingID` is a global ID. It is encoded as a string.

An example `EpicTreeSortingID` is: `"gid://gitlab/EpicTreeSorting/1"`.
"""
scalar EpicTreeSortingID

"""Epic ID wildcard values"""
enum EpicWildcardId {
  """No epic is assigned."""
  NONE

  """Any epic is assigned."""
  ANY
}

"""Represents a stack trace"""
type ErrorTrackingStackTrace {
  """Absolute path of the stack trace."""
  absolutePath: String

  """Column number of the stack trace."""
  columnNumber: Int

  """Context of the stack trace."""
  context: [WorkItemWidgetErrorTrackingStackTraceContext!]

  """Filename of the stack trace."""
  filename: String

  """Name of the function where the error occurred."""
  function: String

  """Line number of the stack trace."""
  lineNumber: Int
}

"""The connection type for ErrorTrackingStackTrace."""
type ErrorTrackingStackTraceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ErrorTrackingStackTraceEdge]

  """A list of nodes."""
  nodes: [ErrorTrackingStackTrace]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ErrorTrackingStackTraceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ErrorTrackingStackTrace
}

"""Status of the error tracking service"""
enum ErrorTrackingStatus {
  """Successfully fetch the stack trace."""
  SUCCESS

  """Error tracking service respond with an error."""
  ERROR

  """Sentry issue not found."""
  NOT_FOUND

  """Error tracking service is not ready."""
  RETRY
}

"""Autogenerated input type of EscalationPolicyCreate"""
input EscalationPolicyCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the escalation policy for."""
  projectPath: ID!

  """Name of the escalation policy."""
  name: String!

  """Description of the escalation policy."""
  description: String

  """Steps of the escalation policy."""
  rules: [EscalationRuleInput!]!
}

"""Autogenerated return type of EscalationPolicyCreate."""
type EscalationPolicyCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Escalation policy."""
  escalationPolicy: EscalationPolicyType
}

"""Autogenerated input type of EscalationPolicyDestroy"""
input EscalationPolicyDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Escalation policy internal ID to remove."""
  id: IncidentManagementEscalationPolicyID!
}

"""Autogenerated return type of EscalationPolicyDestroy."""
type EscalationPolicyDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Escalation policy."""
  escalationPolicy: EscalationPolicyType
}

"""Represents an escalation policy"""
type EscalationPolicyType {
  """Description of the escalation policy."""
  description: String

  """ID of the escalation policy."""
  id: IncidentManagementEscalationPolicyID

  """Name of the escalation policy."""
  name: String

  """Steps of the escalation policy."""
  rules: [EscalationRuleType!]
}

"""The connection type for EscalationPolicyType."""
type EscalationPolicyTypeConnection {
  """A list of edges."""
  edges: [EscalationPolicyTypeEdge]

  """A list of nodes."""
  nodes: [EscalationPolicyType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EscalationPolicyTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: EscalationPolicyType
}

"""Autogenerated input type of EscalationPolicyUpdate"""
input EscalationPolicyUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the on-call schedule to create the on-call rotation in."""
  id: IncidentManagementEscalationPolicyID!

  """Name of the escalation policy."""
  name: String

  """Description of the escalation policy."""
  description: String

  """Steps of the escalation policy."""
  rules: [EscalationRuleInput!]
}

"""Autogenerated return type of EscalationPolicyUpdate."""
type EscalationPolicyUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Escalation policy."""
  escalationPolicy: EscalationPolicyType
}

"""Represents an escalation rule"""
input EscalationRuleInput {
  """On-call schedule to notify."""
  oncallScheduleIid: ID

  """Username of the user to notify."""
  username: String

  """Time in seconds before the rule is activated."""
  elapsedTimeSeconds: Int!

  """Status required to prevent the rule from activating."""
  status: EscalationRuleStatus!
}

"""Escalation rule statuses"""
enum EscalationRuleStatus {
  """."""
  ACKNOWLEDGED

  """."""
  RESOLVED
}

"""Represents an escalation rule for an escalation policy"""
type EscalationRuleType {
  """Time in seconds before the rule is activated."""
  elapsedTimeSeconds: Int

  """ID of the escalation policy."""
  id: IncidentManagementEscalationRuleID

  """On-call schedule to notify."""
  oncallSchedule: IncidentManagementOncallSchedule

  """Status required to prevent the rule from activating."""
  status: EscalationRuleStatus

  """User to notify."""
  user: UserCore
}

"""Representing an event"""
type Event {
  """Action of the event."""
  action: EventAction!

  """Author of the event."""
  author: UserCore!

  """When the event was created."""
  createdAt: Time!

  """ID of the event."""
  id: ID!

  """Project of the event."""
  project: Project

  """
  Payload of the push event, when the event represents a push. `null` for non-push events.
  """
  pushEventPayload: PushEventPayload

  """Target of the event."""
  target: EventTargetType

  """When the event was updated."""
  updatedAt: Time!
}

interface Eventable {
  """List of events associated with the object."""
  events(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection
}

"""Event action"""
enum EventAction {
  """Created action"""
  CREATED

  """Updated action"""
  UPDATED

  """Closed action"""
  CLOSED

  """Reopened action"""
  REOPENED

  """Pushed action"""
  PUSHED

  """Commented action"""
  COMMENTED

  """Merged action"""
  MERGED

  """Joined action"""
  JOINED

  """Left action"""
  LEFT

  """Destroyed action"""
  DESTROYED

  """Expired action"""
  EXPIRED

  """Approved action"""
  APPROVED

  """Transferred action"""
  TRANSFERRED
}

"""The connection type for Event."""
type EventConnection {
  """A list of edges."""
  edges: [EventEdge]

  """A list of nodes."""
  nodes: [Event]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type EventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Event
}

"""Represents an object that can be the subject of an event."""
union EventTargetType = Design | Issue | MergeRequest | Milestone | Note | Project | Snippet | UserCore | WikiPage

"""Enum for the security scanners used with exclusions"""
enum ExclusionScannerEnum {
  """Secret push protection."""
  SECRET_PUSH_PROTECTION
}

"""Enum for types of exclusion for a security scanner"""
enum ExclusionTypeEnum {
  """File or directory location."""
  PATH

  """Regex pattern matching rules."""
  REGEX_PATTERN

  """Raw value to ignore."""
  RAW_VALUE

  """Scanner rule identifier."""
  RULE
}

"""Autogenerated input type of ExportRequirements"""
input ExportRequirementsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """List requirements by sort order."""
  sort: Sort

  """Filter requirements by state."""
  state: RequirementState

  """Search query for requirement title."""
  search: String

  """Filter requirements by author username."""
  authorUsername: [String!]

  """Full project path the requirements are associated with."""
  projectPath: ID!

  """List of selected requirements fields to be exported."""
  selectedFields: [String!]
}

"""Autogenerated return type of ExportRequirements."""
type ExportRequirementsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Defines the common fields for all expressions."""
interface ExpressionInterface {
  """Field the expression applies to."""
  field: String!

  """Operator of the expression."""
  operator: String!
}

"""Represents possible value types for an expression."""
union ExpressionValue = BooleanExpression | IntegerExpression | StringExpression

"""
Values for status of the Web IDE Extension Marketplace opt-in for the user
"""
enum ExtensionsMarketplaceOptInStatus {
  """Web IDE Extension Marketplace opt-in status: UNSET."""
  UNSET

  """Web IDE Extension Marketplace opt-in status: ENABLED."""
  ENABLED

  """Web IDE Extension Marketplace opt-in status: DISABLED."""
  DISABLED
}

"""Represents an external resource to send audit events to"""
type ExternalAuditEventDestination implements ExternalAuditEventDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """External destination to send audit events to."""
  destinationUrl: String!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """Group the destination belongs to."""
  group: Group!

  """List of additional HTTP headers sent with each event."""
  headers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AuditEventStreamingHeaderConnection!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """List of subgroup or project filters for the destination."""
  namespaceFilter: AuditEventStreamingHTTPNamespaceFilter

  """Verification token to validate source of event."""
  verificationToken: String!
}

"""The connection type for ExternalAuditEventDestination."""
type ExternalAuditEventDestinationConnection {
  """A list of edges."""
  edges: [ExternalAuditEventDestinationEdge]

  """A list of nodes."""
  nodes: [ExternalAuditEventDestination]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ExternalAuditEventDestinationCreate"""
input ExternalAuditEventDestinationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination URL."""
  destinationUrl: String!

  """Destination name."""
  name: String

  """Group path."""
  groupPath: ID!

  """Verification token."""
  verificationToken: String
}

"""Autogenerated return type of ExternalAuditEventDestinationCreate."""
type ExternalAuditEventDestinationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destination created."""
  externalAuditEventDestination: ExternalAuditEventDestination
}

"""Autogenerated input type of ExternalAuditEventDestinationDestroy"""
input ExternalAuditEventDestinationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of external audit event destination to destroy."""
  id: AuditEventsExternalAuditEventDestinationID!
}

"""Autogenerated return type of ExternalAuditEventDestinationDestroy."""
type ExternalAuditEventDestinationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type ExternalAuditEventDestinationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ExternalAuditEventDestination
}

interface ExternalAuditEventDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """External destination to send audit events to."""
  destinationUrl: String!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """Verification token to validate source of event."""
  verificationToken: String!
}

"""Autogenerated input type of ExternalAuditEventDestinationUpdate"""
input ExternalAuditEventDestinationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of external audit event destination to update."""
  id: AuditEventsExternalAuditEventDestinationID!

  """Destination URL to change."""
  destinationUrl: String

  """Destination name."""
  name: String

  """Active status of the destination."""
  active: Boolean
}

"""Autogenerated return type of ExternalAuditEventDestinationUpdate."""
type ExternalAuditEventDestinationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated destination."""
  externalAuditEventDestination: ExternalAuditEventDestination
}

"""Represents an external issue"""
type ExternalIssue {
  """Timestamp of when the issue was created."""
  createdAt: Time

  """Type of external tracker."""
  externalTracker: String

  """Relative reference of the issue in the external tracker."""
  relativeReference: String

  """Status of the issue in the external tracker."""
  status: String

  """Title of the issue in the external tracker."""
  title: String

  """Timestamp of when the issue was updated."""
  updatedAt: Time

  """URL to the issue in the external tracker."""
  webUrl: String
}

"""Describes an external status check."""
type ExternalStatusCheck {
  """External URL for the status check."""
  externalUrl: String!

  """Whether or not HMAC secret is enabled for the status check."""
  hmac: Boolean!

  """ID of the rule."""
  id: GlobalID!

  """Name of the rule."""
  name: String!
}

"""The connection type for ExternalStatusCheck."""
type ExternalStatusCheckConnection {
  """A list of edges."""
  edges: [ExternalStatusCheckEdge]

  """A list of nodes."""
  nodes: [ExternalStatusCheck]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ExternalStatusCheckEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ExternalStatusCheck
}

type FeatureFlag {
  """Whether the feature flag is active."""
  active: Boolean!

  """Global ID of the feature flag."""
  id: OperationsFeatureFlagID!

  """Name of the feature flag."""
  name: String!

  """Path to feature flag."""
  path: String!

  """Reference to feature flag."""
  reference: String!
}

"""The connection type for FeatureFlag."""
type FeatureFlagConnection {
  """A list of edges."""
  edges: [FeatureFlagEdge]

  """A list of nodes."""
  nodes: [FeatureFlag]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type FeatureFlagEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: FeatureFlag
}

type FileUpload {
  """Global ID of the upload."""
  id: UploadID!

  """Path of the upload."""
  path: String!

  """Size of the upload in bytes."""
  size: Int!
}

"""
Represents an error encountered while setting due dates for a vulnerability finding.
"""
type FindingDueDatesSetError {
  """Machine-readable error code."""
  code: String!

  """UUID of the vulnerability finding associated with the error."""
  findingUuid: String

  """Human-readable error message."""
  message: String!
}

input FindingDueDatesSetInput {
  """UUID of the vulnerability finding."""
  findingUuid: String!

  """Due date for the finding. Pass null to remove."""
  dueDate: Date
}

type FindingDueDatesSetPayload {
  """Number of findings for which a due date was successfully assigned."""
  assigned: Int

  """
  Errors encountered during the mutation. A maximum of 1000 errors are returned per request.
  """
  errors: [FindingDueDatesSetError!]!

  """Number of findings for which a due date was successfully removed."""
  removed: Int

  """Number of findings that were skipped due to errors or not found."""
  skipped: Int
}

"""Represents security reports comparison for vulnerability findings."""
type FindingReportsComparer {
  """
  Compared security report. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  report: ComparedSecurityReport @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """Comparison status."""
  status: FindingReportsComparerStatus

  """Text explaining the status."""
  statusReason: String
}

"""Report comparison status"""
enum FindingReportsComparerStatus {
  """Report was generated."""
  PARSED

  """Report is being generated."""
  PARSING

  """An error happened while generating the report."""
  ERROR
}

"""Response for `FinishedPipelines` aggregation engine"""
type FinishedPipelinesAggregationResponse {
  """Pipeline canceled rate"""
  canceledRate: Float

  """
  Aggregation dimensions. Every selected dimension will be used for aggregation.
  """
  dimensions: FinishedPipelinesAggregationResponseDimensions

  """Pipeline duration quantile in seconds"""
  durationQuantile(quantile: Float): Float

  """Pipeline failure rate"""
  failureRate: Float

  """Pipeline skipped rate"""
  skippedRate: Float

  """Pipeline success rate"""
  successRate: Float

  """Total number of pipelines"""
  totalCount: Int
}

"""The connection type for FinishedPipelinesAggregationResponse."""
type FinishedPipelinesAggregationResponseConnection {
  """Total number of aggregated rows."""
  count: Int!

  """A list of edges."""
  edges: [FinishedPipelinesAggregationResponseEdge]

  """A list of nodes."""
  nodes: [FinishedPipelinesAggregationResponse]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Response dimensions for `FinishedPipelines` aggregation engine"""
type FinishedPipelinesAggregationResponseDimensions {
  """Pipeline finish time"""
  finishedAt(granularity: String): Time

  """Project"""
  project: Project

  """Pipeline ref"""
  ref: String

  """Pipeline source"""
  source: String

  """Pipeline start time"""
  startedAt(granularity: String): Time

  """Pipeline status"""
  status: String
}

"""An edge in a connection."""
type FinishedPipelinesAggregationResponseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: FinishedPipelinesAggregationResponse
}

"""
Aggregation scope for `FinishedPipelines`. Apply ordering and pagination on the aggregation.
"""
type FinishedPipelinesAggregationScope {
  """Aggregated data."""
  aggregated(
    """Sorting order list for the aggregated data."""
    orderBy: [AggregationOrder!]

    """
    Filter by exact pipeline success rate The `success_rate` metric must also be requested when using this filter
    """
    successRate: [Float!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): FinishedPipelinesAggregationResponseConnection
}

"""
Fix Pipeline user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type fixPipelineUserMetrics {
  """Total count of `fix_pipeline_suggestion_applied` event."""
  fixPipelineSuggestionAppliedEventCount: Int

  """Total count of `fix_pipeline_suggestion_posted` event."""
  fixPipelineSuggestionPostedEventCount: Int

  """Date of the last Fix Pipeline activity for the user."""
  lastDuoActivityOn: Date

  """Total count of all Fix Pipeline events for the user."""
  totalEventCount: Int
}

"""Values for Duo Agent Platform flow type sorting"""
enum FlowTypeSort {
  """Sort by sessions count in ascending order."""
  SESSIONS_COUNT_ASC

  """Sort by sessions count in descending order."""
  SESSIONS_COUNT_DESC

  """Sort by unique users count in ascending order."""
  USERS_COUNT_ASC

  """Sort by unique users count in descending order."""
  USERS_COUNT_DESC

  """Sort by median execution time in ascending order."""
  MEDIAN_TIME_ASC

  """Sort by median execution time in descending order."""
  MEDIAN_TIME_DESC
}

"""Details of the fork project compared to its upstream project."""
type ForkDetails {
  """Number of commits ahead of upstream."""
  ahead: Int

  """Number of commits behind upstream."""
  behind: Int

  """Indicates if the fork conflicts with its upstream project."""
  hasConflicts: Boolean

  """Indicates if there is a synchronization in progress."""
  isSyncing: Boolean
}

"""
A `GeoAbuseReportUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoAbuseReportUploadRegistryID` is: `"gid://gitlab/Geo::AbuseReportUploadRegistry/1"`.
"""
scalar GeoAbuseReportUploadRegistryID

"""
A `GeoAchievementUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoAchievementUploadRegistryID` is: `"gid://gitlab/Geo::AchievementUploadRegistry/1"`.
"""
scalar GeoAchievementUploadRegistryID

"""
A `GeoAiVectorizableFileUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoAiVectorizableFileUploadRegistryID` is: `"gid://gitlab/Geo::AiVectorizableFileUploadRegistry/1"`.
"""
scalar GeoAiVectorizableFileUploadRegistryID

"""
A `GeoAlertManagementMetricImageUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoAlertManagementMetricImageUploadRegistryID` is:
`"gid://gitlab/Geo::AlertManagementMetricImageUploadRegistry/1"`.
"""
scalar GeoAlertManagementMetricImageUploadRegistryID

"""
A `GeoBaseRegistryID` is a global ID. It is encoded as a string.

An example `GeoBaseRegistryID` is: `"gid://gitlab/Geo::BaseRegistry/1"`.
"""
scalar GeoBaseRegistryID

"""
A `GeoBulkImportExportUploadUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoBulkImportExportUploadUploadRegistryID` is: `"gid://gitlab/Geo::BulkImportExportUploadUploadRegistry/1"`.
"""
scalar GeoBulkImportExportUploadUploadRegistryID

"""
A `GeoCiSecureFileRegistryID` is a global ID. It is encoded as a string.

An example `GeoCiSecureFileRegistryID` is: `"gid://gitlab/Geo::CiSecureFileRegistry/1"`.
"""
scalar GeoCiSecureFileRegistryID

"""
A `GeoContainerRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoContainerRepositoryRegistryID` is: `"gid://gitlab/Geo::ContainerRepositoryRegistry/1"`.
"""
scalar GeoContainerRepositoryRegistryID

"""
A `GeoDependencyListExportPartUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoDependencyListExportPartUploadRegistryID` is: `"gid://gitlab/Geo::DependencyListExportPartUploadRegistry/1"`.
"""
scalar GeoDependencyListExportPartUploadRegistryID

"""
A `GeoDependencyListExportUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoDependencyListExportUploadRegistryID` is: `"gid://gitlab/Geo::DependencyListExportUploadRegistry/1"`.
"""
scalar GeoDependencyListExportUploadRegistryID

"""
A `GeoDependencyProxyBlobRegistryID` is a global ID. It is encoded as a string.

An example `GeoDependencyProxyBlobRegistryID` is: `"gid://gitlab/Geo::DependencyProxyBlobRegistry/1"`.
"""
scalar GeoDependencyProxyBlobRegistryID

"""
A `GeoDependencyProxyManifestRegistryID` is a global ID. It is encoded as a string.

An example `GeoDependencyProxyManifestRegistryID` is: `"gid://gitlab/Geo::DependencyProxyManifestRegistry/1"`.
"""
scalar GeoDependencyProxyManifestRegistryID

"""
A `GeoDesignManagementActionUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoDesignManagementActionUploadRegistryID` is: `"gid://gitlab/Geo::DesignManagementActionUploadRegistry/1"`.
"""
scalar GeoDesignManagementActionUploadRegistryID

"""
A `GeoDesignManagementRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoDesignManagementRepositoryRegistryID` is: `"gid://gitlab/Geo::DesignManagementRepositoryRegistry/1"`.
"""
scalar GeoDesignManagementRepositoryRegistryID

"""
A `GeoGroupUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoGroupUploadRegistryID` is: `"gid://gitlab/Geo::GroupUploadRegistry/1"`.
"""
scalar GeoGroupUploadRegistryID

"""
A `GeoGroupWikiRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoGroupWikiRepositoryRegistryID` is: `"gid://gitlab/Geo::GroupWikiRepositoryRegistry/1"`.
"""
scalar GeoGroupWikiRepositoryRegistryID

"""
A `GeoImportExportUploadUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoImportExportUploadUploadRegistryID` is: `"gid://gitlab/Geo::ImportExportUploadUploadRegistry/1"`.
"""
scalar GeoImportExportUploadUploadRegistryID

"""
A `GeoIssuableMetricImageUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoIssuableMetricImageUploadRegistryID` is: `"gid://gitlab/Geo::IssuableMetricImageUploadRegistry/1"`.
"""
scalar GeoIssuableMetricImageUploadRegistryID

"""
A `GeoJobArtifactRegistryID` is a global ID. It is encoded as a string.

An example `GeoJobArtifactRegistryID` is: `"gid://gitlab/Geo::JobArtifactRegistry/1"`.
"""
scalar GeoJobArtifactRegistryID

"""
A `GeoLfsObjectRegistryID` is a global ID. It is encoded as a string.

An example `GeoLfsObjectRegistryID` is: `"gid://gitlab/Geo::LfsObjectRegistry/1"`.
"""
scalar GeoLfsObjectRegistryID

"""
A `GeoMergeRequestDiffRegistryID` is a global ID. It is encoded as a string.

An example `GeoMergeRequestDiffRegistryID` is: `"gid://gitlab/Geo::MergeRequestDiffRegistry/1"`.
"""
scalar GeoMergeRequestDiffRegistryID

type GeoNode {
  """
  Find Abuse Report Upload registries on this Geo node. Ignored if
  `geo_abuse_report_upload_replication` feature flag is disabled. Introduced in
  GitLab 18.10: **Status**: Experiment.
  """
  abuseReportUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoAbuseReportUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AbuseReportUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Find Achievement Upload registries on this Geo node. Ignored if
  `geo_achievement_upload_replication` feature flag is disabled. Introduced in
  GitLab 18.11: **Status**: Experiment.
  """
  achievementUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoAchievementUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AchievementUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Find AI Vectorizable File Upload registries on this Geo node. Ignored if
  `geo_ai_vectorizable_file_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiVectorizableFileUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoAiVectorizableFileUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiVectorizableFileUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Find Alert Management Metric Image Upload registries on this Geo node. Ignored
  if `geo_alert_management_metric_image_upload_replication` feature flag is
  disabled. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  alertManagementMetricImageUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoAlertManagementMetricImageUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementMetricImageUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Find bulk import/export archive upload registries on this Geo node. Ignored if
  `geo_bulk_import_export_upload_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  bulkImportExportUploadUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoBulkImportExportUploadUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): BulkImportExportUploadUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Find Ci Secure File registries on this Geo node"""
  ciSecureFileRegistries(
    """Filters registries by their ID."""
    ids: [GeoCiSecureFileRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiSecureFileRegistryConnection

  """
  Maximum concurrency of container repository sync for the secondary node.
  """
  containerRepositoriesMaxCapacity: Int

  """Find Container Repository registries on this Geo node."""
  containerRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoContainerRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerRepositoryRegistryConnection

  """
  Find Dependency List Export Part Upload registries on this Geo node. Ignored
  if `geo_dependency_list_export_part_upload_replication` feature flag is
  disabled. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  dependencyListExportPartUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoDependencyListExportPartUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyListExportPartUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")

  """
  Find Dependency List Export Upload registries on this Geo node. Ignored if
  `geo_dependency_list_export_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  dependencyListExportUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoDependencyListExportUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyListExportUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Find Dependency Proxy Blob registries on this Geo node. Introduced in GitLab 15.6: **Status**: Experiment.
  """
  dependencyProxyBlobRegistries(
    """Filters registries by their ID."""
    ids: [GeoDependencyProxyBlobRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyProxyBlobRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")

  """Find Dependency Proxy Manifest registries on this Geo node."""
  dependencyProxyManifestRegistries(
    """Filters registries by their ID."""
    ids: [GeoDependencyProxyManifestRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyProxyManifestRegistryConnection

  """
  Find Design Management Action Upload registries on this Geo node. Ignored if
  `geo_design_management_action_upload_replication` feature flag is disabled.
  Introduced in GitLab 18.11: **Status**: Experiment.
  """
  designManagementActionUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoDesignManagementActionUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DesignManagementActionUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Find Design Management Repository registries on this Geo node. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  designManagementRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoDesignManagementRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DesignManagementRepositoryRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """Indicates whether the Geo node is enabled."""
  enabled: Boolean

  """Maximum concurrency of LFS/attachment backfill for the secondary node."""
  filesMaxCapacity: Int

  """
  Find Group Upload registries on this Geo node. Ignored if
  `geo_group_upload_replication` feature flag is disabled. Introduced in GitLab
  18.11: **Status**: Experiment.
  """
  groupUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoGroupUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Find group wiki repository registries on this Geo node."""
  groupWikiRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoGroupWikiRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupWikiRepositoryRegistryConnection

  """ID of the GeoNode."""
  id: ID!

  """
  Find import/export archive upload registries on this Geo node. Ignored if
  `geo_import_export_upload_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  importExportUploadUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoImportExportUploadUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ImportExportUploadUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  URL defined on the primary node secondary nodes should use to contact it.
  """
  internalUrl: String

  """
  Find Issuable Metric Image Upload registries on this Geo node. Ignored if
  `geo_issuable_metric_image_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  issuableMetricImageUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoIssuableMetricImageUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssuableMetricImageUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Find Job Artifact registries on this Geo node."""
  jobArtifactRegistries(
    """Filters registries by their ID."""
    ids: [GeoJobArtifactRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): JobArtifactRegistryConnection

  """Find LFS object registries on this Geo node."""
  lfsObjectRegistries(
    """Filters registries by their ID."""
    ids: [GeoLfsObjectRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LfsObjectRegistryConnection

  """Find merge request diff registries on this Geo node."""
  mergeRequestDiffRegistries(
    """Filters registries by their ID."""
    ids: [GeoMergeRequestDiffRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestDiffRegistryConnection

  """
  Interval (in days) in which the repository verification is valid. After expiry, it is reverted.
  """
  minimumReverificationInterval: Int

  """Unique identifier for the Geo node."""
  name: String

  """
  Find Organization Detail Upload registries on this Geo node. Ignored if
  `geo_organization_detail_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.2: **Status**: Experiment.
  """
  organizationDetailUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoOrganizationDetailUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): OrganizationDetailUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")

  """Package file registries of the GeoNode."""
  packageFileRegistries(
    """Filters registries by their ID."""
    ids: [GeoPackageFileRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageFileRegistryConnection

  """
  Find Debian Project Component File registries on this Geo node. Ignored if
  `geo_packages_debian_project_component_file_replication` feature flag is
  disabled. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  packagesDebianProjectComponentFileRegistries(
    """Filters registries by their ID."""
    ids: [GeoPackagesDebianProjectComponentFileRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackagesDebianProjectComponentFileRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Find Helm Metadata Cache registries on this Geo node. Ignored if
  `geo_packages_helm_metadata_cache_replication` feature flag is disabled.
  """
  packagesHelmMetadataCacheRegistries(
    """Filters registries by their ID."""
    ids: [GeoPackagesHelmMetadataCacheRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackagesHelmMetadataCacheRegistryConnection

  """
  Find Packages::Nuget::Symbols registries on this Geo node. Ignored if
  `geo_packages_nuget_symbol_replication` feature flag is disabled.
  """
  packagesNugetSymbolRegistries(
    """Filters registries by their ID."""
    ids: [GeoPackagesNugetSymbolRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackagesNugetSymbolRegistryConnection

  """Find Pages Deployment registries on this Geo node"""
  pagesDeploymentRegistries(
    """Filters registries by their ID."""
    ids: [GeoPagesDeploymentRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PagesDeploymentRegistryConnection

  """
  Find Personal Snippet Upload registries on this Geo node. Ignored if
  `geo_personal_snippet_upload_replication` feature flag is disabled. Introduced
  in GitLab 19.1: **Status**: Experiment.
  """
  personalSnippetUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoPersonalSnippetUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalSnippetUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Find pipeline artifact registries on this Geo node."""
  pipelineArtifactRegistries(
    """Filters registries by their ID."""
    ids: [GeoPipelineArtifactRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineArtifactRegistryConnection

  """Indicates whether the Geo node is the primary."""
  primary: Boolean

  """
  Find Relation Export File Upload registries on this Geo node. Ignored if
  `geo_project_import_export_relation_export_upload_upload_replication` feature
  flag is disabled. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  projectImportExportRelationExportUploadUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoProjectImportExportRelationExportUploadUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectImportExportRelationExportUploadUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Find Project registries on this Geo node. Ignored if `geo_project_repository_replication` feature flag is disabled.
  """
  projectRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoProjectRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectRepositoryRegistryConnection

  """
  Find Project Upload registries on this Geo node. Ignored if
  `geo_project_upload_replication` feature flag is disabled. Introduced in
  GitLab 18.10: **Status**: Experiment.
  """
  projectUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoProjectUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Find Project Wiki Repository registries on this Geo node. Ignored if
  `geo_project_wiki_repository_replication` feature flag is disabled.
  """
  projectWikiRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoProjectWikiRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectWikiRepositoryRegistryConnection

  """Maximum concurrency of repository backfill for the secondary node."""
  reposMaxCapacity: Int

  """
  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

  """
  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

  """Find snippet repository registries on this Geo node."""
  snippetRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [GeoSnippetRepositoryRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetRepositoryRegistryConnection

  """
  Indicates if the secondary node will replicate blobs in Object Storage.
  """
  syncObjectStorage: Boolean

  """Find terraform state version registries on this Geo node."""
  terraformStateVersionRegistries(
    """Filters registries by their ID."""
    ids: [GeoTerraformStateVersionRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TerraformStateVersionRegistryConnection

  """Find Upload registries on this Geo node"""
  uploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UploadRegistryConnection

  """User-facing URL for the Geo node."""
  url: String

  """
  Find User Permission Export File Upload registries on this Geo node. Ignored
  if `geo_user_permission_export_upload_upload_replication` feature flag is
  disabled. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  userPermissionExportUploadUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoUserPermissionExportUploadUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserPermissionExportUploadUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Find User Upload registries on this Geo node. Ignored if
  `geo_user_upload_replication` feature flag is disabled. Introduced in GitLab
  18.11: **Status**: Experiment.
  """
  userUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoUserUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Maximum concurrency of repository verification for the secondary node."""
  verificationMaxCapacity: Int

  """
  Find Vulnerability Archive Export Upload registries on this Geo node. Ignored
  if `geo_vulnerability_archive_export_upload_replication` feature flag is
  disabled. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  vulnerabilityArchiveExportUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoVulnerabilityArchiveExportUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityArchiveExportUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Find Vulnerability Export Part Upload registries on this Geo node. Ignored if
  `geo_vulnerability_export_part_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  vulnerabilityExportPartUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoVulnerabilityExportPartUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityExportPartUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Find Vulnerability Export Upload registries on this Geo node. Ignored if
  `geo_vulnerability_export_upload_replication` feature flag is disabled.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  vulnerabilityExportUploadRegistries(
    """Filters registries by their ID."""
    ids: [GeoVulnerabilityExportUploadRegistryID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

    """
    Filters registries by their attributes using a keyword. Deprecated in GitLab
    17.9: A keyword search feature on Geo registries will not be built in the UI due to
                         poor search UX and performance.
    """
    keyword: String

    """Sort registries by given criteria."""
    sort: GeoRegistrySort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityExportUploadRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
}

"""
A `GeoOrganizationDetailUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoOrganizationDetailUploadRegistryID` is: `"gid://gitlab/Geo::OrganizationDetailUploadRegistry/1"`.
"""
scalar GeoOrganizationDetailUploadRegistryID

"""
A `GeoPackageFileRegistryID` is a global ID. It is encoded as a string.

An example `GeoPackageFileRegistryID` is: `"gid://gitlab/Geo::PackageFileRegistry/1"`.
"""
scalar GeoPackageFileRegistryID

"""
A `GeoPackagesDebianProjectComponentFileRegistryID` is a global ID. It is encoded as a string.

An example `GeoPackagesDebianProjectComponentFileRegistryID` is:
`"gid://gitlab/Geo::PackagesDebianProjectComponentFileRegistry/1"`.
"""
scalar GeoPackagesDebianProjectComponentFileRegistryID

"""
A `GeoPackagesHelmMetadataCacheRegistryID` is a global ID. It is encoded as a string.

An example `GeoPackagesHelmMetadataCacheRegistryID` is: `"gid://gitlab/Geo::PackagesHelmMetadataCacheRegistry/1"`.
"""
scalar GeoPackagesHelmMetadataCacheRegistryID

"""
A `GeoPackagesNugetSymbolRegistryID` is a global ID. It is encoded as a string.

An example `GeoPackagesNugetSymbolRegistryID` is: `"gid://gitlab/Geo::PackagesNugetSymbolRegistry/1"`.
"""
scalar GeoPackagesNugetSymbolRegistryID

"""
A `GeoPagesDeploymentRegistryID` is a global ID. It is encoded as a string.

An example `GeoPagesDeploymentRegistryID` is: `"gid://gitlab/Geo::PagesDeploymentRegistry/1"`.
"""
scalar GeoPagesDeploymentRegistryID

"""
A `GeoPersonalSnippetUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoPersonalSnippetUploadRegistryID` is: `"gid://gitlab/Geo::PersonalSnippetUploadRegistry/1"`.
"""
scalar GeoPersonalSnippetUploadRegistryID

"""
A `GeoPipelineArtifactRegistryID` is a global ID. It is encoded as a string.

An example `GeoPipelineArtifactRegistryID` is: `"gid://gitlab/Geo::PipelineArtifactRegistry/1"`.
"""
scalar GeoPipelineArtifactRegistryID

"""
A `GeoProjectImportExportRelationExportUploadUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoProjectImportExportRelationExportUploadUploadRegistryID` is:
`"gid://gitlab/Geo::ProjectImportExportRelationExportUploadUploadRegistry/1"`.
"""
scalar GeoProjectImportExportRelationExportUploadUploadRegistryID

"""
A `GeoProjectRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoProjectRepositoryRegistryID` is: `"gid://gitlab/Geo::ProjectRepositoryRegistry/1"`.
"""
scalar GeoProjectRepositoryRegistryID

"""
A `GeoProjectUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoProjectUploadRegistryID` is: `"gid://gitlab/Geo::ProjectUploadRegistry/1"`.
"""
scalar GeoProjectUploadRegistryID

"""
A `GeoProjectWikiRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoProjectWikiRepositoryRegistryID` is: `"gid://gitlab/Geo::ProjectWikiRepositoryRegistry/1"`.
"""
scalar GeoProjectWikiRepositoryRegistryID

"""Action to trigger on multiple Geo registries"""
enum GeoRegistriesBulkAction {
  """Reverify multiple registries."""
  REVERIFY_ALL

  """Resync multiple registries."""
  RESYNC_ALL
}

"""Autogenerated input type of GeoRegistriesBulkUpdate"""
input GeoRegistriesBulkUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Class of the Geo registries to be updated."""
  registryClass: GeoRegistryClass!

  """Action to be executed on Geo registries."""
  action: GeoRegistriesBulkAction!

  """Execute the action on registries selected by their ID."""
  ids: [GeoBaseRegistryID!]

  """Execute the action on registries selected by their replication state."""
  replicationState: ReplicationStateEnum

  """Execute the action on registries selected by their verification state."""
  verificationState: VerificationStateEnum
}

"""Autogenerated return type of GeoRegistriesBulkUpdate."""
type GeoRegistriesBulkUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated Geo registry class."""
  registryClass: GeoRegistryClass
}

"""Autogenerated input type of GeoRegistriesUpdate"""
input GeoRegistriesUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Geo registry entry to be updated."""
  registryId: GeoBaseRegistryID!

  """Action to be executed on a Geo registry."""
  action: GeoRegistryAction!
}

"""Autogenerated return type of GeoRegistriesUpdate."""
type GeoRegistriesUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated Geo registry entry."""
  registry: Registrable
}

"""Action to trigger on an individual Geo registry"""
enum GeoRegistryAction {
  """Reverify a registry."""
  REVERIFY

  """Resync a registry."""
  RESYNC
}

"""Geo registry class"""
enum GeoRegistryClass {
  """Geo::AbuseReportUploadRegistry registry class"""
  ABUSE_REPORT_UPLOAD_REGISTRY

  """Geo::AchievementUploadRegistry registry class"""
  ACHIEVEMENT_UPLOAD_REGISTRY

  """Geo::AiVectorizableFileUploadRegistry registry class"""
  AI_VECTORIZABLE_FILE_UPLOAD_REGISTRY

  """Geo::AlertManagementMetricImageUploadRegistry registry class"""
  ALERT_MANAGEMENT_METRIC_IMAGE_UPLOAD_REGISTRY

  """Geo::BulkImportExportUploadUploadRegistry registry class"""
  BULK_IMPORT_EXPORT_UPLOAD_UPLOAD_REGISTRY

  """Geo::CiSecureFileRegistry registry class"""
  CI_SECURE_FILE_REGISTRY

  """Geo::ContainerRepositoryRegistry registry class"""
  CONTAINER_REPOSITORY_REGISTRY

  """Geo::DependencyListExportPartUploadRegistry registry class"""
  DEPENDENCY_LIST_EXPORT_PART_UPLOAD_REGISTRY

  """Geo::DependencyListExportUploadRegistry registry class"""
  DEPENDENCY_LIST_EXPORT_UPLOAD_REGISTRY

  """Geo::DependencyProxyBlobRegistry registry class"""
  DEPENDENCY_PROXY_BLOB_REGISTRY

  """Geo::DependencyProxyManifestRegistry registry class"""
  DEPENDENCY_PROXY_MANIFEST_REGISTRY

  """Geo::DesignManagementActionUploadRegistry registry class"""
  DESIGN_MANAGEMENT_ACTION_UPLOAD_REGISTRY

  """Geo::DesignManagementRepositoryRegistry registry class"""
  DESIGN_MANAGEMENT_REPOSITORY_REGISTRY

  """Geo::GroupUploadRegistry registry class"""
  GROUP_UPLOAD_REGISTRY

  """Geo::GroupWikiRepositoryRegistry registry class"""
  GROUP_WIKI_REPOSITORY_REGISTRY

  """Geo::ImportExportUploadUploadRegistry registry class"""
  IMPORT_EXPORT_UPLOAD_UPLOAD_REGISTRY

  """Geo::IssuableMetricImageUploadRegistry registry class"""
  ISSUABLE_METRIC_IMAGE_UPLOAD_REGISTRY

  """Geo::JobArtifactRegistry registry class"""
  JOB_ARTIFACT_REGISTRY

  """Geo::LfsObjectRegistry registry class"""
  LFS_OBJECT_REGISTRY

  """Geo::MergeRequestDiffRegistry registry class"""
  MERGE_REQUEST_DIFF_REGISTRY

  """Geo::OrganizationDetailUploadRegistry registry class"""
  ORGANIZATION_DETAIL_UPLOAD_REGISTRY

  """Geo::PackageFileRegistry registry class"""
  PACKAGE_FILE_REGISTRY

  """Geo::PackagesDebianProjectComponentFileRegistry registry class"""
  PACKAGES_DEBIAN_PROJECT_COMPONENT_FILE_REGISTRY

  """Geo::PackagesHelmMetadataCacheRegistry registry class"""
  PACKAGES_HELM_METADATA_CACHE_REGISTRY

  """Geo::PackagesNugetSymbolRegistry registry class"""
  PACKAGES_NUGET_SYMBOL_REGISTRY

  """Geo::PagesDeploymentRegistry registry class"""
  PAGES_DEPLOYMENT_REGISTRY

  """Geo::PersonalSnippetUploadRegistry registry class"""
  PERSONAL_SNIPPET_UPLOAD_REGISTRY

  """Geo::PipelineArtifactRegistry registry class"""
  PIPELINE_ARTIFACT_REGISTRY

  """
  Geo::ProjectImportExportRelationExportUploadUploadRegistry registry class
  """
  PROJECT_IMPORT_EXPORT_RELATION_EXPORT_UPLOAD_UPLOAD_REGISTRY

  """Geo::ProjectRepositoryRegistry registry class"""
  PROJECT_REPOSITORY_REGISTRY

  """Geo::ProjectUploadRegistry registry class"""
  PROJECT_UPLOAD_REGISTRY

  """Geo::ProjectWikiRepositoryRegistry registry class"""
  PROJECT_WIKI_REPOSITORY_REGISTRY

  """Geo::SnippetRepositoryRegistry registry class"""
  SNIPPET_REPOSITORY_REGISTRY

  """Geo::SupplyChainAttestationRegistry registry class"""
  SUPPLY_CHAIN_ATTESTATION_REGISTRY

  """Geo::TerraformStateVersionRegistry registry class"""
  TERRAFORM_STATE_VERSION_REGISTRY

  """Geo::UploadRegistry registry class"""
  UPLOAD_REGISTRY

  """Geo::UserPermissionExportUploadUploadRegistry registry class"""
  USER_PERMISSION_EXPORT_UPLOAD_UPLOAD_REGISTRY

  """Geo::UserUploadRegistry registry class"""
  USER_UPLOAD_REGISTRY

  """Geo::VulnerabilityArchiveExportUploadRegistry registry class"""
  VULNERABILITY_ARCHIVE_EXPORT_UPLOAD_REGISTRY

  """Geo::VulnerabilityExportPartUploadRegistry registry class"""
  VULNERABILITY_EXPORT_PART_UPLOAD_REGISTRY

  """Geo::VulnerabilityExportUploadRegistry registry class"""
  VULNERABILITY_EXPORT_UPLOAD_REGISTRY
}

"""Values for sorting Geo registries"""
enum GeoRegistrySort {
  """ID by ascending order."""
  ID_ASC

  """ID by descending order."""
  ID_DESC

  """Latest verification date by ascending order."""
  VERIFIED_AT_ASC

  """Latest verification date by descending order."""
  VERIFIED_AT_DESC

  """Latest sync date by ascending order."""
  LAST_SYNCED_AT_ASC

  """Latest sync date by descending order."""
  LAST_SYNCED_AT_DESC
}

"""
A `GeoSnippetRepositoryRegistryID` is a global ID. It is encoded as a string.

An example `GeoSnippetRepositoryRegistryID` is: `"gid://gitlab/Geo::SnippetRepositoryRegistry/1"`.
"""
scalar GeoSnippetRepositoryRegistryID

"""
A `GeoTerraformStateVersionRegistryID` is a global ID. It is encoded as a string.

An example `GeoTerraformStateVersionRegistryID` is: `"gid://gitlab/Geo::TerraformStateVersionRegistry/1"`.
"""
scalar GeoTerraformStateVersionRegistryID

"""
A `GeoUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoUploadRegistryID` is: `"gid://gitlab/Geo::UploadRegistry/1"`.
"""
scalar GeoUploadRegistryID

"""
A `GeoUserPermissionExportUploadUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoUserPermissionExportUploadUploadRegistryID` is:
`"gid://gitlab/Geo::UserPermissionExportUploadUploadRegistry/1"`.
"""
scalar GeoUserPermissionExportUploadUploadRegistryID

"""
A `GeoUserUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoUserUploadRegistryID` is: `"gid://gitlab/Geo::UserUploadRegistry/1"`.
"""
scalar GeoUserUploadRegistryID

"""
A `GeoVulnerabilityArchiveExportUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoVulnerabilityArchiveExportUploadRegistryID` is:
`"gid://gitlab/Geo::VulnerabilityArchiveExportUploadRegistry/1"`.
"""
scalar GeoVulnerabilityArchiveExportUploadRegistryID

"""
A `GeoVulnerabilityExportPartUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoVulnerabilityExportPartUploadRegistryID` is: `"gid://gitlab/Geo::VulnerabilityExportPartUploadRegistry/1"`.
"""
scalar GeoVulnerabilityExportPartUploadRegistryID

"""
A `GeoVulnerabilityExportUploadRegistryID` is a global ID. It is encoded as a string.

An example `GeoVulnerabilityExportUploadRegistryID` is: `"gid://gitlab/Geo::VulnerabilityExportUploadRegistry/1"`.
"""
scalar GeoVulnerabilityExportUploadRegistryID

"""
A `GitlabErrorTrackingDetailedErrorID` is a global ID. It is encoded as a string.

An example `GitlabErrorTrackingDetailedErrorID` is: `"gid://gitlab/Gitlab::ErrorTracking::DetailedError/1"`.
"""
scalar GitlabErrorTrackingDetailedErrorID

"""A feature flag for the GitLab instance."""
type GitlabInstanceFeatureFlag {
  """Indicates whether the GitLab instance feature flag is enabled or not."""
  enabled: Boolean!

  """Name of the GitLab instance feature flag."""
  name: String!
}

"""Autogenerated input type of GitlabSubscriptionActivate"""
input GitlabSubscriptionActivateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Activation code received after purchasing a GitLab subscription."""
  activationCode: String!
}

"""Autogenerated return type of GitlabSubscriptionActivate."""
type GitlabSubscriptionActivatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Array of future subscriptions."""
  futureSubscriptions: [SubscriptionFutureEntry!]

  """Current license."""
  license: CurrentLicense
}

"""Budget cap controls for a subscription."""
type GitlabSubscriptionBudgetCaps {
  """Default per-user budget cap applied to all users."""
  flatUserCap: Float

  """Whether the flat per-user budget cap is enabled."""
  flatUserCapEnabled: Boolean

  """Maximum budget cap for the subscription."""
  subscriptionCap: Float

  """Whether the subscription-level budget cap is enabled."""
  subscriptionCapEnabled: Boolean

  """
  Per-user budget cap overrides. CDot returns a maximum of 20 overrides per page.
  """
  userOverrides(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 overrides to specific users."""
    userIds: [UserID!]
  ): GitlabSubscriptionBudgetCapUserOverrideConnection
}

"""Per-user budget cap override."""
type GitlabSubscriptionBudgetCapUserOverride {
  """Budget cap amount for the user."""
  cap: Float!

  """Whether the budget cap is enabled for the user."""
  capEnabled: Boolean!

  """When the override was created."""
  createdAt: Time

  """When the override was last updated."""
  updatedAt: Time

  """GitLab user the override applies to."""
  user: UserCore
}

"""The connection type for GitlabSubscriptionBudgetCapUserOverride."""
type GitlabSubscriptionBudgetCapUserOverrideConnection {
  """A list of edges."""
  edges: [GitlabSubscriptionBudgetCapUserOverrideEdge]

  """A list of nodes."""
  nodes: [GitlabSubscriptionBudgetCapUserOverride]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GitlabSubscriptionBudgetCapUserOverrideEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GitlabSubscriptionBudgetCapUserOverride
}

"""Describes daily the usage of GitLab Credits"""
type GitlabSubscriptionDailyUsage {
  """GitLab Credits consumed on the date."""
  creditsUsed: Float!

  """Date when credits were used."""
  date: ISO8601Date!
}

"""Describes the subscription history of a given namespace"""
type GitlabSubscriptionHistory {
  """Indicates what type of change in the subscription has happened."""
  changeType: SubscriptionHistoryChangeType

  """Timestamp of the subscription history entry creation."""
  createdAt: Time

  """Subscription end date."""
  endDate: Time

  """Maximum seats used in subscription."""
  maxSeatsUsed: Int

  """Seats purchased in subscription."""
  seats: Int

  """Seats being used in subscription."""
  seatsInUse: Int

  """Subscription start date."""
  startDate: Time
}

"""The connection type for GitlabSubscriptionHistory."""
type GitlabSubscriptionHistoryConnection {
  """A list of edges."""
  edges: [GitlabSubscriptionHistoryEdge]

  """A list of nodes."""
  nodes: [GitlabSubscriptionHistory]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GitlabSubscriptionHistoryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GitlabSubscriptionHistory
}

"""
Describes the usage of GitLab Credits for the subscription's monthly commitment
"""
type GitlabSubscriptionMonthlyCommitment {
  """
  Total of GitLab Credits consumed from the subscription's monthly commitment.
  """
  creditsUsed: Float

  """Array of daily usage of the subscription's monthly commitment."""
  dailyUsage: [GitlabSubscriptionDailyUsage!]

  """
  Total of GitLab Credits allocated as a subscription's monthly commitment.
  """
  totalCredits: Float
}

"""GitLab Credits used from the Monthly Waiver allocation"""
type GitlabSubscriptionMonthlyWaiver {
  """GitLab Credits used from the Monthly Waiver allocation."""
  creditsUsed: Float

  """Array of daily usage of the Monthly Waiver allocation."""
  dailyUsage: [GitlabSubscriptionDailyUsage!]

  """Total of GitLab Credits allocated as Monthly Waiver."""
  totalCredits: Float
}

"""Describes the overage of consumables for the subscription"""
type GitlabSubscriptionOverage {
  """Overage consumed by the subscription."""
  creditsUsed: Float

  """Array of daily overage usage."""
  dailyUsage: [GitlabSubscriptionDailyUsage!]

  """Whether GitLab Credits overage is allowed for the subscription."""
  isAllowed: Boolean
}

"""Describes paid tier trial information for the subscription"""
type GitlabSubscriptionPaidTierTrial {
  """Array of daily usage of the subscription's paid tier trial."""
  dailyUsage: [GitlabSubscriptionDailyUsage!]

  """
  Indicates whether the subscription is currently in a paid tier trial for GitLab Credits.
  """
  isActive: Boolean!
}

"""
A `GitlabSubscriptionsAddOnPurchaseID` is a global ID. It is encoded as a string.

An example `GitlabSubscriptionsAddOnPurchaseID` is: `"gid://gitlab/GitlabSubscriptions::AddOnPurchase/1"`.
"""
scalar GitlabSubscriptionsAddOnPurchaseID

"""Types of add-ons"""
enum GitlabSubscriptionsAddOnType {
  """
  GitLab Duo Core add-on. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  DUO_CORE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """GitLab Duo Pro add-on."""
  CODE_SUGGESTIONS

  """GitLab Duo Enterprise add-on."""
  DUO_ENTERPRISE

  """GitLab Duo with Amazon Q add-on."""
  DUO_AMAZON_Q
}

"""Role of User"""
enum GitlabSubscriptionsUserRole {
  """Guest."""
  GUEST

  """Planner."""
  PLANNER

  """Reporter."""
  REPORTER

  """Security manager access."""
  SECURITY_MANAGER

  """Developer."""
  DEVELOPER

  """Maintainer."""
  MAINTAINER

  """Owner."""
  OWNER
}

"""Values for sorting users"""
enum GitlabSubscriptionsUserSort {
  """Id by ascending order."""
  ID_ASC

  """Id by descending order."""
  ID_DESC

  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """Last activity by ascending order."""
  LAST_ACTIVITY_ON_ASC

  """Last activity by descending order."""
  LAST_ACTIVITY_ON_DESC
}

"""Describes the usage of consumables under the subscription"""
type GitlabSubscriptionUsage {
  """Budget cap controls for the subscription."""
  budgetCaps: GitlabSubscriptionBudgetCaps

  """
  Indicates whether the subscription is currently eligible to accept overage terms.
  """
  canAcceptOverageTerms: Boolean!

  """Total credits used for the subscription."""
  creditsUsed: Float

  """Average daily credits used for the subscription."""
  dailyAverage: Float

  """Daily usage for the subscription."""
  dailyUsage(
    """Maximum number of daily usage entries to return."""
    limit: Int

    """Sort daily usage entries by the selected criteria."""
    sort: DailyUsageSort
  ): [GitlabSubscriptionDailyUsage!]

  """
  Indicates whether the Duo AI promo (DAP) is enabled for the subscription.
  """
  dapPromoEnabled: Boolean!

  """Indicates if the Customer Portal GitLab Credits API is enabled."""
  enabled: Boolean!

  """End date of the period covered by the usage data."""
  endDate: ISO8601Date

  """
  Indicates if the GitLab instance has an outdated API contract with the Customer Portal.
  """
  isOutdatedClient: Boolean

  """
  Date and time when the last usage event resulted in a wallet transaction.
  """
  lastEventTransactionAt: ISO8601DateTime

  """Monthly commitment usage for the subscription."""
  monthlyCommitment: GitlabSubscriptionMonthlyCommitment

  """Monthly waiver usage for the subscription."""
  monthlyWaiver: GitlabSubscriptionMonthlyWaiver

  """Overage statistics."""
  overage: GitlabSubscriptionOverage

  """
  Indicates whether overage terms have been accepted for the subscription.
  """
  overageTermsAccepted: Boolean!

  """Paid tier trial data for the subscription."""
  paidTierTrial: GitlabSubscriptionPaidTierTrial!

  """All supported products with their associated flow types."""
  products: [GitlabSubscriptionUsageProduct!]

  """URL to purchase GitLab Credits."""
  purchaseCreditsPath: String

  """Start date of the period covered by the usage data."""
  startDate: ISO8601Date

  """Full URL to the GitLab Credits usage dashboard in the Customer Portal."""
  subscriptionPortalUsageDashboardUrl: String

  """Consumption usage for users under the subscription."""
  usersUsage: GitlabSubscriptionUsageUsersUsage
}

"""Type of budget cap that caused a user to be blocked"""
enum GitlabSubscriptionUsageBlockedCapType {
  """Blocked by the flat per-user cap."""
  FLAT_USER_CAP

  """Blocked by a per-user override cap."""
  USER_OVERRIDE_CAP
}

"""
Describes the blocked status of a user under the subscription budget cap
"""
type GitlabSubscriptionUsageBlockedStatus {
  """
  Whether the user is blocked from using credits due to reaching their cap.
  """
  blocked: Boolean!

  """Type of cap that caused the block. Null when not blocked."""
  capType: GitlabSubscriptionUsageBlockedCapType
}

"""Describes the location of a subscription usage event."""
union GitlabSubscriptionUsageEventLocation = Group | Project

"""Information about a GitLab Credits flow type."""
type GitlabSubscriptionUsageFlowTypeInfo {
  """Identifier for the flow type, used for filtering."""
  id: String!

  """Display name for the flow type."""
  title: String!
}

"""A product with GitLab Credits usage."""
type GitlabSubscriptionUsageProduct {
  """Total GitLab Credits consumed for the product."""
  creditsUsed: Float

  """Flow types belonging to the product."""
  flowTypes: [GitlabSubscriptionUsageProductFlowType!]!

  """Identifier for the product."""
  id: String!

  """Display name for the product."""
  title: String!
}

"""A flow type within a product for GitLab Credits usage."""
type GitlabSubscriptionUsageProductFlowType {
  """Identifier for the flow type."""
  id: String!

  """Display name for the flow type."""
  title: String!
}

"""Describes the user with their usage data"""
type GitlabSubscriptionUsageUser {
  """URL of the user's avatar."""
  avatarUrl: String

  """Blocked status of the user under the subscription budget cap."""
  blockedStatus: GitlabSubscriptionUsageBlockedStatus

  """Type of consumer for the user usage."""
  entityType: String

  """Billable events from the user."""
  events(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 events by one or more flow type IDs."""
    flowTypes: [String]
  ): GitlabSubscriptionUsageUserEventConnection

  """Global ID of the user."""
  id: UserID!

  """Human-readable name of the user."""
  name: String!

  """Usage of consumables for a user under the subscription."""
  usage: GitlabSubscriptionUsageUserUsage

  """Flow types used by the user during the billing period."""
  usedFlowTypes: [GitlabSubscriptionUsageFlowTypeInfo!]

  """Username of the user. Unique within the instance of GitLab."""
  username: String!
}

"""The connection type for GitlabSubscriptionUsageUser."""
type GitlabSubscriptionUsageUserConnection {
  """A list of edges."""
  edges: [GitlabSubscriptionUsageUserEdge]

  """A list of nodes."""
  nodes: [GitlabSubscriptionUsageUser]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GitlabSubscriptionUsageUserEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GitlabSubscriptionUsageUser
}

"""Describes a usage event for the subscription."""
type GitlabSubscriptionUsageUserEvent {
  """GitLab Credits consumed on the date."""
  creditsUsed: Float

  """Event type."""
  eventType: String

  """User-friendly display name for the event flow type."""
  flowType: String

  """Event location: project or namespace."""
  location: GitlabSubscriptionUsageEventLocation

  """URL of the agent session associated with the event."""
  sessionLink: String

  """Date and time of the event."""
  timestamp: ISO8601DateTime
}

"""The connection type for GitlabSubscriptionUsageUserEvent."""
type GitlabSubscriptionUsageUserEventConnection {
  """A list of edges."""
  edges: [GitlabSubscriptionUsageUserEventEdge]

  """A list of nodes."""
  nodes: [GitlabSubscriptionUsageUserEvent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GitlabSubscriptionUsageUserEventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GitlabSubscriptionUsageUserEvent
}

"""Values for sorting users in subscription usage"""
enum GitlabSubscriptionUsageUserSort {
  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """Total credits used by ascending order."""
  TOTAL_CREDITS_USED_ASC

  """Total credits used by descending order."""
  TOTAL_CREDITS_USED_DESC
}

"""Describes the usage of consumables by users under the subscription"""
type GitlabSubscriptionUsageUsersUsage {
  """GitLab Credits used by consumers of the subscription."""
  creditsUsed: Float

  """Array of daily usage of GitLab Credits."""
  dailyUsage: [GitlabSubscriptionDailyUsage!]

  """Total number of users with usage in the subscription."""
  totalActiveUsers: Int

  """
  Total number of users consuming GitLab Credits from their included allocation.
  """
  totalUsersUsingCredits: Int

  """
  Total number of users consuming GitLab Credits from the subscription monthly commitment.
  """
  totalUsersUsingMonthlyCommitment: Int

  """Total number of users consuming overage."""
  totalUsersUsingOverage: Int

  """List of users with their usage data."""
  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

    """Returns the last _n_ elements from the list."""
    last: Int

    """
    Filter users with a matching name, username, or email. Ignored when username
    is provided or when sorting by total credits used.
    """
    searchQuery: String

    """Sort users by the criteria."""
    sort: GitlabSubscriptionUsageUserSort

    """Username of the User."""
    username: String
  ): GitlabSubscriptionUsageUserConnection
}

"""Describes the usage of consumables for a user under the subscription"""
type GitlabSubscriptionUsageUserUsage {
  """GitLab Credits used by the user."""
  creditsUsed: Float

  """Monthly Commitment GitLab Credits used by the user."""
  monthlyCommitmentCreditsUsed: Float

  """Monthly Waiver GitLab Credits used by the user."""
  monthlyWaiverCreditsUsed: Float

  """Overage GitLab Credits used by the user."""
  overageCreditsUsed: Float

  """Paid Tier Trial GitLab Credits used by the user."""
  paidTierTrialCreditsUsed: Float

  """Total GitLab Credits available for the user."""
  totalCredits: Float

  """Total GitLab Credits used by the user across all wallets."""
  totalCreditsUsed: Float
}

"""Describes the usage and details of a trial subscription"""
type GitlabTrialUsage {
  """Active trial information if the subscription has an active trial."""
  activeTrial: ActiveTrial

  """Trial usage statistics for users."""
  usersUsage: TrialUsage
}

"""Describes the user with their trial usage data"""
type GitlabTrialUsageUser {
  """URL of the user's avatar."""
  avatarUrl: String

  """Global ID of the user."""
  id: UserID!

  """Human-readable name of the user."""
  name: String!

  """Credit usage for a user during a trial."""
  usage: GitlabTrialUsageUserUsage

  """Username of the user. Unique within the instance of GitLab."""
  username: String!
}

"""The connection type for GitlabTrialUsageUser."""
type GitlabTrialUsageUserConnection {
  """A list of edges."""
  edges: [GitlabTrialUsageUserEdge]

  """A list of nodes."""
  nodes: [GitlabTrialUsageUser]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GitlabTrialUsageUserEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GitlabTrialUsageUser
}

"""Describes any credit usage for a user during a trial"""
type GitlabTrialUsageUserUsage {
  """GitLab Credits consumed by the user during a trial."""
  creditsUsed: Float

  """Total GitLab Credits available to the user during a trial."""
  totalCredits: Float
}

"""
A global identifier.

A global identifier represents an object uniquely across the application.
An example of a global identifier is `"gid://gitlab/User/1"`.

`gid://gitlab` stands for the root name.
`User` is the name of the ActiveRecord class of the record.
`1` is the record id as per the id in the db table.

Global identifiers are encoded as strings.

"""
scalar GlobalID

"""A base type of Google Artifact Registry artifacts"""
union GoogleCloudArtifactRegistryArtifact = GoogleCloudArtifactRegistryDockerImage

"""The connection type for GoogleCloudArtifactRegistryArtifact."""
type GoogleCloudArtifactRegistryArtifactConnection {
  """A list of edges."""
  edges: [GoogleCloudArtifactRegistryArtifactEdge]

  """A list of nodes."""
  nodes: [GoogleCloudArtifactRegistryArtifact]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Details type of Google Artifact Registry artifacts"""
union GoogleCloudArtifactRegistryArtifactDetails = GoogleCloudArtifactRegistryDockerImageDetails

"""An edge in a connection."""
type GoogleCloudArtifactRegistryArtifactEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GoogleCloudArtifactRegistryArtifact
}

"""Values for sorting artifacts"""
enum GoogleCloudArtifactRegistryArtifactsSort {
  """Ordered by `name` in ascending order."""
  NAME_ASC

  """Ordered by `name` in descending order."""
  NAME_DESC

  """Ordered by `image_size_bytes` in ascending order."""
  IMAGE_SIZE_BYTES_ASC

  """Ordered by `image_size_bytes` in descending order."""
  IMAGE_SIZE_BYTES_DESC

  """Ordered by `upload_time` in ascending order."""
  UPLOAD_TIME_ASC

  """Ordered by `upload_time` in descending order."""
  UPLOAD_TIME_DESC

  """Ordered by `build_time` in ascending order."""
  BUILD_TIME_ASC

  """Ordered by `build_time` in descending order."""
  BUILD_TIME_DESC

  """Ordered by `update_time` in ascending order."""
  UPDATE_TIME_ASC

  """Ordered by `update_time` in descending order."""
  UPDATE_TIME_DESC

  """Ordered by `media_type` in ascending order."""
  MEDIA_TYPE_ASC

  """Ordered by `media_type` in descending order."""
  MEDIA_TYPE_DESC
}

"""Represents a docker artifact of Google Artifact Registry"""
type GoogleCloudArtifactRegistryDockerImage {
  """Image's digest."""
  digest: String!

  """Image's name."""
  image: String!

  """Unique image name."""
  name: String!

  """Tags attached to the image."""
  tags: [String!]

  """Time when the image was last updated."""
  updateTime: Time

  """Time when the image was uploaded."""
  uploadTime: Time

  """Google Cloud URI to access the image."""
  uri: String!
}

"""Represents details about docker artifact of Google Artifact Registry"""
type GoogleCloudArtifactRegistryDockerImageDetails {
  """Google Cloud URL to access the image."""
  artifactRegistryImageUrl: String!

  """Time when the image was built."""
  buildTime: Time

  """Image's digest."""
  digest: String!

  """Image's name."""
  image: String!

  """Calculated size of the image."""
  imageSizeBytes: String

  """Location of the Artifact Registry repository."""
  location: String!

  """Media type of the image."""
  mediaType: String

  """Unique image name."""
  name: String!

  """ID of the Google Cloud project."""
  projectId: String!

  """Repository on the Google Artifact Registry."""
  repository: String!

  """Tags attached to the image."""
  tags: [String!]

  """Time when the image was last updated."""
  updateTime: Time

  """Time when the image was uploaded."""
  uploadTime: Time

  """Google Cloud URI to access the image."""
  uri: String!
}

"""Represents a repository of Google Artifact Registry"""
type GoogleCloudArtifactRegistryRepository {
  """Google Cloud URL to access the repository."""
  artifactRegistryRepositoryUrl: String!

  """
  Google Artifact Registry repository artifacts. Returns `null` if GitLab.com feature is unavailable.
  """
  artifacts(
    """Criteria to sort artifacts by."""
    sort: GoogleCloudArtifactRegistryArtifactsSort = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GoogleCloudArtifactRegistryArtifactConnection

  """ID of the Google Cloud project."""
  projectId: String!

  """Repository on the Google Artifact Registry."""
  repository: String!
}

"""Represents a Google Cloud Image for GKE"""
scalar GoogleCloudImage

"""Autogenerated input type of GoogleCloudLoggingConfigurationCreate"""
input GoogleCloudLoggingConfigurationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination name."""
  name: String

  """Group path."""
  groupPath: ID!

  """
  Unique identifier of the Google Cloud project to which the logging configuration belongs.
  """
  googleProjectIdName: String!

  """
  Email address associated with the service account that will be used to
  authenticate and interact with the Google Cloud Logging service. This is part
  of the IAM credentials.
  """
  clientEmail: String!

  """
  Unique identifier used to distinguish and manage different logs within the
  same Google Cloud project.(defaults to `audit_events`).
  """
  logIdName: String = "audit_events"

  """
  Private Key associated with the service account. This key is used to
  authenticate the service account and authorize it to interact with the Google
  Cloud Logging service.
  """
  privateKey: String!
}

"""Autogenerated return type of GoogleCloudLoggingConfigurationCreate."""
type GoogleCloudLoggingConfigurationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """configuration created."""
  googleCloudLoggingConfiguration: GoogleCloudLoggingConfigurationType
}

"""Autogenerated input type of GoogleCloudLoggingConfigurationDestroy"""
input GoogleCloudLoggingConfigurationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Google Cloud logging configuration to destroy."""
  id: AuditEventsGoogleCloudLoggingConfigurationID!
}

"""Autogenerated return type of GoogleCloudLoggingConfigurationDestroy."""
type GoogleCloudLoggingConfigurationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

interface GoogleCloudLoggingConfigurationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Client email."""
  clientEmail: String!

  """Google project ID."""
  googleProjectIdName: String!

  """ID of the configuration."""
  id: ID!

  """Log ID."""
  logIdName: String!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""
Stores Google Cloud Logging configurations associated with IAM service accounts,used for generating access tokens.
"""
type GoogleCloudLoggingConfigurationType implements GoogleCloudLoggingConfigurationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Client email."""
  clientEmail: String!

  """Google project ID."""
  googleProjectIdName: String!

  """Group the configuration belongs to."""
  group: Group!

  """ID of the configuration."""
  id: ID!

  """Log ID."""
  logIdName: String!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""The connection type for GoogleCloudLoggingConfigurationType."""
type GoogleCloudLoggingConfigurationTypeConnection {
  """A list of edges."""
  edges: [GoogleCloudLoggingConfigurationTypeEdge]

  """A list of nodes."""
  nodes: [GoogleCloudLoggingConfigurationType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GoogleCloudLoggingConfigurationTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GoogleCloudLoggingConfigurationType
}

"""Autogenerated input type of GoogleCloudLoggingConfigurationUpdate"""
input GoogleCloudLoggingConfigurationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination name."""
  name: String

  """
  Unique identifier of the Google Cloud project to which the logging configuration belongs.
  """
  googleProjectIdName: String

  """
  Email address associated with the service account that will be used to
  authenticate and interact with the Google Cloud Logging service. This is part
  of the IAM credentials.
  """
  clientEmail: String

  """
  Unique identifier used to distinguish and manage different logs within the same Google Cloud project.
  """
  logIdName: String

  """
  Private Key associated with the service account. This key is used to
  authenticate the service account and authorize it to interact with the Google
  Cloud Logging service.
  """
  privateKey: String

  """Active status of the destination."""
  active: Boolean

  """ID of the google Cloud configuration to update."""
  id: AuditEventsGoogleCloudLoggingConfigurationID!
}

"""Autogenerated return type of GoogleCloudLoggingConfigurationUpdate."""
type GoogleCloudLoggingConfigurationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """configuration updated."""
  googleCloudLoggingConfiguration: GoogleCloudLoggingConfigurationType
}

"""Represents a Google Cloud Compute machine type"""
scalar GoogleCloudMachineType

"""Attributes for defining Node Pool in GKE"""
input GoogleCloudNodePool {
  """Image to use on the pool."""
  imageType: GoogleCloudImage!

  """Labels for the node pool of the runner."""
  labels: [GoogleCloudNodePoolLabel!] = []

  """Machine type to use."""
  machineType: GoogleCloudMachineType!

  """Name of the node pool."""
  name: String!

  """Node count of the pool."""
  nodeCount: Int!
}

"""Labels for the Node Pool of a GKE cluster."""
input GoogleCloudNodePoolLabel {
  """Key of the label."""
  key: String!

  """Value of the label."""
  value: String!
}

"""Represents a Google Cloud Compute project"""
scalar GoogleCloudProject

"""Represents a Google Cloud Compute region"""
scalar GoogleCloudRegion

"""Represents a Google Cloud Compute zone"""
scalar GoogleCloudZone

"""GPG signature for a signed commit"""
type GpgSignature implements CommitSignature {
  """SHA of the associated commit."""
  commitSha: String

  """ID of the GPG key."""
  gpgKeyPrimaryKeyid: String

  """User email associated with the GPG key."""
  gpgKeyUserEmail: String

  """User name associated with the GPG key."""
  gpgKeyUserName: String

  """Project of the associated commit."""
  project: Project

  """User associated with the key."""
  user: UserCore

  """Indicates verification status of the associated key or certificate."""
  verificationStatus: VerificationStatus
}

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!

  """Timestamp of the issue's last activity."""
  updatedAt: Time!
}

"""Attributes for a granular scope of an access token."""
input GranularScopeInput {
  """List of permissions for the granular scope."""
  permissions: [String!]!

  """Access to configure for the granular scope."""
  access: AccessTokenGranularScopeAccess!

  """IDs of groups or projects to associate with each granular scope."""
  resourceIds: [GlobalID!]
}

type Group implements GroupInterface & Todoable {
  """
  Achievements for the namespace. Returns `null` if the `achievements` feature
  flag is disabled. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  achievements(
    """Filter achievements by IDs."""
    ids: [AchievementsAchievementID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  Path for the namespace's achievements. Returns `null` if the namespace is not
  a group, or the `achievements` feature flag is disabled. Introduced in GitLab
  17.0: **Status**: Experiment.
  """
  achievementsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Size limit for repositories in the namespace in bytes. This limit only applies
  to namespaces under Project limit enforcement.
  """
  actualRepositorySizeLimit: Float

  """
  The actual storage size limit (in bytes) based on the enforcement type of
  either repository or namespace. This limit is agnostic of enforcement type.
  """
  actualSizeLimit: Float

  """
  Users in the namespace hierarchy that add-ons are applicable for. This only
  applies to root namespaces. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  addOnEligibleUsers(
    """Sort the user list."""
    sort: GitlabSubscriptionsUserSort

    """Search the user list."""
    search: String

    """Type of add on to filter the eligible users by."""
    addOnType: GitlabSubscriptionsAddOnType!

    """Global IDs of the add on purchases to find assignments for."""
    addOnPurchaseIds: [GitlabSubscriptionsAddOnPurchaseID!]!

    """Filter users list by assigned seat."""
    filterByAssignedSeat: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AddOnUserConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Additional storage purchased for the root namespace in bytes."""
  additionalPurchasedStorageSize: Float

  """Admin path for editing group. Only available to admins."""
  adminEditPath: String

  """Admin path of the group. Only available to admins."""
  adminShowPath: String

  """
  List of allowed or denied domains for AI features. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiDomainSettings(
    """Type of domain setting to retrieve."""
    domainSettingType: AiDomainSettingType!

    """Filter domains by substring match."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): StringConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  AI-related metrics. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  aiMetrics(
    """Date range to start from. Default is the beginning of current month."""
    startDate: Date

    """Date range to end at. Default is the end of current month."""
    endDate: Date
  ): AiMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  AI-related metrics with three months of data retention. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  aiMetricsBasic(
    """Date range to start from. Default is the beginning of current month."""
    startDate: Date

    """Date range to end at. Default is the end of current month."""
    endDate: Date
  ): AiMetricsBasic @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  AI settings for the namespace. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  aiSettings: AiNamespaceSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """AI-related data. Introduced in GitLab 17.5: **Status**: Experiment."""
  aiUsageData: AiUsageData @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  AI-related user metrics. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  aiUserMetrics(
    """
    Date range to start from. Default is the beginning of current month.
               ClickHouse needs to be enabled when passing this param.
    """
    startDate: Date

    """
    Date range to end at. Default is the end of current month.
               ClickHouse needs to be enabled when passing this param.
    """
    endDate: Date

    """Sort AI user metrics."""
    sort: AiUserMetricsSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiUserMetricsConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  Indicates whether to regularly prune stale group runners. Defaults to false.
  """
  allowStaleRunnerPruning: Boolean!

  """
  Amazon S3 configurations that receive audit events belonging to the group.
  Deprecated in GitLab 18.10: Use `externalAuditEventStreamingDestinations` with
  `amazonS3` category instead.
  """
  amazonS3Configurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AmazonS3ConfigurationTypeConnection @deprecated(reason: "Use `externalAuditEventStreamingDestinations` with `amazonS3` category instead. Deprecated in GitLab 18.10.")

  """
  Group analytics aggregation endpoints. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  analytics: Analytics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Status for all analyzers in the group."""
  analyzerStatuses: [AnalyzerGroupStatusType!]

  """Approval Policies of the project"""
  approvalPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ApprovalPolicyConnection

  """Indicates if the group or any ancestor is archived."""
  archived: Boolean

  """
  Indicates whether Auto DevOps is enabled for all projects within the group.
  """
  autoDevopsEnabled: Boolean

  """Search users for autocompletion"""
  autocompleteUsers(
    """Query to search users by name, username, or public email."""
    search: String
  ): [AutocompletedUser!]

  """
  Features available on the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  availableFeatures: NamespaceAvailableFeatures! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Security scan profiles available for the group. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  availableSecurityScanProfiles(
    """Filter scan profiles by type."""
    type: SecurityScanProfileType

    """Filter scan profiles by GitLab Recommended."""
    gitlabRecommended: Boolean
  ): [ScanProfileType!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Avatar URL of the group."""
  avatarUrl: String

  """Number of billable users in the group."""
  billableMembersCount(
    """Plan from which to get billable members."""
    requestedHostedPlan: String
  ): Int

  """A single board of the group."""
  board(
    """ID of the board."""
    id: BoardID!
  ): Board

  """Boards of the group."""
  boards(
    """Find a board by its ID."""
    id: BoardID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): BoardConnection

  """
  Indicates whether built-in project templates are available for new projects in
  the group. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  builtInProjectTemplatesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Whether the current user can push the initial commit to the default branch of
  new projects in the namespace. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  canPushInitialCommit: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Namespace CI/CD settings for the namespace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  ciCdSettings: CiCdSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Time taken for CI jobs to be picked up by this group's runners by percentile.
  Available to users with Maintainer role for the group. Enable the ClickHouse
  database backend to use this query.
  """
  ciQueueingHistory(
    """Start of the requested time. Defaults to three hours ago."""
    fromTime: Time

    """End of the requested time. Defaults to the current time."""
    toTime: Time
  ): QueueingDelayHistory

  """List of the group's CI/CD variables."""
  ciVariables(
    """Sort order of results."""
    sort: CiVariableSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiGroupVariableConnection

  """
  Cluster agents associated with projects in the group and its subgroups.
  """
  clusterAgents(
    """Returns only cluster agents which have vulnerabilities."""
    hasVulnerabilities: Boolean

    """
    Returns only cluster agents which have an associated remote development
    agent config. Deprecated in GitLab 17.10: Use has_workspaces_agent_config
    filter instead.
    """
    hasRemoteDevelopmentAgentConfig: Boolean

    """
    Returns only cluster agents which have an associated workspaces agent config.
    """
    hasWorkspacesAgentConfig: Boolean

    """
    Returns only cluster agents which have been enabled with the remote development feature.
    """
    hasRemoteDevelopmentEnabled: 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
  ): ClusterAgentConnection

  """Represents the code coverage activity for this group."""
  codeCoverageActivities(
    """
    First day for which to fetch code coverage activity (maximum time window is set to 90 days).
    """
    startDate: Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CodeCoverageActivityConnection

  """
  Summary of compliance framework coverage in a group and its subgroups. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  complianceFrameworkCoverageSummary: ComplianceFrameworkCoverageSummary @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Compliance frameworks available to projects in this namespace."""
  complianceFrameworks(
    """Global ID of a specific compliance framework to return."""
    id: ComplianceManagementFrameworkID

    """Search framework with most similar names."""
    search: String = null

    """Sort compliance frameworks by the criteria."""
    sort: ComplianceFrameworkSort = null

    """List of Global IDs of compliance frameworks to return."""
    ids: [ComplianceManagementFrameworkID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Detailed compliance framework coverage for each framework in the group. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  complianceFrameworksCoverageDetails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceFrameworkCoverageDetailConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Frameworks missing either project assignments or requirements definitions.
  Introduced in GitLab 18.2: **Status**: Experiment.
  """
  complianceFrameworksNeedingAttention(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceFrameworksNeedingAttentionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Compliance control status summary showing count of passed, failed, and pending
  controls. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  complianceRequirementControlCoverage: RequirementControlCoverage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Compliance requirement coverage statistics for the group. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  complianceRequirementCoverage: RequirementCoverage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Find software dependency versions by component name. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  componentVersions(
    """Name of the SBoM component."""
    componentName: String!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComponentVersionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """
  Find software dependencies by name. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  components(
    """Entire name or part of the name."""
    name: String
  ): [Component!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Counts of contacts by state for the group."""
  contactStateCounts(
    """Search term to find contacts with."""
    search: String

    """State of the contacts to search for."""
    state: CustomerRelationsContactState
  ): ContactStateCounts

  """Find contacts of this group."""
  contacts(
    """Criteria to sort contacts by."""
    sort: ContactSort = LAST_NAME_ASC

    """Search term to find contacts with."""
    search: String

    """State of the contacts to search for."""
    state: CustomerRelationsContactState

    """Filter contacts by IDs."""
    ids: [CustomerRelationsContactID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomerRelationsContactConnection

  """Container repositories of the group."""
  containerRepositories(
    """Filter the container repositories by their name."""
    name: String

    """Sort container repositories by the criteria."""
    sort: ContainerRepositorySort = created_desc

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerRepositoryConnection

  """Number of container repositories in the group."""
  containerRepositoriesCount: Int!

  """
  Includes at least one project where the repository size exceeds the limit.
  This only applies to namespaces under Project limit enforcement.
  """
  containsLockedProjects: Boolean

  """
  Provides the aggregated contributions by users within the group and its subgroups
  """
  contributions(
    """Start date of the reporting time range."""
    from: ISO8601Date!

    """
    End date of the reporting time range. The end date must be within 93 days after the start date.
    """
    to: ISO8601Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """Returns the first _n_ elements from the list."""
    first: Int
  ): ContributionAnalyticsContributionConnection

  """Timestamp of the group creation."""
  createdAt: Time

  """
  Indicates if the cross_project_pipeline feature is available for the namespace.
  """
  crossProjectPipelineAvailable: Boolean!

  """Custom attributes of the group. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Custom emoji in this namespace."""
  customEmoji(
    """Includes custom emoji from parent groups."""
    includeAncestorGroups: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomEmojiConnection

  """
  A custom field configured for the group. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  customField(
    """Global ID of the custom field."""
    id: IssuablesCustomFieldID!
  ): CustomField @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Custom fields configured for the group. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  customFields(
    """
    Filter for active fields. If `false`, excludes active fields. If `true`, returns only active fields.
    """
    active: Boolean

    """Filter for selected field type."""
    fieldType: CustomFieldType

    """Search query for custom field name."""
    search: String

    """Filter custom fields associated to the given work item type."""
    workItemTypeId: WorkItemsTypeID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomFieldConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Visualizations of the group or associated configuration project."""
  customizableDashboardVisualizations(
    """Slug of the visualization to return."""
    slug: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableDashboardVisualizationConnection

  """Customizable dashboards for the group."""
  customizableDashboards(
    """Find by dashboard slug."""
    slug: String

    """Find by dashboard type."""
    category: CustomizableDashboardCategory = ANALYTICS

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableDashboardConnection

  """
  Data transfer data point for a specific period. This is mocked data under a development feature flag.
  """
  dataTransfer(
    """
    Retain egress data for one year. Data for the current month will increase dynamically as egress occurs.
    """
    from: Date

    """End date for the data."""
    to: Date
  ): GroupDataTransfer

  """Software dependencies used by projects under this group."""
  dependencies(
    """Sort dependencies by given criteria."""
    sort: DependencySort

    """Filter dependencies by package managers."""
    packageManagers: [PackageManager!]

    """Filter dependencies by component names."""
    componentNames: [String!]

    """Filter dependencies by component IDs."""
    componentIds: [SbomComponentID!]

    """Filter dependencies by source type."""
    sourceTypes: [SbomSourceType!] = [DEPENDENCY_SCANNING, CONTAINER_SCANNING, NIL_SOURCE]

    """Filter dependencies by component versions."""
    componentVersions: [String!]

    """
    Filter dependencies to exclude the specified component versions. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    notComponentVersions: [String!]

    """
    Filter by security policy violations. Introduced in GitLab 18.7: **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter dependencies by tracked ref IDs. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter dependencies by tracked ref scope. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter dependencies by malware status. Work in progress and gated with
    feature flag `malicious_packages_dependency_list_filtering`. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    malware: 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
  ): DependencyConnection

  """
  Software dependencies used by projects under this group. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  dependencyAggregations(
    """Sort dependencies by given criteria."""
    sort: DependencySort

    """Filter dependencies by package managers."""
    packageManagers: [PackageManager!]

    """Filter dependencies by component names."""
    componentNames: [String!]

    """Filter dependencies by component IDs."""
    componentIds: [SbomComponentID!]

    """Filter dependencies by source type."""
    sourceTypes: [SbomSourceType!] = [DEPENDENCY_SCANNING, CONTAINER_SCANNING, NIL_SOURCE]

    """Filter dependencies by component versions."""
    componentVersions: [String!]

    """
    Filter dependencies to exclude the specified component versions. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    notComponentVersions: [String!]

    """
    Filter by security policy violations. Introduced in GitLab 18.7: **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter dependencies by tracked ref IDs. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter dependencies by tracked ref scope. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter dependencies by malware status. Work in progress and gated with
    feature flag `malicious_packages_dependency_list_filtering`. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    malware: Boolean

    """Filter dependencies by minimum project count."""
    projectCountMin: Int

    """Filter dependencies by maximum project count."""
    projectCountMax: Int

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyAggregationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """
  Locations of a software dependency across projects under this group. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  dependencyLocations(
    """Global ID of the component version to find locations for."""
    componentVersionId: SbomComponentVersionID!

    """Filter locations by file path."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyLocationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Number of dependency proxy blobs cached in the group."""
  dependencyProxyBlobCount: Int!

  """Dependency Proxy blobs."""
  dependencyProxyBlobs(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyProxyBlobConnection

  """Number of dependency proxy images cached in the group."""
  dependencyProxyImageCount: Int!

  """Prefix for pulling images when using the dependency proxy."""
  dependencyProxyImagePrefix: String!

  """Dependency proxy TTL policy for the group."""
  dependencyProxyImageTtlPolicy: DependencyProxyImageTtlGroupPolicy

  """Dependency Proxy manifests."""
  dependencyProxyManifests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DependencyProxyManifestConnection

  """Dependency Proxy settings for the group."""
  dependencyProxySetting: DependencyProxySetting

  """Total size of the dependency proxy cached images."""
  dependencyProxyTotalSize: String!

  """
  Total size of the dependency proxy cached images in bytes, encoded as a string.
  """
  dependencyProxyTotalSizeBytes: BigInt!

  """
  Total size of the dependency proxy cached images in bytes. Deprecated in GitLab 16.1: Use `dependencyProxyTotalSizeBytes`.
  """
  dependencyProxyTotalSizeInBytes: Int! @deprecated(reason: "Use `dependencyProxyTotalSizeBytes`. Deprecated in GitLab 16.1.")

  """List of descendant groups of this group."""
  descendantGroups(
    """List of descendant groups of the parent group."""
    includeParentDescendants: Boolean = true

    """Limit result to groups owned by authenticated user."""
    owned: Boolean

    """Search query for group name or group full path."""
    search: String

    """Filter groups by IDs."""
    ids: [ID!]

    """Filters archived groups."""
    archived: Boolean

    """Sort groups by given criteria."""
    sort: GroupSort = NAME_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Count of direct descendant groups of the group."""
  descendantGroupsCount: Int!

  """Description of the namespace."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """
  Indicates whether the namespace is designated to centrally manage security
  policies. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  designatedAsCsp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Group's DORA metrics."""
  dora: GroupDora

  """
  Group's DORA scores for all projects by DORA key metric for the last complete month.
  """
  doraPerformanceScoreCounts(
    """Filter DORA metric results by project attributes."""
    projectFilters: DoraProjectFilterInput

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DoraPerformanceScoreCountConnection

  """
  Indicates whether GitLab Duo features are enabled for the group. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  duoFeaturesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """
  Path of the group Duo settings page. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  duoSettingsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Duo Agent Platform session artifacts for the group. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  duoWorkflowSessionArtifacts(
    """Filter by workflow definition."""
    workflowDefinition: String

    """Return sessions created after the timestamp."""
    workflowCreatedAfter: Time

    """Return sessions created before the timestamp."""
    workflowCreatedBefore: Time

    """Negated filter conditions."""
    not: DuoWorkflowSessionArtifactNegatedFilterInput

    """Filter by project full path."""
    projectPath: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowSessionArtifactConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Path for editing group."""
  editPath: String!

  """Indicates if a group has email notifications disabled."""
  emailsDisabled: Boolean

  """Indicates if a group has email notifications enabled."""
  emailsEnabled: Boolean

  """Indicates whether the group has limited users for a free plan."""
  enforceFreeUserCap: Boolean

  """Environment scopes of the group."""
  environmentScopes(
    """Name of the environment scope."""
    name: String

    """Search query for environment scope name."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiGroupEnvironmentScopeConnection

  """
  Find a single epic. Deprecated in GitLab 17.5: Replaced by `WorkItem` type.
  For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/).
  """
  epic(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """IID of the epic, e.g., "1"."""
    iid: ID

    """List of IIDs of epics, e.g., `[1, 2]`."""
    iids: [ID!]

    """Filter epics by state."""
    state: EpicState

    """List epics by sort order."""
    sort: EpicSort

    """Filter epics by author."""
    authorUsername: String

    """Filter epics by labels."""
    labelName: [String!]

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include epics from ancestor groups."""
    includeAncestorGroups: Boolean = false

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: Boolean
  ): Epic @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")

  """
  Find a single epic board. Deprecated in GitLab 17.5: Replaced by WorkItem type.
  """
  epicBoard(
    """Find an epic board by ID."""
    id: BoardsEpicBoardID!
  ): EpicBoard @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """
  Find epic boards. Deprecated in GitLab 17.5: Replaced by WorkItem type.
  """
  epicBoards(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EpicBoardConnection @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """
  Find epics. Deprecated in GitLab 17.5: Replaced by `WorkItem` type. For more
  information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/).
  """
  epics(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """IID of the epic, e.g., "1"."""
    iid: ID

    """List of IIDs of epics, e.g., `[1, 2]`."""
    iids: [ID!]

    """Filter epics by state."""
    state: EpicState

    """List epics by sort order."""
    sort: EpicSort

    """Filter epics by author."""
    authorUsername: String

    """Filter epics by labels."""
    labelName: [String!]

    """Filter epics by milestone title, computed from epic's issues."""
    milestoneTitle: String

    """Filter epics by IID for autocomplete."""
    iidStartsWith: String

    """Include epics from ancestor groups."""
    includeAncestorGroups: Boolean = false

    """Include epics from descendant groups."""
    includeDescendantGroups: Boolean = true

    """Filter epics by given confidentiality."""
    confidential: Boolean

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Epics the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Epics created after the date."""
    createdAfter: Time

    """Epics created before the date."""
    createdBefore: Time

    """Epics updated after the date."""
    updatedAfter: Time

    """Epics updated before the date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: 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
  ): EpicConnection @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")

  """
  Indicates if Epics are enabled for namespace. Deprecated in GitLab 17.5:
  Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/).
  """
  epicsEnabled: Boolean @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")

  """
  External locations that receive audit events belonging to the group.
  Deprecated in GitLab 18.10: Use `externalAuditEventStreamingDestinations` instead.
  """
  externalAuditEventDestinations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ExternalAuditEventDestinationConnection @deprecated(reason: "Use `externalAuditEventStreamingDestinations` instead. Deprecated in GitLab 18.10.")

  """
  External destinations that receive audit events belonging to the group.
  Introduced in GitLab 16.11: **Status**: Experiment.
  """
  externalAuditEventStreamingDestinations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupAuditEventStreamingDestinationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Flow metrics for value stream analytics. Introduced in GitLab 15.10: **Status**: Experiment.
  """
  flowMetrics: GroupValueStreamAnalyticsFlowMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Full name of the group."""
  fullName: String

  """Full path of the group."""
  fullPath: ID!

  """Preview Billable User Changes"""
  gitlabSubscriptionsPreviewBillableUserChange(
    """Group ID to add."""
    addGroupId: Int

    """User emails to add."""
    addUserEmails: [String!]

    """User IDs to add."""
    addUserIds: [Int!]

    """Custom role assigned to the users."""
    memberRoleId: Int

    """Role of users being added to group."""
    role: GitlabSubscriptionsUserRole!
  ): PreviewBillableUserChange

  """
  Google Cloud logging configurations that receive audit events belonging to the
  group. Deprecated in GitLab 18.10: Use
  `externalAuditEventStreamingDestinations` with `gcpLogging` category instead.
  """
  googleCloudLoggingConfigurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GoogleCloudLoggingConfigurationTypeConnection @deprecated(reason: "Use `externalAuditEventStreamingDestinations` with `gcpLogging` category instead. Deprecated in GitLab 18.10.")

  """A membership of a user within this group."""
  groupMembers(
    """Search query."""
    search: String

    """sort query."""
    sort: MemberSort

    """Filter members by the given member relations."""
    relations: [GroupMemberRelation!] = [DIRECT, INHERITED]

    """Filter members by the given access levels."""
    accessLevels: [AccessLevelEnum!]

    """Filter members by enterprise users."""
    enterprise: Boolean

    """List of group members IDs."""
    ids: [ID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Count of direct members of the group."""
  groupMembersCount: Int!

  """ID of the group."""
  id: ID

  """
  Import source users of the namespace. This field can only be resolved for one
  namespace in any single request. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  importSourceUsers(
    """
    Filter mapping of users on source instance to users on destination instance by status.
    """
    statuses: [ImportSourceUserStatus!]

    """
    Query to search mappings by name or username of users on source instance.
    """
    search: String

    """
    Sort mapping of users on source instance to users on destination instance by the criteria.
    """
    sort: SourceUserSort = SOURCE_NAME_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ImportSourceUserConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Indicates if group is linked to a subscription."""
  isLinkedToSubscription: Boolean

  """Indicates if the group is archived."""
  isSelfArchived: Boolean

  """
  Indicates if group deletion is in progress. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  isSelfDeletionInProgress: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Indicates if group deletion is scheduled. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  isSelfDeletionScheduled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """Issues for projects in this group."""
  issues(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """
    Username of a user assigned to the issue. Deprecated in GitLab 13.11: Use `assigneeUsernames`.
    """
    assigneeUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author of the issue."""
    authorUsername: String

    """Issues closed after the date."""
    closedAfter: Time

    """Issues closed before the date."""
    closedBefore: Time

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Issues created after the date."""
    createdAfter: Time

    """Issues created before the date."""
    createdBefore: Time

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Return issues due on or after the given time."""
    dueAfter: Time

    """Return issues due on or before the given time."""
    dueBefore: Time

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to the issue."""
    labelName: [String]

    """Milestone applied to the issue."""
    milestoneTitle: [String]

    """Filter issues by milestone ID wildcard."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
    """
    myReactionEmoji: String

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedIssueFilterInput

    """Issues the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """Issues updated after the date."""
    updatedAfter: Time

    """Issues updated before the date."""
    updatedBefore: Time

    """Filter issues by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Filter by epic ID wildcard. Incompatible with epicId."""
    epicWildcardId: EpicWildcardId

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration title."""
    iterationTitle: String

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs."""
    iterationCadenceId: [IterationsCadenceID!]

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """Sort issues by the criteria."""
    sort: IssueSort = created_desc

    """Current state of the issue."""
    state: IssuableState

    """
    Health status of the issue. Deprecated in GitLab 15.4: Use `healthStatusFilter`.
    """
    healthStatus: HealthStatus

    """Include issues belonging to subgroups"""
    includeSubgroups: Boolean = false

    """Return issues from archived projects"""
    includeArchived: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssueConnection

  """Find iteration cadences."""
  iterationCadences(
    """Global ID of the iteration cadence to look up."""
    id: IterationsCadenceID

    """Fuzzy search by title."""
    title: String

    """Duration in weeks of the iterations within the cadence."""
    durationInWeeks: Int

    """
    Whether the iteration cadence should automatically generate upcoming iterations.
    """
    automatic: Boolean

    """Whether the iteration cadence is active."""
    active: Boolean

    """Whether to include ancestor groups to search iterations cadences in."""
    includeAncestorGroups: 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
  ): IterationCadenceConnection

  """Find iterations."""
  iterations(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Filter iterations by state."""
    state: IterationState

    """
    Fuzzy search by title. Deprecated in GitLab 15.4: The argument will be
    removed in 15.4. Please use `search` and `in` fields instead.
    """
    title: String

    """
    Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty.
    """
    search: String

    """
    Fields in which the fuzzy-search should be performed with the query given in
    the argument `search`. Defaults to `[title]`.
    """
    in: [IterationSearchableField!]

    """Global ID of the Iteration to look up."""
    id: ID

    """Internal ID of the Iteration to look up."""
    iid: ID

    """Whether to include ancestor iterations. Defaults to true."""
    includeAncestors: Boolean

    """Whether to include descendant iterations."""
    includeDescendants: Boolean

    """Global iteration cadence IDs by which to look up the iterations."""
    iterationCadenceIds: [IterationsCadenceID!]

    """
    List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used.
    """
    sort: IterationSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IterationConnection

  """
  Indicates whether the Knowledge Graph can be enabled for the namespace. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  knowledgeGraphAvailable: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Indicates whether the Knowledge Graph is enabled for the namespace. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  knowledgeGraphEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Label available on the group."""
  label(
    """Title of the label."""
    title: String!
  ): Label

  """Labels available on this group."""
  labels(
    """
    Exact match on title. Cannot be used with `searchTerm`. `searchIn` will be ignored if `title` argument is provided.
    """
    title: String

    """Search term to find labels with."""
    searchTerm: String

    """Specify which fields to search in. Ignored if using `title`."""
    searchIn: [LabelSearchFieldList!]! = [TITLE, DESCRIPTION]

    """Include labels from ancestor groups."""
    includeAncestorGroups: Boolean = false

    """Filters archived labels. Defaults to false."""
    archived: Boolean = false

    """Include labels from descendant groups."""
    includeDescendantGroups: Boolean = false

    """Include only group level labels."""
    onlyGroupLabels: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Indicates if Large File Storage (LFS) is enabled for namespace."""
  lfsEnabled: Boolean

  """
  Check whether a licensed feature is available. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  licensedFeatureAvailability(
    """Feature to check availability for (for example, EPICS)."""
    feature: LicensedFeature!
  ): LicensedFeatureAvailability! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Licensed features available on the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  licensedFeatures: NamespaceAvailableFeatures! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Lifecycle templates available to the namespace. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  lifecycleTemplates: [WorkItemLifecycle!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Lifecycles of work items available to the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  lifecycles(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemLifecycleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Namespace relevant paths to create links on the UI. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  linkPaths: NamespacesLinkPaths @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Indicates if the built-in project templates enabled setting is enforced for
  all subgroups. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  lockBuiltInProjectTemplatesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Indicates if the GitLab Duo features enabled setting is enforced for all
  subgroups. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  lockDuoFeaturesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """
  Indicates if math rendering limits are locked for all descendant groups.
  """
  lockMathRenderingLimitsEnabled: Boolean

  """
  Indicates if the tool approval for session setting is enforced for all
  subgroups. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  lockToolApprovalForSessionEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Namespace relevant paths to create markdown links on the UI. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  markdownPaths: MarkdownPaths @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Indicates if group or any ancestor is scheduled to be deleted. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  markedForDeletion: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Date when group was scheduled to be deleted. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  markedForDeletionOn: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """Indicates if math rendering limits are used for the group."""
  mathRenderingLimitsEnabled: Boolean

  """Maximum access level of the current user in the group."""
  maxAccessLevel: AccessLevel!

  """
  Custom roles available for the group. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  memberRoles(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Indicates if a group is disabled from getting mentioned."""
  mentionsDisabled: Boolean

  """
  Compliance violations reported on merge requests merged within the group.
  """
  mergeRequestViolations(
    """List compliance violations by sort order."""
    sort: ComplianceViolationSort = SEVERITY_LEVEL_DESC

    """Filters applied when retrieving compliance violations."""
    filters: ComplianceViolationInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceViolationConnection

  """Merge requests for projects in this group."""
  mergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """Include merge requests belonging to subgroups"""
    includeSubgroups: Boolean = false

    """Return merge requests from archived projects"""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Username of the author."""
    authorUsername: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """
  Indicates if merge requests are enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  mergeRequestsEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Metadata information for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  metadata: NamespaceMetadata @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Milestones of the group."""
  milestones(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`."""
    ids: [ID!]

    """Filter milestones by state."""
    state: MilestoneStateEnum

    """Title of the milestone."""
    title: String

    """Search string for the title."""
    searchTitle: String

    """Date the milestone contains."""
    containingDate: Time

    """Sort milestones by the criteria."""
    sort: MilestoneSort = DUE_DATE_ASC

    """Include milestones from all parent groups."""
    includeAncestors: Boolean

    """Include milestones from all subgroups and subprojects."""
    includeDescendants: 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
  ): MilestoneConnection

  """Name of the group."""
  name: String

  """Namespace settings for the namespace."""
  namespaceSettings: NamespaceSettings

  """
  Path for editing group at the organization level. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  organizationEditPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """Counts of organizations by status for the group."""
  organizationStateCounts(
    """Search term to find organizations with."""
    search: String

    """State of the organizations to search for."""
    state: CustomerRelationsOrganizationState
  ): OrganizationStateCounts

  """Find organizations of this group."""
  organizations(
    """Criteria to sort organizations by."""
    sort: OrganizationSort = NAME_ASC

    """Search term used to find organizations with."""
    search: String

    """State of the organization to search for."""
    state: CustomerRelationsOrganizationState

    """Filter organizations by IDs."""
    ids: [CustomerRelationsOrganizationID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomerRelationsOrganizationConnection

  """Package settings for the namespace."""
  packageSettings: PackageSettings

  """
  Packages of the group. This field can only be resolved for one group in any single request.
  """
  packages(
    """Sort packages by the criteria."""
    sort: PackageGroupSort = CREATED_DESC

    """Search a package by name."""
    packageName: String = null

    """Filter a package by type."""
    packageType: PackageTypeEnum = null

    """
    Filter a package by version. If used in combination with `include_versionless`,
              then no versionless packages are returned.
    """
    packageVersion: String = null

    """Filter a package by status."""
    status: PackageStatus = null

    """Include versionless packages."""
    includeVersionless: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """List of the namespaces's Pages Deployments."""
  pagesDeployments(
    """Filter by active or inactive state."""
    active: Boolean

    """Sort results."""
    sort: Sort

    """
    Filter deployments that are
    versioned or unversioned.
    """
    versioned: 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
  ): PagesDeploymentConnection

  """Parent group."""
  parent: Group

  """Path of the namespace."""
  path: String!

  """Pending member promotions of the group."""
  pendingMemberApprovals(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberApprovalConnection

  """
  A pending membership of a user within this group. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  pendingMembers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PendingMemberInterfaceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  For groups pending deletion, returns the group's scheduled deletion date. For
  groups not pending deletion, returns a theoretical date based on current
  settings if marked for deletion today. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  permanentDeletionDate: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """Pipeline analytics."""
  pipelineAnalytics(
    """Source of the pipeline."""
    source: CiPipelineSources

    """Branch that triggered the pipeline."""
    ref: String

    """
    Start of the requested time (in UTC). Defaults to the pipelines started in the past week.
    """
    fromTime: Time

    """
    End of the requested time (in UTC). Defaults to the pipelines started before the current date.
    """
    toTime: Time

    """
    Full paths of subgroups to filter by. Only applies when querying pipeline
    analytics for a group (maximum is 10). Introduced in GitLab 18.11:
    **Status**: Experiment.
    """
    subgroupFullPaths: [String!]
  ): PipelineAnalytics

  """Pipeline Execution Policies of the namespace."""
  pipelineExecutionPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionPolicyConnection

  """Pipeline Execution Schedule Policies of the namespace."""
  pipelineExecutionSchedulePolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionSchedulePolicyConnection

  """
  Subscription plan associated with the namespace. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  plan: NamespacePlan @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Number of product analytics events namespace is permitted to store per cycle.
  Introduced in GitLab 16.9: **Status**: Experiment.
  """
  productAnalyticsStoredEventsLimit: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  Compliance statuses for the projects in a group and its subgroups. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  projectComplianceRequirementsStatus(
    """Filters applied when retrieving compliance requirement statuses."""
    filters: GroupProjectRequirementComplianceStatusInput = {}

    """Field used to sort compliance requirement statuses."""
    orderBy: ProjectComplianceRequirementStatusOrderBy

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectComplianceRequirementStatusConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Compliance standards adherence for the projects in a group and its subgroups.
  """
  projectComplianceStandardsAdherence(
    """Filters applied when retrieving compliance standards adherence."""
    filters: ComplianceStandardsAdherenceInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceStandardsAdherenceConnection

  """
  Compliance violations for the projects in a group and its subgroups. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  projectComplianceViolations(
    """Filters applied when retrieving compliance violations."""
    filters: ProjectComplianceViolationFilterInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectComplianceViolationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Permission level required to create projects in the group."""
  projectCreationLevel: String

  """
  Statistics of the projects in the group. Only available from
  [Query.groups](#querygroups). Introduced in GitLab 18.2: **Status**: Experiment.
  """
  projectStatistics: NamespaceProjectStatistics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Projects within this namespace. Returns projects from the parent group if namespace is project.
  """
  projects(
    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

    """
    Include also projects from parent group. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    includeSiblingProjects: Boolean = false

    """Include also archived projects."""
    includeArchived: Boolean = true

    """Include projects that are not aimed for deletion."""
    notAimedForDeletion: Boolean = false

    """Search project with most similar names or paths."""
    search: String = null

    """Sort projects by the criteria."""
    sort: NamespaceProjectSort = null

    """Filter projects by IDs."""
    ids: [ID!] = null

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Return only projects that use the namespace domain for pages projects."""
    withNamespaceDomainPages: Boolean

    """Return only archived projects."""
    archivedOnly: Boolean

    """Filters applied when selecting a compliance framework."""
    complianceFrameworkFilters: ComplianceFrameworkFilters

    """Returns only the projects which have code coverage."""
    hasCodeCoverage: Boolean = false

    """Returns only the projects which have vulnerabilities."""
    hasVulnerabilities: Boolean = false

    """Return only the projects related to the specified SBOM component."""
    sbomComponentId: ID = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!

  """Count of direct projects in the group."""
  projectsCount: Int!

  """List of recently visited boards of the group. Maximum size is 4."""
  recentIssueBoards(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): BoardConnection

  """Releases belonging to projects in the group."""
  releases(
    """Sort group releases by given criteria."""
    sort: GroupReleaseSort = RELEASED_AT_DESC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Cluster agents in the namespace with remote development capabilities
  Deprecated in GitLab 17.8: Use `workspacesClusterAgents`.
  """
  remoteDevelopmentClusterAgents(
    """Filter the types of cluster agents to return."""
    filter: NamespaceClusterAgentFilter!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "Use `workspacesClusterAgents`. Deprecated in GitLab 17.8.")

  """
  Number of projects in the root namespace where the repository size exceeds the
  limit. This only applies to namespaces under Project limit enforcement.
  """
  repositorySizeExcessProjectCount: Int

  """Indicates if users can request access to namespace."""
  requestAccessEnabled: Boolean

  """
  Indicates if all users in the group are required to set up two-factor authentication.
  """
  requireTwoFactorAuthentication: Boolean

  """Top-level namespace of the namespace."""
  rootNamespace: Namespace!

  """
  Aggregated storage statistics of the namespace. Only available for root namespaces.
  """
  rootStorageStatistics: RootStorageStatistics

  """
  Information used for provisioning the runner on a cloud provider. Returns
  `null` if the GitLab instance is not a SaaS instance. Introduced in GitLab
  16.10: **Status**: Experiment.
  """
  runnerCloudProvisioning(
    """Identifier of the cloud provider."""
    provider: CiRunnerCloudProvider!

    """Identifier of the cloud project."""
    cloudProjectId: GoogleCloudProject!
  ): CiRunnerCloudProvisioning @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Find runners visible to the current user."""
  runners(
    """
    Filter runners by `active` (true) or `paused` (false) status. Deprecated in GitLab 14.8: This was renamed.
    """
    active: Boolean

    """Filter runners by `paused` (true) or `active` (false) status."""
    paused: Boolean

    """Filter runners by status."""
    status: CiRunnerStatus

    """Filter runners by type."""
    type: CiRunnerType

    """Filter by tags associated with the runner (comma-separated or array)."""
    tagList: [String!]

    """Filter by full token or partial text in description field."""
    search: String

    """Sort order of results."""
    sort: CiRunnerSort

    """Filter by upgrade status."""
    upgradeStatus: CiRunnerUpgradeStatus

    """Filter runners by creator ID."""
    creatorId: UserID

    """Filter runners by creator username."""
    creatorUsername: String

    """
    Filter runners by version. Runners that contain runner managers with the
    version at the start of the search term are returned. For example, the
    search term '14.' returns runner managers with versions '14.11.1' and '14.2.3'.
    """
    versionPrefix: String

    """
    Filter runners by owning project or group. Introduced in GitLab 17.8: **Status**: Experiment.
    """
    ownerFullPath: String

    """Control which runners to include in the results."""
    membership: CiRunnerMembershipFilter = DESCENDANTS

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerConnection

  """
  Saved replies available to the group. This field can only be resolved for one group in any single request.
  """
  savedReplies(
    """Include saved replies from parent groups."""
    includeAncestorGroups: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupSavedReplyConnection

  """
  Saved reply in the group. This field can only be resolved for one group in any single request.
  """
  savedReply(
    """Global ID of a saved reply."""
    id: GroupsSavedReplyID!
  ): GroupSavedReply

  """
  Saved views associated with the namespace. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  savedViews(
    """
    ID of the saved view. Required when requesting work_items, filters, or filter_warnings fields.
    """
    id: WorkItemsSavedViewsSavedViewID

    """Search query for saved view name or description."""
    search: String

    """Whether to return only saved views subscribed to by the current user."""
    subscribedOnly: Boolean

    """Sort work items by criteria. Default is ID."""
    sort: WorkItemsSavedViewsSort = ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemSavedViewTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Scan Execution Policies of the namespace."""
  scanExecutionPolicies(
    """
    Filters policies by the action scan type. Only these scan types are
    supported: `dast`, `secret_detection`, `cluster_image_scanning`,
    `container_scanning`, `sast`, `sast_iac`, `dependency_scanning`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanExecutionPolicyConnection

  """
  Scan Result Policies of the project Deprecated in GitLab 16.9: Use `approvalPolicies`.
  """
  scanResultPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanResultPolicyConnection @deprecated(reason: "Use `approvalPolicies`. Deprecated in GitLab 16.9.")

  """Security categories for the group."""
  securityCategories: [SecurityCategory!]

  """
  Security metrics.This feature is currently under development and not yet
  available for general use. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  securityMetrics(
    """
    Filter by project IDs in a group. This argument is ignored when we are querying for a project.
    """
    projectId: [ID!]

    """Filter by report types."""
    reportType: [VulnerabilityReportType!]

    """
    Filter by security attributes. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    securityAttributesFilters: [AttributeFilterInput!]

    """
    Filter by tracked ref IDs. This argument is ignored when querying for a
    group. To use this argument, you must have advanced search configured,
    advanced vulnerability management set up and
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.11: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]
  ): SecurityMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  List of security policies configured for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  securityPolicies(
    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """Filter policies by type."""
    type: PolicyType = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityPolicyTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Security policy project assigned to the namespace."""
  securityPolicyProject: Project

  """Security policy project suggestions"""
  securityPolicyProjectSuggestions(
    """Search query for projects' full paths."""
    search: String!

    """
    Whether to suggest only projects already linked as security policy projects.
    """
    onlyLinked: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Security posture counters for the group. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  securityPostureCounters: SecurityPostureCounters @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Indicates if sharing a project with another group within the group is prevented.
  """
  shareWithGroupLock: Boolean

  """List of shared groups this group was invited to."""
  sharedGroups(
    """Search for a specific group."""
    search: String

    """
    Order by name, created at, updated at, path, id or similarity if searching.
    """
    sort: GroupSort = NAME_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """List of shared projects this group was invited to."""
  sharedProjects(
    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example:
    `id_desc` or `name_asc`. Defaults to `id_desc`, or `similarity` if search used.
    """
    sort: String = null

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting

  """
  Data needed to render the sidebar for the namespace. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  sidebar: NamespaceSidebar @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Finds a single default role for the group. Available only for SaaS. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  standardRole(
    """Access level or levels to filter by."""
    accessLevel: [MemberAccessLevel!]
  ): StandardRole @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Default roles available for the group. Available only for SaaS. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  standardRoles(
    """Access level or levels to filter by."""
    accessLevel: [MemberAccessLevel!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): StandardRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Group statistics."""
  stats: GroupStats

  """
  Statuses of work items available to the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  statuses(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemStatusConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  The storage limit (in bytes) included with the root namespace plan. This limit
  only applies to namespaces under namespace limit enforcement.
  """
  storageSizeLimit: Float

  """Permission level required to create subgroups within the group."""
  subgroupCreationLevel: String

  """
  Maximum number of subscribed saved views allowed on the namespace. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  subscribedSavedViewLimit: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Find subscription history records. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  subscriptionHistory(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GitlabSubscriptionHistoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Targeted messages for the namespace. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  targetedMessages: [TargetedMessage!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Timelog categories for the namespace. Introduced in GitLab 15.3: **Status**: Experiment.
  """
  timelogCategories(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """
  Time logged on issues and merge requests in the group and its subgroups.
  """
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection!

  """
  Indicates whether tool approval for session is enabled for the group. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  toolApprovalForSessionEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """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.
  This only applies to namespaces under Project limit enforcement.
  """
  totalRepositorySizeExcess: Float

  """Time before two-factor authentication is enforced."""
  twoFactorGracePeriod: Int

  """Timestamp of when the group was last updated."""
  updatedAt: Time

  """Permissions for the current user on the resource"""
  userPermissions: GroupPermissions!

  """Information about Value Stream Analytics within the group."""
  valueStreamAnalytics: ValueStreamAnalytics

  """
  Aggregated usage counts within the group Introduced in GitLab 16.4: **Status**: Experiment.
  """
  valueStreamDashboardUsageOverview(
    """
    Counts recorded during this time frame, usually from beginning of the month
    until the end of the month (the system runs monthly aggregations).
    """
    timeframe: Timeframe!

    """Type of counts to retrieve."""
    identifier: ValueStreamDashboardMetric!
  ): ValueStreamDashboardCount @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """Value streams available to the group."""
  valueStreams(
    """Value stream id."""
    id: ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ValueStreamConnection

  """
  Virtual registries cleanup policy of the group. Returns null if the
  `maven_virtual_registry` feature flag is disabled. Introduced in GitLab 18.7:
  **Status**: Experiment.
  """
  virtualRegistriesCleanupPolicy: VirtualRegistryCleanupPolicy @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Container virtual registries registered to the group. Returns null if the
  `container_virtual_registries` feature flag is disabled. Introduced in GitLab
  18.7: **Status**: Experiment.
  """
  virtualRegistriesContainerRegistries(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Container upstreams registered to the group. Returns null if the
  `container_virtual_registries` feature flag is disabled. Introduced in GitLab
  18.7: **Status**: Experiment.
  """
  virtualRegistriesContainerUpstreams(
    """Search upstreams by name."""
    upstreamName: String = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerUpstreamConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Maven virtual registries registered to the group. Returns null if the
  `maven_virtual_registry` feature flag is disabled. Introduced in GitLab 18.6:
  **Status**: Experiment.
  """
  virtualRegistriesPackagesMavenRegistries(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MavenRegistryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Maven upstream registries registered to the group. Returns null if the
  `maven_virtual_registry` feature flag is disabled. Introduced in GitLab 18.6:
  **Status**: Experiment.
  """
  virtualRegistriesPackagesMavenUpstreams(
    """Search upstreams by name."""
    upstreamName: String = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MavenUpstreamConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Virtual registries settings for the group. Returns null if the
  `maven_virtual_registry` feature flag is disabled. Introduced in GitLab 18.5:
  **Status**: Experiment.
  """
  virtualRegistriesSetting: VirtualRegistriesSetting @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Visibility of the namespace."""
  visibility: String

  """
  Vulnerabilities reported on the projects in the group and its subgroups.
  """
  vulnerabilities(
    """Filter vulnerabilities by project."""
    projectId: [ID!]

    """Filter vulnerabilities by report type."""
    reportType: [VulnerabilityReportType!]

    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance security dashboard queries.
    """
    identifierName: String

    """Filter vulnerabilities by VulnerabilityScanner.externalId."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """List vulnerabilities by sort order."""
    sort: VulnerabilitySort = severity_desc

    """
    Returns only the vulnerabilities which have been resolved on default branch.
    """
    hasResolution: Boolean

    """
    Returns only the vulnerabilities which can likely be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """Returns only the vulnerabilities which have linked issues."""
    hasIssues: Boolean

    """Returns only the vulnerabilities which have linked merge requests."""
    hasMergeRequest: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType`
    of `cluster_image_scanning` are only included with this filter.
    """
    clusterId: [ClustersClusterID!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """
    Filter by dismissal reason. Only dismissed Vulnerabilities will be included with the filter.
    """
    dismissalReason: [VulnerabilityDismissalReason!]

    """Returns only the vulnerabilities which have remediations."""
    hasRemediations: Boolean

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by validity check. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Returns only the vulnerabilities which have been auto dismissed by security
    policies. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured and advanced vulnerability management set
    up. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up and the
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.9: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityConnection

  """
  The historical number of vulnerabilities per day for the projects in the group and its subgroups.
  """
  vulnerabilitiesCountByDay(
    """First day for which to fetch vulnerability history."""
    startDate: ISO8601Date!

    """Last day for which to fetch vulnerability history."""
    endDate: ISO8601Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilitiesCountByDayConnection

  """Represents vulnerable project counts for each grade."""
  vulnerabilityGrades(
    """Include grades belonging to subgroups."""
    includeSubgroups: Boolean = false

    """Filter the response by given letter grade."""
    letterGrade: VulnerabilityGrade
  ): [VulnerableProjectsByGrade!]

  """Search for vulnerabilities by identifier."""
  vulnerabilityIdentifierSearch(
    """
    Search identifier by name. Substring or partial match search is supported
    and argument should be greater than 3 characters.
    """
    name: String!
  ): [String!]

  """
  Vulnerability Management Policies of the project. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  vulnerabilityManagementPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityManagementPolicyConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """Counts for each vulnerability severity in the group and its subgroups."""
  vulnerabilityNamespaceStatistic: VulnerabilityNamespaceStatisticType

  """
  Vulnerability scanners reported on the project vulnerabilities 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 severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """Filter vulnerabilities by scanner."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """Filter vulnerabilities that do or do not have issues."""
    hasIssues: Boolean

    """Filter vulnerabilities that do or do not have a resolution."""
    hasResolution: Boolean

    """
    Filters vulnerabilities which can or can not be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """Filter vulnerabilities that do or do not have a merge request."""
    hasMergeRequest: Boolean

    """Filter by dismissal reason."""
    dismissalReason: [VulnerabilityDismissalReason!]

    """Filter vulnerabilities that do or do not have remediations."""
    hasRemediations: Boolean

    """
    Default value is false. When set to true, the count returned for each
    severity is capped at a maximum of 1001. Ignored when used along with any
    argument that requires advanced vulnerability management.
    """
    capped: Boolean = false

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance
    security dashboard queries. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    identifierName: String

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by token status. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter by policy auto dismissed. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.8:
    **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured, advanced vulnerability management set up
    and `vulnerabilities_across_contexts` feature flag enabled. Introduced in
    GitLab 18.11: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured, advanced vulnerability management set up and
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.11: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean
  ): VulnerabilitySeveritiesCount

  """
  Indicates whether web-based commit signing is enabled for the group. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  webBasedCommitSigningEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """Web path of the group."""
  webPath: String!

  """Web URL of the group."""
  webUrl: String!

  """
  A single group webhook. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  webhook(
    """ID of the group webhook."""
    id: GroupHookID!
  ): GroupHook @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Find a work item by IID directly associated with the group."""
  workItem(
    """IID of the work item."""
    iid: String!
  ): WorkItem

  """
  Work item description templates available to the namespace. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  workItemDescriptionTemplates(
    """
    Fetches the specific DescriptionTemplate. Deprecated in GitLab 17.9: name and project ID are both required for fetching,
                           use DescriptionTemplateContentInputType instead.
    """
    name: String

    """
    Search for DescriptionTemplates by name. Deprecated in GitLab 17.8: search
    on template names is performed on the FE only.
    """
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemDescriptionTemplateConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Valid target work item types and a suggested default for moving work items of
  given source types into this namespace. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  workItemMoveTargets(
    """
    Full path of the source namespace. For example, `gitlab-org/gitlab-foss`.
    """
    sourceFullPath: String!

    """
    Global IDs of the source work item types to compute move targets for. A maximum of 50 IDs can be provided.
    """
    sourceTypeIds: [WorkItemsTypeID!]!
  ): [WorkItemMoveTarget!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Work item settings for the group. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  workItemSettings: WorkItemSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Counts of work items by state for the namespace."""
  workItemStateCounts(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]

    """
    Include work items from ancestor groups. Ignored for project namespaces.
    """
    includeAncestors: Boolean = false

    """
    Include work items from descendant groups and projects. Ignored for project namespaces.
    """
    includeDescendants: Boolean = false

    """
    Exclude work items from projects within the group. Ignored for project
    namespaces. Introduced in GitLab 17.5: **Status**: Experiment.
    """
    excludeProjects: Boolean = false

    """
    Exclude group-level work items within the group and its descendants. Ignored
    for project namespaces. Introduced in GitLab 18.4: **Status**: Experiment.
    """
    excludeGroupWorkItems: Boolean = false

    """
    Return work items from archived projects. Ignored for project namespaces.
    Introduced in GitLab 18.5: **Status**: Experiment.
    """
    includeArchived: Boolean = false

    """
    List items overlapping the given timeframe. Ignored for project namespaces.
    """
    timeframe: Timeframe
  ): WorkItemStateCountsType

  """Work item types available to the group."""
  workItemTypes(
    """
    Filter work item types by the given name. Deprecated in GitLab 19.0:
    Name-based filtering is no longer supported with introduction of
    configurable work item types in 19.0.
    """
    name: IssueType

    """
    When true, returns only the available work item types for the current user.
    This experimental field will be removed in 19.0. Use canUserCreateItems and
    isFilterableListView fields from the WorkItemTypes API instead. Introduced
    in GitLab 18.6: **Status**: Experiment.
    """
    onlyAvailable: 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
  ): WorkItemTypeConnection

  """Work items that belong to the namespace."""
  workItems(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]

    """
    Include work items from ancestor groups. Ignored for project namespaces.
    """
    includeAncestors: Boolean = false

    """
    Include work items from descendant groups and projects. Ignored for project namespaces.
    """
    includeDescendants: Boolean = false

    """
    Exclude work items from projects within the group. Ignored for project
    namespaces. Introduced in GitLab 17.5: **Status**: Experiment.
    """
    excludeProjects: Boolean = false

    """
    Exclude group-level work items within the group and its descendants. Ignored
    for project namespaces. Introduced in GitLab 18.4: **Status**: Experiment.
    """
    excludeGroupWorkItems: Boolean = false

    """
    Return work items from archived projects. Ignored for project namespaces.
    Introduced in GitLab 18.5: **Status**: Experiment.
    """
    includeArchived: Boolean = false

    """
    List items overlapping the given timeframe. Ignored for project namespaces.
    """
    timeframe: Timeframe

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection

  """
  List of available widgets for the given work items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  workItemsWidgets(
    """
    Global ID array of work items types to fetch available widgets for. A max of 100 IDs can be provided at a time.
    """
    ids: [WorkItemsTypeID!]!

    """
    When true, returns the union of widgets across all work item types. When
    false, returns only widgets common to all work item types.
    """
    union: Boolean! = false
  ): [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Cluster agents in the namespace with workspaces capabilities Introduced in GitLab 17.8: **Status**: Experiment.
  """
  workspacesClusterAgents(
    """Filter the types of cluster agents to return."""
    filter: NamespaceClusterAgentFilter!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")
}

"""
Represents a subgroup or project filter that belongs to a group level external audit event streaming destination.
"""
type GroupAuditEventNamespaceFilter {
  """Destination to which the filter belongs."""
  externalStreamingDestination: GroupAuditEventStreamingDestination!

  """ID of the filter."""
  id: ID!

  """Group or project namespace the filter belongs to."""
  namespace: Namespace!
}

"""Represents an external destination to stream group level audit events."""
type GroupAuditEventStreamingDestination implements AuditEventStreamingDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Category of the external destination to send audit events to."""
  category: String!

  """Config of the external destination."""
  config: JSON!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """Group to which the destination belongs."""
  group: Group!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """List of subgroup or project filters for the destination."""
  namespaceFilters: [GroupAuditEventNamespaceFilter!]

  """
  Secret token for the destination, will be non-empty value only for http category.
  """
  secretToken: String!
}

"""The connection type for GroupAuditEventStreamingDestination."""
type GroupAuditEventStreamingDestinationConnection {
  """A list of edges."""
  edges: [GroupAuditEventStreamingDestinationEdge]

  """A list of nodes."""
  nodes: [GroupAuditEventStreamingDestination]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GroupAuditEventStreamingDestinationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupAuditEventStreamingDestination
}

"""Autogenerated input type of GroupAuditEventStreamingDestinationsCreate"""
input GroupAuditEventStreamingDestinationsCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination config."""
  config: JSON!

  """Destination name."""
  name: String

  """Destination category."""
  category: String!

  """Group path."""
  groupPath: ID!

  """Secret token."""
  secretToken: String
}

"""
Autogenerated return type of GroupAuditEventStreamingDestinationsCreate.
"""
type GroupAuditEventStreamingDestinationsCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destination created."""
  externalAuditEventDestination: GroupAuditEventStreamingDestination
}

"""Autogenerated input type of GroupAuditEventStreamingDestinationsDelete"""
input GroupAuditEventStreamingDestinationsDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the audit events external streaming destination to delete."""
  id: AuditEventsGroupExternalStreamingDestinationID!
}

"""
Autogenerated return type of GroupAuditEventStreamingDestinationsDelete.
"""
type GroupAuditEventStreamingDestinationsDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of GroupAuditEventStreamingDestinationsUpdate"""
input GroupAuditEventStreamingDestinationsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of external audit event destination to update."""
  id: AuditEventsGroupExternalStreamingDestinationID!

  """Destination config."""
  config: JSON

  """Destination name."""
  name: String

  """Destination category."""
  category: String

  """Secret token."""
  secretToken: String

  """Active status of the destination."""
  active: Boolean
}

"""
Autogenerated return type of GroupAuditEventStreamingDestinationsUpdate.
"""
type GroupAuditEventStreamingDestinationsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated destination."""
  externalAuditEventDestination: GroupAuditEventStreamingDestination
}

"""The connection type for Group."""
type GroupConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [GroupEdge]

  """A list of nodes."""
  nodes: [Group]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

type GroupDataTransfer {
  """Data nodes."""
  egressNodes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EgressNodeConnection
}

"""All information related to group DORA metrics."""
type GroupDora {
  """DORA metrics for the current group or project."""
  metrics(
    """Date range to start from. Default is 3 months ago."""
    startDate: Date

    """Date range to end at. Default is the current date."""
    endDate: Date

    """
    How the metric should be aggregated. Defaults to `DAILY`. In the case of
    `ALL`, the `date` field in the response will be `null`.
    """
    interval: DoraMetricBucketingInterval

    """
    Deployment tiers of the environments to return. Defaults to `[PRODUCTION]`.
    """
    environmentTiers: [DeploymentTier!]
  ): [DoraMetric!]

  """
  Projects within this group with at least 1 DORA metric for given period.
  """
  projects(
    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

    """
    Include also projects from parent group. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    includeSiblingProjects: Boolean = false

    """Include also archived projects."""
    includeArchived: Boolean = true

    """Include projects that are not aimed for deletion."""
    notAimedForDeletion: Boolean = false

    """Search project with most similar names or paths."""
    search: String = null

    """Sort projects by the criteria."""
    sort: NamespaceProjectSort = null

    """Filter projects by IDs."""
    ids: [ID!] = null

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Return only projects that use the namespace domain for pages projects."""
    withNamespaceDomainPages: Boolean

    """Return only archived projects."""
    archivedOnly: Boolean

    """Filters applied when selecting a compliance framework."""
    complianceFrameworkFilters: ComplianceFrameworkFilters

    """Returns only the projects which have code coverage."""
    hasCodeCoverage: Boolean = false

    """Returns only the projects which have vulnerabilities."""
    hasVulnerabilities: Boolean = false

    """Return only the projects related to the specified SBOM component."""
    sbomComponentId: ID = null

    """Date range to start DORA lookup from."""
    startDate: Date!

    """Date range to end DORA lookup at."""
    endDate: Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!
}

"""An edge in a connection."""
type GroupEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Group
}

type GroupHook {
  """Auto-disabling status of the webhook."""
  alertStatus: WebhookAlertStatus!

  """Strategy for filtering push events by branch name."""
  branchFilterStrategy: WebhookBranchFilterStrategy!

  """Whether the webhook is triggered on confidential issues events."""
  confidentialIssuesEvents: Boolean!

  """Whether the webhook is triggered on confidential note events."""
  confidentialNoteEvents: Boolean!

  """Timestamp of when the webhook was created."""
  createdAt: Time!

  """List of custom header names for the webhook."""
  customHeaders: [WebhookCustomHeader!]

  """Custom payload template for the webhook request body."""
  customWebhookTemplate: String

  """Whether the webhook is triggered on deployment events."""
  deploymentEvents: Boolean!

  """Description of the webhook."""
  description: String

  """
  Timestamp when the webhook will be automatically re-enabled if temporarily disabled.
  """
  disabledUntil: Time

  """Whether the webhook is triggered on emoji events."""
  emojiEvents: Boolean!

  """Whether SSL verification is done when triggering the webhook."""
  enableSslVerification: Boolean

  """Whether the webhook is triggered on feature flag events."""
  featureFlagEvents: Boolean!

  """ID of the webhook."""
  id: GroupHookID!

  """Whether the webhook is triggered on issues events."""
  issuesEvents: Boolean!

  """Whether the webhook is triggered on job events."""
  jobEvents: Boolean!

  """Whether the webhook is triggered on member events."""
  memberEvents: Boolean!

  """Whether the webhook is triggered on merge request events."""
  mergeRequestsEvents: Boolean!

  """Whether the webhook is triggered on milestone events."""
  milestoneEvents: Boolean!

  """Name of the webhook."""
  name: String

  """Whether the webhook is triggered on note events."""
  noteEvents: Boolean!

  """Whether the webhook is triggered on pipeline events."""
  pipelineEvents: Boolean!

  """Whether the webhook is triggered on project events."""
  projectEvents: Boolean!

  """Whether the webhook is triggered on push events."""
  pushEvents: Boolean!

  """Trigger hook on push events for matching branches only."""
  pushEventsBranchFilter: String

  """Whether the webhook is triggered on releases events."""
  releasesEvents: Boolean!

  """Whether the webhook is triggered on resource access token events."""
  resourceAccessTokenEvents: Boolean!

  """
  Whether an HMAC signing token is configured for webhook-signature header generation.
  """
  signingTokenPresent: Boolean!

  """Whether the webhook is triggered on subgroup events."""
  subgroupEvents: Boolean!

  """Whether the webhook is triggered on tag push events."""
  tagPushEvents: Boolean!

  """
  Whether a secret token is configured for X-Gitlab-Token header validation.
  """
  tokenPresent: Boolean!

  """URL of the webhook."""
  url: String!

  """
  List of URL variable masks to hide sensitive portions of the webhook URL.
  """
  urlVariables: [WebhookUrlVariable!]

  """Whether the webhook is triggered on vulnerability events."""
  vulnerabilityEvents: Boolean!

  """A single webhook event."""
  webhookEvent(
    """
    Filter for webhook events within a range of timestamps. Defaults to events within the last seven days.
    """
    timestampRange: TimestampRange

    """ID of the webhook event."""
    id: WebHookLogID!
  ): WebhookEvent

  """
  List of recent webhook events. This field can only be resolved for one webhook in any single request.
  """
  webhookEvents(
    """
    Filter for webhook events within a range of timestamps. Defaults to events within the last seven days.
    """
    timestampRange: TimestampRange

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WebhookEventConnection

  """Whether the webhook is triggered on wiki page events."""
  wikiPageEvents: Boolean!
}

"""
A `GroupHookID` is a global ID. It is encoded as a string.

An example `GroupHookID` is: `"gid://gitlab/GroupHook/1"`.
"""
scalar GroupHookID

"""
A `GroupID` is a global ID. It is encoded as a string.

An example `GroupID` is: `"gid://gitlab/Group/1"`.
"""
scalar GroupID

"""Values for grouping compute usage data."""
enum GroupingEnum {
  """Aggregate usage data across all namespaces in the instance."""
  INSTANCE_AGGREGATE

  """Group data by individual root namespace."""
  PER_ROOT_NAMESPACE
}

"""
Returns either a "Group" type for users with :read_group permission, or a
"GroupMinimalAccess" type for users with only :read_group_metadata permission.
"""
interface GroupInterface {
  """Avatar URL of the group."""
  avatarUrl: String

  """Full name of the group."""
  fullName: String

  """Full path of the group."""
  fullPath: ID!

  """ID of the group."""
  id: ID

  """Name of the group."""
  name: String

  """Permissions for the current user on the group."""
  userPermissions: GroupPermissions

  """Web URL of the group."""
  webUrl: String
}

"""The connection type for GroupInterface."""
type GroupInterfaceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [GroupInterfaceEdge]

  """A list of nodes."""
  nodes: [GroupInterface]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GroupInterfaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupInterface
}

"""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: UserCore

  """Date and time the membership expires."""
  expiresAt: Time

  """Group that a user is a member of."""
  group: Group

  """ID of the member."""
  id: ID!

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """Group notification email for user. Only available for admins."""
  notificationEmail: String

  """Date and time the membership was last updated."""
  updatedAt: Time

  """User that is associated with the member object."""
  user: UserCore

  """Permissions for the current user on the resource"""
  userPermissions: GroupMemberPermissions!
}

"""Autogenerated input type of GroupMemberBulkUpdate"""
input GroupMemberBulkUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of the members."""
  userIds: [UserID!]!

  """Access level to update the members to."""
  accessLevel: MemberAccessLevel!

  """Date and time the membership expires."""
  expiresAt: Time

  """Global ID of the group."""
  groupId: GroupID!
}

"""Autogenerated return type of GroupMemberBulkUpdate."""
type GroupMemberBulkUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group members after mutation."""
  groupMembers: [GroupMember!]

  """List of queued pending members approvals."""
  queuedMemberApprovals(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberApprovalConnection
}

"""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 GroupMemberPermissions {
  """If `true`, the user can perform `create_custom_emoji` on this resource"""
  createCustomEmoji: Boolean!

  """If `true`, the user can perform `create_projects` on this resource"""
  createProjects: Boolean!

  """If `true`, the user can perform `read_group` on this resource"""
  readGroup: Boolean!

  """If `true`, the user can perform `remove_group` on this resource"""
  removeGroup: Boolean!

  """If `true`, the user can perform `view_edit_page` on this resource"""
  viewEditPage: Boolean!
}

"""Group member relation"""
enum GroupMemberRelation {
  """Members in the group itself."""
  DIRECT

  """Members in the group's ancestor groups."""
  INHERITED

  """Members in the group's subgroups."""
  DESCENDANTS

  """Invited group's members."""
  SHARED_FROM_GROUPS
}

"""Autogenerated input type of GroupMembersExport"""
input GroupMembersExportInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the group."""
  groupId: GroupID!
}

"""Autogenerated return type of GroupMembersExport."""
type GroupMembersExportPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Export request result message."""
  message: String
}

"""
Limited group data accessible to users without full group read access (e.g.
non-members with READ_ADMIN_CICD admin custom role).
"""
type GroupMinimalAccess implements GroupInterface {
  """Avatar URL of the group."""
  avatarUrl: String

  """Full name of the group."""
  fullName: String!

  """Full path of the group."""
  fullPath: ID!

  """ID of the group."""
  id: ID!

  """Name of the group."""
  name: String!

  """Permissions for the current user on the resource"""
  userPermissions: GroupPermissions!

  """Web URL of the group."""
  webUrl: String
}

type GroupNamespaceLinks implements NamespacesLinkPaths {
  """
  Path for autocomplete award emojis. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  autocompleteAwardEmojisPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Calendar path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  calendarPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace contribution guide path."""
  contributionGuidePath: String

  """Help page path for emails."""
  emailsHelpPagePath: String

  """Namespace epics_list."""
  epicsList: String

  """
  Path to the epics list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  epicsListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace group_issues."""
  groupIssues: String

  """
  Full path of the group. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues_list."""
  issuesList: String

  """
  Path to the issues list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  issuesListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues settings path."""
  issuesSettings: String

  """Namespace labels_fetch."""
  labelsFetch: String

  """Namespace labels_manage."""
  labelsManage: String

  """Help page path for Markdown."""
  markdownHelpPath: String

  """
  Full path of the namespace (project.namespace.full_path or group full_path).
  Introduced in GitLab 18.6: **Status**: Experiment.
  """
  namespaceFullPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_comment_template_paths."""
  newCommentTemplate: [CommentTemplatePath!]

  """
  Path to create a new issue. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newIssuePath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_project."""
  newProject: String

  """
  New trial path for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newTrialPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Help page path for quick actions."""
  quickActionsHelpPath: String

  """Namespace register_path."""
  register: String

  """Namespace report_abuse."""
  reportAbuse: String

  """
  RSS path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rssPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace sign_in_path."""
  signIn: String

  """
  User email for export CSV. Returns `null` for user namespaces. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  userExportEmail: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
}

type GroupNamespaceMarkdownPaths implements MarkdownPaths {
  """Supported paths for autocomplete sources for a given namespace."""
  autocompleteSourcesPath(
    """IID of the work item."""
    iid: String

    """ID of the work item type."""
    workItemTypeId: String
  ): JSON

  """Path for the markdown preview for given namespace."""
  markdownPreviewPath(
    """IID of the target item for markdown preview."""
    iid: String
  ): String

  """Uploads path for a given namespace."""
  uploadsPath: String
}

type GroupNamespaceMetadata implements NamespaceMetadata {
  """
  ID of the group. Returns null for user namespaces. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether the group has any projects. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  hasProjects: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  User preference for initial sort order. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  initialSort: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether issue repositioning is disabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isIssueRepositioningDisabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Maximum allowed attachment size (humanized). Introduced in GitLab 18.6: **Status**: Experiment.
  """
  maxAttachmentSize: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether to show the new work item link. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  showNewWorkItem: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Time tracking limit to hours setting. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  timeTrackingLimitToHours: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
}

"""User permission on groups"""
enum GroupPermission {
  """Groups where the user can create projects."""
  CREATE_PROJECTS

  """Groups where the user can transfer projects to."""
  TRANSFER_PROJECTS

  """Groups where the user can import projects to."""
  IMPORT_PROJECTS
}

type GroupPermissions {
  """
  If `true`, the user can perform `admin_ai_catalog_item_consumer` on this resource
  """
  adminAiCatalogItemConsumer: Boolean!

  """If `true`, the user is an instance administrator."""
  adminAllResources: Boolean!

  """If `true`, the user can perform `admin_issue` on this resource"""
  adminIssue: Boolean!

  """
  If `true`, the user can perform `admin_work_item_lifecycle` on this resource
  """
  adminWorkItemLifecycle: Boolean!

  """If `true`, the user can perform `archive_group` on this resource"""
  archiveGroup: Boolean!

  """If `true`, the user can leave this group."""
  canLeave: Boolean!

  """If `true`, the user can perform `change_group` on this resource"""
  changeGroup: Boolean!

  """If `true`, the user can perform `create_custom_emoji` on this resource"""
  createCustomEmoji: Boolean!

  """If `true`, the user can perform `create_projects` on this resource"""
  createProjects: Boolean!

  """
  If `true`, the user can perform `generate_description` on this resource
  """
  generateDescription: Boolean!

  """If `true`, the user can perform `read_crm_contact` on this resource"""
  readCrmContact: Boolean!

  """
  If `true`, the user can perform `read_crm_organization` on this resource
  """
  readCrmOrganization: Boolean!

  """If `true`, the user can perform `read_group` on this resource"""
  readGroup: Boolean!

  """
  If `true`, the user can perform `read_runner_cloud_provisioning_info` on this
  resource Introduced in GitLab 18.8: **Status**: Experiment.
  """
  readRunnerCloudProvisioningInfo: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """If `true`, the user can perform `remove_group` on this resource"""
  removeGroup: Boolean!

  """If `true`, the user can perform `view_edit_page` on this resource"""
  viewEditPage: Boolean!
}

input GroupProjectRequirementComplianceStatusInput {
  """Filter compliance requirement statuses by compliance requirement."""
  requirementId: ComplianceManagementComplianceFrameworkComplianceRequirementID

  """Filter compliance requirement statuses by compliance framework."""
  frameworkId: ComplianceManagementFrameworkID

  """Filter compliance requirement statuses by project."""
  projectId: ProjectID
}

"""Values for sorting releases belonging to a group"""
enum GroupReleaseSort {
  """Released at by descending order."""
  RELEASED_AT_DESC

  """Released at by ascending order."""
  RELEASED_AT_ASC
}

"""Contains release-related statistics about a group"""
type GroupReleaseStats {
  """Total number of releases in all descendant projects of the group."""
  releasesCount: Int

  """
  Percentage of the group's descendant projects that have at least one release.
  """
  releasesPercentage: Int
}

type Groups {
  """Commit responsible for specified group."""
  commit: Commit!

  """HTML data derived from commit needed to present blame."""
  commitData: CommitData

  """Starting line number for the commit group."""
  lineno: Int!

  """Array of lines added for the commit group."""
  lines: [String!]!

  """Path to the file in the commit's first parent."""
  previousPath: String

  """Number of contiguous lines which the blame spans for the commit group."""
  span: Int!
}

type GroupSavedReply {
  """Content of the saved reply."""
  content: String!

  """Global ID of the group-level saved reply."""
  id: GroupsSavedReplyID!

  """Name of the saved reply."""
  name: String!
}

"""The connection type for GroupSavedReply."""
type GroupSavedReplyConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [GroupSavedReplyEdge]

  """A list of nodes."""
  nodes: [GroupSavedReply]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of GroupSavedReplyCreate"""
input GroupSavedReplyCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!

  """Group for the save reply."""
  groupId: GroupID!
}

"""Autogenerated return type of GroupSavedReplyCreate."""
type GroupSavedReplyCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: GroupSavedReply
}

"""Autogenerated input type of GroupSavedReplyDestroy"""
input GroupSavedReplyDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the group-level saved reply."""
  id: GroupsSavedReplyID!
}

"""Autogenerated return type of GroupSavedReplyDestroy."""
type GroupSavedReplyDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: GroupSavedReply
}

"""An edge in a connection."""
type GroupSavedReplyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupSavedReply
}

"""Autogenerated input type of GroupSavedReplyUpdate"""
input GroupSavedReplyUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!

  """Global ID of the group-level saved reply."""
  id: GroupsSavedReplyID!
}

"""Autogenerated return type of GroupSavedReplyUpdate."""
type GroupSavedReplyUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: GroupSavedReply
}

"""Represents a group secret"""
type GroupSecret {
  """Timestamp when the secret creation started."""
  createdAt: Time

  """Description of the group secret."""
  description: String

  """Environments that can access the secret."""
  environment: String!

  """Group the secret belongs to."""
  group: Group!

  """Current metadata version of the group secret."""
  metadataVersion: Int

  """Name of the group secret."""
  name: String!

  """Whether the secret is only accessible from protected branches."""
  protected: Boolean!

  """Rotation configuration for the secret."""
  rotationInfo: SecretRotationInfo

  """Computed lifecycle status of the secret, based on timestamps."""
  status: SecretStatus!
}

"""The connection type for GroupSecret."""
type GroupSecretConnection {
  """A list of edges."""
  edges: [GroupSecretEdge]

  """A list of nodes."""
  nodes: [GroupSecret]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of GroupSecretCreate"""
input GroupSecretCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the secret."""
  groupPath: ID!

  """Name of the group secret."""
  name: String!

  """Description of the group secret."""
  description: String

  """Value of the group secret."""
  secret: String!

  """Environment that can access the secret."""
  environment: String!

  """Whether the secret is only accessible from protected branches."""
  protected: Boolean!

  """Number of days between rotation reminders for the secret."""
  rotationIntervalDays: Int
}

"""Autogenerated return type of GroupSecretCreate."""
type GroupSecretCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group secret."""
  groupSecret: GroupSecret
}

"""Autogenerated input type of GroupSecretDelete"""
input GroupSecretDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the secret."""
  groupPath: ID!

  """Name of the group secret to delete."""
  name: String!
}

"""Autogenerated return type of GroupSecretDelete."""
type GroupSecretDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted group secret."""
  groupSecret: GroupSecret
}

"""An edge in a connection."""
type GroupSecretEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupSecret
}

"""Representation of a group secrets manager."""
type GroupSecretsManager {
  """Group the secrets manager belongs to."""
  group: Group!

  """Status of the group secrets manager."""
  status: GroupSecretsManagerStatus
}

"""Autogenerated input type of GroupSecretsManagerDeprovision"""
input GroupSecretsManagerDeprovisionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the secrets manager."""
  groupPath: ID!
}

"""Autogenerated return type of GroupSecretsManagerDeprovision."""
type GroupSecretsManagerDeprovisionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group secrets manager."""
  groupSecretsManager: GroupSecretsManager
}

"""Autogenerated input type of GroupSecretsManagerInitialize"""
input GroupSecretsManagerInitializeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the secrets manager."""
  groupPath: ID!
}

"""Autogenerated return type of GroupSecretsManagerInitialize."""
type GroupSecretsManagerInitializePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group secrets manager."""
  groupSecretsManager: GroupSecretsManager
}

"""Values for the group secrets manager status"""
enum GroupSecretsManagerStatus {
  """Secrets manager is being provisioned."""
  PROVISIONING

  """Secrets manager has been provisioned and enabled."""
  ACTIVE

  """Secrets manager is being deprovisioned."""
  DEPROVISIONING
}

"""Representation of a group secrets permission."""
type GroupSecretsPermission {
  """Actions that can be performed on secrets."""
  actions: [SecretsManagementAction!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date

  """User who created the Secret Permission."""
  grantedBy: UserCore

  """Group the secret permission belong to."""
  group: Group!

  """Who is provided access to. For eg: User/Role/MemberRole/Group."""
  principal: Principal!
}

"""The connection type for GroupSecretsPermission."""
type GroupSecretsPermissionConnection {
  """A list of edges."""
  edges: [GroupSecretsPermissionEdge]

  """A list of nodes."""
  nodes: [GroupSecretsPermission]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of GroupSecretsPermissionDelete"""
input GroupSecretsPermissionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group permissions for the secret."""
  groupPath: ID!

  """Whose permission to be deleted."""
  principal: PrincipalInput!
}

"""Autogenerated return type of GroupSecretsPermissionDelete."""
type GroupSecretsPermissionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted Secrets Permission."""
  secretsPermission: GroupSecretsPermission
}

"""An edge in a connection."""
type GroupSecretsPermissionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupSecretsPermission
}

"""Autogenerated input type of GroupSecretsPermissionUpdate"""
input GroupSecretsPermissionUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group to which the permissions are added."""
  groupPath: ID!

  """User/MemberRole/Role/Group that is provided access."""
  principal: PrincipalInput!

  """Actions that can be performed on secrets."""
  actions: [SecretsManagementAction!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date
}

"""Autogenerated return type of GroupSecretsPermissionUpdate."""
type GroupSecretsPermissionUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Secrets Permission that was created."""
  secretsPermission: GroupSecretsPermission
}

"""Autogenerated input type of GroupSecretUpdate"""
input GroupSecretUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the secret."""
  groupPath: ID!

  """Name of the group secret to update."""
  name: String!

  """New description of the group secret."""
  description: String

  """New value of the group secret."""
  secret: String

  """New environment that can access the secret."""
  environment: String

  """Whether the secret is only accessible from protected branches."""
  protected: Boolean

  """Number of days between rotation reminders for the secret."""
  rotationIntervalDays: Int

  """
  This should match the current metadata version of the group secret being updated.
  """
  metadataCas: Int!
}

"""Autogenerated return type of GroupSecretUpdate."""
type GroupSecretUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated group secret."""
  groupSecret: GroupSecret
}

"""Represents the source of a security policy belonging to a group"""
type GroupSecurityPolicySource {
  """Indicates whether the policy is inherited from parent group."""
  inherited: Boolean!

  """Project the policy is associated with."""
  namespace: Namespace
}

"""Values for sorting groups"""
enum GroupSort {
  """Most similar to the search query."""
  SIMILARITY

  """Sort by created at, ascending order."""
  CREATED_AT_ASC

  """Sort by created at, descending order."""
  CREATED_AT_DESC

  """Sort by updated at, ascending order."""
  UPDATED_AT_ASC

  """Sort by updated at, descending order."""
  UPDATED_AT_DESC

  """Sort by name, ascending order."""
  NAME_ASC

  """Sort by name, descending order."""
  NAME_DESC

  """Sort by path, ascending order."""
  PATH_ASC

  """Sort by path, descending order."""
  PATH_DESC

  """Sort by ID, ascending order."""
  ID_ASC

  """Sort by ID, descending order."""
  ID_DESC
}

"""
A `GroupsSavedReplyID` is a global ID. It is encoded as a string.

An example `GroupsSavedReplyID` is: `"gid://gitlab/Groups::SavedReply/1"`.
"""
scalar GroupsSavedReplyID

"""Contains statistics about a group"""
type GroupStats {
  """Statistics related to releases within the group."""
  releaseStats: GroupReleaseStats
}

"""Autogenerated input type of GroupUpdate"""
input GroupUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group that will be updated."""
  fullPath: ID!

  """
  Indicates if math rendering limits are locked for all descendant groups.
  """
  lockMathRenderingLimitsEnabled: Boolean

  """Indicates if math rendering limits are used for the group."""
  mathRenderingLimitsEnabled: Boolean

  """Name of the group."""
  name: String

  """Path of the namespace."""
  path: String

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting

  """OAuth provider required for step-up authentication."""
  stepUpAuthRequiredOauthProvider: String

  """Visibility of the namespace."""
  visibility: VisibilityLevelsEnum

  """
  Indicates whether GitLab Duo features are enabled for the group. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  duoFeaturesEnabled: Boolean

  """
  Indicates if the GitLab Duo features enabled setting is enforced for all
  subgroups. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  lockDuoFeaturesEnabled: Boolean

  """
  Indicates whether web-based commit signing is enabled for the group. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  webBasedCommitSigningEnabled: Boolean

  """
  Indicates whether tool approval for session is enabled for the group. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  toolApprovalForSessionEnabled: Boolean

  """
  Indicates if the tool approval for session setting is enforced for all
  subgroups. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  lockToolApprovalForSessionEnabled: Boolean

  """
  Indicates whether built-in project templates are available for new projects in
  the group. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  builtInProjectTemplatesEnabled: Boolean

  """
  Indicates if the built-in project templates enabled setting is enforced for
  all subgroups. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  lockBuiltInProjectTemplatesEnabled: Boolean
}

"""Autogenerated return type of GroupUpdate."""
type GroupUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group after update."""
  group: Group
}

"""
Represents the Geo replication and verification state of a group_upload
"""
type GroupUploadRegistry {
  """
  Indicate if the checksums of the GroupUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the GroupUploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this GroupUploadRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the Group Upload."""
  groupUploadId: ID!

  """ID of the GroupUploadRegistry"""
  id: ID!

  """Error message during sync of the GroupUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the GroupUploadRegistry
  """
  lastSyncedAt: Time

  """Indicate if the GroupUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the GroupUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the GroupUploadRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the GroupUploadRegistry"""
  retryCount: Int

  """Sync state of the GroupUploadRegistry"""
  state: RegistryState

  """The local checksum of the GroupUploadRegistry"""
  verificationChecksum: String

  """The expected checksum of the GroupUploadRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the GroupUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the GroupUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the GroupUploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of GroupUploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the GroupUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the GroupUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for GroupUploadRegistry."""
type GroupUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [GroupUploadRegistryEdge]

  """A list of nodes."""
  nodes: [GroupUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GroupUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupUploadRegistry
}

"""Exposes aggregated value stream flow metrics"""
type GroupValueStreamAnalyticsFlowMetrics {
  """Median time from first commit to issue closed"""
  cycleTime(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric

  """Number of production deployments in the given period."""
  deploymentCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric

  """Number of issues opened in the given period."""
  issueCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric

  """
  Number of open issues closed (completed) in the given period. Maximum value is 10,001.
  """
  issuesCompletedCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric

  """Median time from when the issue was created to when it was closed."""
  leadTime(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric

  """Median time from merge request creation to merge request merged."""
  timeToMerge(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """Username of the author of the merge request."""
    authorUsername: String

    """Milestone applied to the merge request."""
    milestoneTitle: String

    """Labels applied to the merge request."""
    labelNames: [String!]

    """Project IDs within the group hierarchy."""
    projectIds: [ID!]
  ): ValueStreamAnalyticsMetric
}

"""
Represents the Geo sync and verification state of a group wiki repository
"""
type GroupWikiRepositoryRegistry {
  """
  Indicate if the checksums of the GroupWikiRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the GroupWikiRepositoryRegistry was created"""
  createdAt: Time

  """Path to the data management view for this GroupWikiRepositoryRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the Group Wiki Repository."""
  groupWikiRepositoryId: ID!

  """ID of the GroupWikiRepositoryRegistry"""
  id: ID!

  """Error message during sync of the GroupWikiRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the GroupWikiRepositoryRegistry
  """
  lastSyncedAt: Time

  """Indicate if the GroupWikiRepositoryRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the GroupWikiRepositoryRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the GroupWikiRepositoryRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the GroupWikiRepositoryRegistry
  """
  retryCount: Int

  """Sync state of the GroupWikiRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the GroupWikiRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the GroupWikiRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the GroupWikiRepositoryRegistry"""
  verificationFailure: String

  """Timestamp after which the GroupWikiRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the GroupWikiRepositoryRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of GroupWikiRepositoryRegistry started"""
  verificationStartedAt: Time

  """Verification state of the GroupWikiRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the GroupWikiRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for GroupWikiRepositoryRegistry."""
type GroupWikiRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [GroupWikiRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [GroupWikiRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type GroupWikiRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: GroupWikiRepositoryRegistry
}

"""Health status of an issue or epic"""
enum HealthStatus {
  """On track"""
  onTrack

  """Needs attention"""
  needsAttention

  """At risk"""
  atRisk
}

"""Health status of an issue or epic for filtering"""
enum HealthStatusFilter {
  """No health status is assigned."""
  NONE

  """Any health status is assigned."""
  ANY

  """On track"""
  onTrack

  """Needs attention"""
  needsAttention

  """At risk"""
  atRisk
}

"""Helm file metadata"""
type HelmFileMetadata implements PackageFileMetadata {
  """Channel of the Helm chart."""
  channel: String!

  """Date of creation."""
  createdAt: Time!

  """Metadata of the Helm chart."""
  metadata: PackageHelmMetadataType!

  """Date of most recent update."""
  updatedAt: Time!
}

input HierarchyFilterInput {
  """
  Filter work items by global IDs of their parent items (maximum is 100 items).
  """
  parentIds: [WorkItemID!]

  """
  Whether to include work items of descendant parents when filtering by parent_ids.
  """
  includeDescendantWorkItems: Boolean

  """
  Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  parentWildcardId: WorkItemParentWildcardId
}

"""Autogenerated input type of HttpIntegrationCreate"""
input HttpIntegrationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the integration in."""
  projectPath: ID!

  """Name of the integration."""
  name: String!

  """Type of integration to create. Cannot be changed after creation."""
  type: AlertManagementIntegrationType = HTTP

  """Whether the integration is receiving alerts."""
  active: Boolean!

  """Example of an alert payload."""
  payloadExample: JsonString

  """
  Custom mapping of GitLab alert attributes to fields from the payload example.
  """
  payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!]
}

"""Autogenerated return type of HttpIntegrationCreate."""
type HttpIntegrationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Alerting integration."""
  integration: AlertManagementHttpIntegration
}

"""Autogenerated input type of HttpIntegrationDestroy"""
input HttpIntegrationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the integration to remove."""
  id: AlertManagementHttpIntegrationID!
}

"""Autogenerated return type of HttpIntegrationDestroy."""
type HttpIntegrationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Alerting integration."""
  integration: AlertManagementHttpIntegration
}

"""Autogenerated input type of HttpIntegrationResetToken"""
input HttpIntegrationResetTokenInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the integration to mutate."""
  id: AlertManagementHttpIntegrationID!
}

"""Autogenerated return type of HttpIntegrationResetToken."""
type HttpIntegrationResetTokenPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Alerting integration."""
  integration: AlertManagementHttpIntegration
}

"""Autogenerated input type of HttpIntegrationUpdate"""
input HttpIntegrationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the integration to mutate."""
  id: AlertManagementHttpIntegrationID!

  """Name of the integration."""
  name: String

  """Whether the integration is receiving alerts."""
  active: Boolean

  """Example of an alert payload."""
  payloadExample: JsonString

  """
  Custom mapping of GitLab alert attributes to fields from the payload example.
  """
  payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!]
}

"""Autogenerated return type of HttpIntegrationUpdate."""
type HttpIntegrationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Alerting integration."""
  integration: AlertManagementHttpIntegration
}

"""IDE settings and feature flags."""
type Ide {
  """Indicates whether AI assisted code suggestions are enabled."""
  codeSuggestionsEnabled: Boolean!
}

type ImagePullSecrets {
  """Name of the Kubernetes image pull secret."""
  name: String!

  """Namespace of the kubernetes image pull secret."""
  namespace: String!
}

"""
Represents the Geo replication and verification state of an import/export archive upload.
"""
type ImportExportUploadUploadRegistry {
  """
  Indicate if the checksums of the ImportExportUploadUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the ImportExportUploadUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this ImportExportUploadUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ImportExportUploadUploadRegistry"""
  id: ID!

  """ID of the import/export archive upload."""
  importExportUploadUploadId: ID!

  """Error message during sync of the ImportExportUploadUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ImportExportUploadUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the ImportExportUploadUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the ImportExportUploadUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the ImportExportUploadUploadRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ImportExportUploadUploadRegistry
  """
  retryCount: Int

  """Sync state of the ImportExportUploadUploadRegistry"""
  state: RegistryState

  """The local checksum of the ImportExportUploadUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the ImportExportUploadUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the ImportExportUploadUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the ImportExportUploadUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ImportExportUploadUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of ImportExportUploadUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the ImportExportUploadUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ImportExportUploadUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for ImportExportUploadUploadRegistry."""
type ImportExportUploadUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ImportExportUploadUploadRegistryEdge]

  """A list of nodes."""
  nodes: [ImportExportUploadUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ImportExportUploadUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ImportExportUploadUploadRegistry
}

"""Import source"""
enum ImportSource {
  """Not imported"""
  NONE

  """Gitlab Migration"""
  GITLAB_MIGRATION

  """Gitlab Project"""
  GITLAB_PROJECT

  """Gitlab Group"""
  GITLAB_GROUP

  """Github"""
  GITHUB

  """Bitbucket"""
  BITBUCKET

  """Bitbucket Server"""
  BITBUCKET_SERVER

  """Fogbugz"""
  FOGBUGZ

  """Gitea"""
  GITEA

  """Git"""
  GIT

  """Manifest"""
  MANIFEST

  """Custom Template"""
  CUSTOM_TEMPLATE

  """Jira"""
  JIRA

  """Offline Transfer"""
  OFFLINE_TRANSFER
}

type ImportSourceUser {
  """Timestamp of when the source user was created."""
  createdAt: Time!

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!

  """Name of the importer."""
  importType: ImportSource!

  """Placeholder user associated with the import source user."""
  placeholderUser: UserCore

  """User that contributions are reassigned to."""
  reassignToUser: UserCore

  """User that did the reassignment."""
  reassignedByUser: UserCore

  """Error message if reassignment failed."""
  reassignmentError: String

  """Source instance hostname."""
  sourceHostname: String!

  """Name of user in the source instance."""
  sourceName: String

  """ID of the user in the source instance."""
  sourceUserIdentifier: String!

  """Username of user in the source instance."""
  sourceUsername: String

  """Status of the mapping."""
  status: ImportSourceUserStatus!
}

"""Autogenerated input type of ImportSourceUserCancelReassignment"""
input ImportSourceUserCancelReassignmentInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!
}

"""Autogenerated return type of ImportSourceUserCancelReassignment."""
type ImportSourceUserCancelReassignmentPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

"""The connection type for ImportSourceUser."""
type ImportSourceUserConnection {
  """A list of edges."""
  edges: [ImportSourceUserEdge]

  """A list of nodes."""
  nodes: [ImportSourceUser]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ImportSourceUserEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ImportSourceUser
}

"""
A `ImportSourceUserID` is a global ID. It is encoded as a string.

An example `ImportSourceUserID` is: `"gid://gitlab/Import::SourceUser/1"`.
"""
scalar ImportSourceUserID

"""Autogenerated input type of ImportSourceUserKeepAllAsPlaceholder"""
input ImportSourceUserKeepAllAsPlaceholderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the namespace."""
  namespaceId: NamespaceID!
}

"""Autogenerated return type of ImportSourceUserKeepAllAsPlaceholder."""
type ImportSourceUserKeepAllAsPlaceholderPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Number of successfully updated mappings of users on source instance to their destination users.
  """
  updatedImportSourceUserCount: Int
}

"""Autogenerated input type of ImportSourceUserKeepAsPlaceholder"""
input ImportSourceUserKeepAsPlaceholderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!
}

"""Autogenerated return type of ImportSourceUserKeepAsPlaceholder."""
type ImportSourceUserKeepAsPlaceholderPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

"""Autogenerated input type of ImportSourceUserReassign"""
input ImportSourceUserReassignInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!

  """Global ID of the assignee user."""
  assigneeUserId: UserID!
}

"""Autogenerated return type of ImportSourceUserReassign."""
type ImportSourceUserReassignPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

"""Autogenerated input type of ImportSourceUserResendNotification"""
input ImportSourceUserResendNotificationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!
}

"""Autogenerated return type of ImportSourceUserResendNotification."""
type ImportSourceUserResendNotificationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

"""Autogenerated input type of ImportSourceUserRetryFailedReassignment"""
input ImportSourceUserRetryFailedReassignmentInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!
}

"""Autogenerated return type of ImportSourceUserRetryFailedReassignment."""
type ImportSourceUserRetryFailedReassignmentPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

enum ImportSourceUserStatus {
  """An import source user mapping that is pending reassignment."""
  PENDING_REASSIGNMENT

  """An import source user mapping that is awaiting approval."""
  AWAITING_APPROVAL

  """An import source user mapping that is reassignment in progress."""
  REASSIGNMENT_IN_PROGRESS

  """An import source user mapping that is rejected."""
  REJECTED

  """An import source user mapping that is failed."""
  FAILED

  """An import source user mapping that is completed."""
  COMPLETED

  """An import source user mapping that is keep as placeholder."""
  KEEP_AS_PLACEHOLDER
}

"""Autogenerated input type of ImportSourceUserUndoKeepAsPlaceholder"""
input ImportSourceUserUndoKeepAsPlaceholderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the mapping of a user on source instance to a user on destination instance.
  """
  id: ImportSourceUserID!
}

"""Autogenerated return type of ImportSourceUserUndoKeepAsPlaceholder."""
type ImportSourceUserUndoKeepAsPlaceholderPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Mapping of a user on source instance to a user on destination instance after mutation.
  """
  importSourceUser: ImportSourceUser
}

"""
A `IncidentManagementEscalationPolicyID` is a global ID. It is encoded as a string.

An example `IncidentManagementEscalationPolicyID` is: `"gid://gitlab/IncidentManagement::EscalationPolicy/1"`.
"""
scalar IncidentManagementEscalationPolicyID

"""
A `IncidentManagementEscalationRuleID` is a global ID. It is encoded as a string.

An example `IncidentManagementEscalationRuleID` is: `"gid://gitlab/IncidentManagement::EscalationRule/1"`.
"""
scalar IncidentManagementEscalationRuleID

"""
A `IncidentManagementIssuableResourceLinkID` is a global ID. It is encoded as a string.

An example `IncidentManagementIssuableResourceLinkID` is: `"gid://gitlab/IncidentManagement::IssuableResourceLink/1"`.
"""
scalar IncidentManagementIssuableResourceLinkID

"""
A `IncidentManagementOncallParticipantID` is a global ID. It is encoded as a string.

An example `IncidentManagementOncallParticipantID` is: `"gid://gitlab/IncidentManagement::OncallParticipant/1"`.
"""
scalar IncidentManagementOncallParticipantID

"""Describes an incident management on-call rotation"""
type IncidentManagementOncallRotation {
  """Active period for the on-call rotation."""
  activePeriod: OncallRotationActivePeriodType

  """End date and time of the on-call rotation."""
  endsAt: Time

  """ID of the on-call rotation."""
  id: IncidentManagementOncallRotationID!

  """Length of the on-call schedule, in the units specified by lengthUnit."""
  length: Int

  """Unit of the on-call rotation length."""
  lengthUnit: OncallRotationUnitEnum

  """Name of the on-call rotation."""
  name: String!

  """Participants of the on-call rotation."""
  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
  ): OncallParticipantTypeConnection

  """
  Blocks of time for which a participant is on-call within a given time frame. Time frame cannot exceed one month.
  """
  shifts(
    """Start of timeframe to include shifts for."""
    startTime: Time!

    """
    End of timeframe to include shifts for. Cannot exceed one month after start.
    """
    endTime: Time!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IncidentManagementOncallShiftConnection

  """Start date of the on-call rotation."""
  startsAt: Time
}

"""The connection type for IncidentManagementOncallRotation."""
type IncidentManagementOncallRotationConnection {
  """A list of edges."""
  edges: [IncidentManagementOncallRotationEdge]

  """A list of nodes."""
  nodes: [IncidentManagementOncallRotation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type IncidentManagementOncallRotationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IncidentManagementOncallRotation
}

"""
A `IncidentManagementOncallRotationID` is a global ID. It is encoded as a string.

An example `IncidentManagementOncallRotationID` is: `"gid://gitlab/IncidentManagement::OncallRotation/1"`.
"""
scalar IncidentManagementOncallRotationID

"""Describes an incident management on-call schedule"""
type IncidentManagementOncallSchedule {
  """Description of the on-call schedule."""
  description: String

  """Internal ID of the on-call schedule."""
  iid: String!

  """Name of the on-call schedule."""
  name: String!
  oncallUsers: [UserCore!]

  """On-call rotation for the on-call schedule."""
  rotation(
    """ID of the on-call rotation."""
    id: IncidentManagementOncallRotationID!
  ): IncidentManagementOncallRotation

  """On-call rotations for the on-call schedule."""
  rotations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IncidentManagementOncallRotationConnection!

  """Time zone of the on-call schedule."""
  timezone: String!
}

"""The connection type for IncidentManagementOncallSchedule."""
type IncidentManagementOncallScheduleConnection {
  """A list of edges."""
  edges: [IncidentManagementOncallScheduleEdge]

  """A list of nodes."""
  nodes: [IncidentManagementOncallSchedule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type IncidentManagementOncallScheduleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IncidentManagementOncallSchedule
}

"""A block of time for which a participant is on-call."""
type IncidentManagementOncallShift {
  """End time of the on-call shift."""
  endsAt: Time

  """Participant assigned to the on-call shift."""
  participant: OncallParticipantType

  """Start time of the on-call shift."""
  startsAt: Time
}

"""The connection type for IncidentManagementOncallShift."""
type IncidentManagementOncallShiftConnection {
  """A list of edges."""
  edges: [IncidentManagementOncallShiftEdge]

  """A list of nodes."""
  nodes: [IncidentManagementOncallShift]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type IncidentManagementOncallShiftEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IncidentManagementOncallShift
}

"""
A `IncidentManagementTimelineEventID` is a global ID. It is encoded as a string.

An example `IncidentManagementTimelineEventID` is: `"gid://gitlab/IncidentManagement::TimelineEvent/1"`.
"""
scalar IncidentManagementTimelineEventID

"""
A `IncidentManagementTimelineEventTagID` is a global ID. It is encoded as a string.

An example `IncidentManagementTimelineEventTagID` is: `"gid://gitlab/IncidentManagement::TimelineEventTag/1"`.
"""
scalar IncidentManagementTimelineEventTagID

"""
CI/CD variables a project inherits from its parent group and ancestors.
"""
type InheritedCiVariable {
  """Description of the variable."""
  description: String

  """Scope defining the environments that can use the variable."""
  environmentScope: String

  """
  Indicates the path to the CI/CD settings of the group the variable belongs to.
  """
  groupCiCdSettingsPath: String

  """Indicates group the variable belongs to."""
  groupName: String

  """Indicates whether the variable is hidden."""
  hidden: Boolean

  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is masked."""
  masked: Boolean

  """Indicates whether the variable is protected."""
  protected: Boolean

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for InheritedCiVariable."""
type InheritedCiVariableConnection {
  """A list of edges."""
  edges: [InheritedCiVariableEdge]

  """A list of nodes."""
  nodes: [InheritedCiVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type InheritedCiVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: InheritedCiVariable
}

"""
Stores instance level Amazon S3 configurations for audit event streaming.
"""
type InstanceAmazonS3ConfigurationType implements AmazonS3ConfigurationInterface {
  """Access key ID of the Amazon S3 account."""
  accessKeyXid: String!

  """Active status of the destination."""
  active: Boolean!

  """AWS region where the bucket is created."""
  awsRegion: String!

  """Name of the bucket where the audit events would be logged."""
  bucketName: String!

  """ID of the configuration."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""The connection type for InstanceAmazonS3ConfigurationType."""
type InstanceAmazonS3ConfigurationTypeConnection {
  """A list of edges."""
  edges: [InstanceAmazonS3ConfigurationTypeEdge]

  """A list of nodes."""
  nodes: [InstanceAmazonS3ConfigurationType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type InstanceAmazonS3ConfigurationTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: InstanceAmazonS3ConfigurationType
}

"""
Represents a subgroup or project filter that belongs to an instance level external audit event streaming destination.
"""
type InstanceAuditEventNamespaceFilter {
  """Destination to which the filter belongs."""
  externalStreamingDestination: InstanceAuditEventStreamingDestination!

  """ID of the filter."""
  id: ID!

  """Group or project namespace the filter belongs to."""
  namespace: Namespace!
}

"""
Represents an external destination to stream instance level audit events.
"""
type InstanceAuditEventStreamingDestination implements AuditEventStreamingDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Category of the external destination to send audit events to."""
  category: String!

  """Config of the external destination."""
  config: JSON!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """List of subgroup or project filters for the destination."""
  namespaceFilters: [InstanceAuditEventNamespaceFilter!]

  """
  Secret token for the destination, will be non-empty value only for http category.
  """
  secretToken: String!
}

"""The connection type for InstanceAuditEventStreamingDestination."""
type InstanceAuditEventStreamingDestinationConnection {
  """A list of edges."""
  edges: [InstanceAuditEventStreamingDestinationEdge]

  """A list of nodes."""
  nodes: [InstanceAuditEventStreamingDestination]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type InstanceAuditEventStreamingDestinationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: InstanceAuditEventStreamingDestination
}

"""
Autogenerated input type of InstanceAuditEventStreamingDestinationsCreate
"""
input InstanceAuditEventStreamingDestinationsCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination config."""
  config: JSON!

  """Destination name."""
  name: String

  """Destination category."""
  category: String!

  """Secret token."""
  secretToken: String
}

"""
Autogenerated return type of InstanceAuditEventStreamingDestinationsCreate.
"""
type InstanceAuditEventStreamingDestinationsCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destination created."""
  externalAuditEventDestination: InstanceAuditEventStreamingDestination
}

"""
Autogenerated input type of InstanceAuditEventStreamingDestinationsDelete
"""
input InstanceAuditEventStreamingDestinationsDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the audit events external streaming destination to delete."""
  id: AuditEventsInstanceExternalStreamingDestinationID!
}

"""
Autogenerated return type of InstanceAuditEventStreamingDestinationsDelete.
"""
type InstanceAuditEventStreamingDestinationsDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Autogenerated input type of InstanceAuditEventStreamingDestinationsUpdate
"""
input InstanceAuditEventStreamingDestinationsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of external audit event destination to update."""
  id: AuditEventsInstanceExternalStreamingDestinationID!

  """Destination config."""
  config: JSON

  """Destination name."""
  name: String

  """Destination category."""
  category: String

  """Secret token."""
  secretToken: String

  """Active status of the destination."""
  active: Boolean
}

"""
Autogenerated return type of InstanceAuditEventStreamingDestinationsUpdate.
"""
type InstanceAuditEventStreamingDestinationsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated destination."""
  externalAuditEventDestination: InstanceAuditEventStreamingDestination
}

"""Represents an external resource to send instance audit events to"""
type InstanceExternalAuditEventDestination implements ExternalAuditEventDestinationInterface {
  """Active status of the destination."""
  active: Boolean!

  """External destination to send audit events to."""
  destinationUrl: String!

  """List of event type filters added for streaming."""
  eventTypeFilters: [String!]!

  """List of additional HTTP headers sent with each event."""
  headers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AuditEventsStreamingInstanceHeaderConnection!

  """ID of the destination."""
  id: ID!

  """Name of the external destination to send audit events to."""
  name: String!

  """Verification token to validate source of event."""
  verificationToken: String!
}

"""The connection type for InstanceExternalAuditEventDestination."""
type InstanceExternalAuditEventDestinationConnection {
  """A list of edges."""
  edges: [InstanceExternalAuditEventDestinationEdge]

  """A list of nodes."""
  nodes: [InstanceExternalAuditEventDestination]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""
Autogenerated input type of InstanceExternalAuditEventDestinationCreate
"""
input InstanceExternalAuditEventDestinationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination URL."""
  destinationUrl: String!

  """Destination name."""
  name: String
}

"""
Autogenerated return type of InstanceExternalAuditEventDestinationCreate.
"""
type InstanceExternalAuditEventDestinationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destination created."""
  instanceExternalAuditEventDestination: InstanceExternalAuditEventDestination
}

"""
Autogenerated input type of InstanceExternalAuditEventDestinationDestroy
"""
input InstanceExternalAuditEventDestinationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the external instance audit event destination to destroy."""
  id: AuditEventsInstanceExternalAuditEventDestinationID!
}

"""
Autogenerated return type of InstanceExternalAuditEventDestinationDestroy.
"""
type InstanceExternalAuditEventDestinationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type InstanceExternalAuditEventDestinationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: InstanceExternalAuditEventDestination
}

"""
Autogenerated input type of InstanceExternalAuditEventDestinationUpdate
"""
input InstanceExternalAuditEventDestinationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the external instance audit event destination to update."""
  id: AuditEventsInstanceExternalAuditEventDestinationID!

  """Destination URL to change."""
  destinationUrl: String

  """Destination name."""
  name: String

  """Active status of the destination."""
  active: Boolean
}

"""
Autogenerated return type of InstanceExternalAuditEventDestinationUpdate.
"""
type InstanceExternalAuditEventDestinationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated destination."""
  instanceExternalAuditEventDestination: InstanceExternalAuditEventDestination
}

"""
Autogenerated input type of InstanceGoogleCloudLoggingConfigurationCreate
"""
input InstanceGoogleCloudLoggingConfigurationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination name."""
  name: String

  """
  Unique identifier of the Google Cloud project to which the logging configuration belongs.
  """
  googleProjectIdName: String!

  """
  Email address associated with the service account that will be used to
  authenticate and interact with the Google Cloud Logging service. This is part
  of the IAM credentials.
  """
  clientEmail: String!

  """
  Unique identifier used to distinguish and manage different logs within the
  same Google Cloud project.(defaults to `audit_events`).
  """
  logIdName: String = "audit_events"

  """
  Private Key associated with the service account. This key is used to
  authenticate the service account and authorize it to interact with the Google
  Cloud Logging service.
  """
  privateKey: String!
}

"""
Autogenerated return type of InstanceGoogleCloudLoggingConfigurationCreate.
"""
type InstanceGoogleCloudLoggingConfigurationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """configuration created."""
  instanceGoogleCloudLoggingConfiguration: InstanceGoogleCloudLoggingConfigurationType
}

"""
Autogenerated input type of InstanceGoogleCloudLoggingConfigurationDestroy
"""
input InstanceGoogleCloudLoggingConfigurationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Google Cloud logging configuration to destroy."""
  id: AuditEventsInstanceGoogleCloudLoggingConfigurationID!
}

"""
Autogenerated return type of InstanceGoogleCloudLoggingConfigurationDestroy.
"""
type InstanceGoogleCloudLoggingConfigurationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Stores instance level Google Cloud Logging configurations associated with IAM
service accounts,used for generating access tokens.
"""
type InstanceGoogleCloudLoggingConfigurationType implements GoogleCloudLoggingConfigurationInterface {
  """Active status of the destination."""
  active: Boolean!

  """Client email."""
  clientEmail: String!

  """Google project ID."""
  googleProjectIdName: String!

  """ID of the configuration."""
  id: ID!

  """Log ID."""
  logIdName: String!

  """Name of the external destination to send audit events to."""
  name: String!
}

"""The connection type for InstanceGoogleCloudLoggingConfigurationType."""
type InstanceGoogleCloudLoggingConfigurationTypeConnection {
  """A list of edges."""
  edges: [InstanceGoogleCloudLoggingConfigurationTypeEdge]

  """A list of nodes."""
  nodes: [InstanceGoogleCloudLoggingConfigurationType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type InstanceGoogleCloudLoggingConfigurationTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: InstanceGoogleCloudLoggingConfigurationType
}

"""
Autogenerated input type of InstanceGoogleCloudLoggingConfigurationUpdate
"""
input InstanceGoogleCloudLoggingConfigurationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Destination name."""
  name: String

  """
  Unique identifier of the Google Cloud project to which the logging configuration belongs.
  """
  googleProjectIdName: String

  """
  Email address associated with the service account that will be used to
  authenticate and interact with the Google Cloud Logging service. This is part
  of the IAM credentials.
  """
  clientEmail: String

  """
  Unique identifier used to distinguish and manage different logs within the same Google Cloud project.
  """
  logIdName: String

  """
  Private Key associated with the service account. This key is used to
  authenticate the service account and authorize it to interact with the Google
  Cloud Logging service.
  """
  privateKey: String

  """Active status of the destination."""
  active: Boolean

  """ID of the instance google Cloud configuration to update."""
  id: AuditEventsInstanceGoogleCloudLoggingConfigurationID!
}

"""
Autogenerated return type of InstanceGoogleCloudLoggingConfigurationUpdate.
"""
type InstanceGoogleCloudLoggingConfigurationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """configuration updated."""
  instanceGoogleCloudLoggingConfiguration: InstanceGoogleCloudLoggingConfigurationType
}

"""Autogenerated input type of InstanceSecretsManagerEnroll"""
input InstanceSecretsManagerEnrollInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of InstanceSecretsManagerEnroll."""
type InstanceSecretsManagerEnrollPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of InstanceSecretsManagerUnenroll"""
input InstanceSecretsManagerUnenrollInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of InstanceSecretsManagerUnenroll."""
type InstanceSecretsManagerUnenrollPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type InstanceSecurityDashboard {
  """
  Cluster agents associated with projects selected in the Instance Security Dashboard.
  """
  clusterAgents(
    """Returns only cluster agents which have vulnerabilities."""
    hasVulnerabilities: Boolean

    """
    Returns only cluster agents which have an associated remote development
    agent config. Deprecated in GitLab 17.10: Use has_workspaces_agent_config
    filter instead.
    """
    hasRemoteDevelopmentAgentConfig: Boolean

    """
    Returns only cluster agents which have an associated workspaces agent config.
    """
    hasWorkspacesAgentConfig: Boolean

    """
    Returns only cluster agents which have been enabled with the remote development feature.
    """
    hasRemoteDevelopmentEnabled: 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
  ): ClusterAgentConnection

  """Projects selected in Instance Security Dashboard."""
  projects(
    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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(
    """Filter the response by given letter grade."""
    letterGrade: VulnerabilityGrade
  ): [VulnerableProjectsByGrade!]!

  """
  Vulnerability scanners reported on the vulnerabilities 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 severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """Filter vulnerabilities by scanner."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """Filter vulnerabilities that do or do not have issues."""
    hasIssues: Boolean

    """Filter vulnerabilities that do or do not have a resolution."""
    hasResolution: Boolean

    """
    Filters vulnerabilities which can or can not be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """Filter vulnerabilities that do or do not have a merge request."""
    hasMergeRequest: Boolean

    """Filter by dismissal reason."""
    dismissalReason: [VulnerabilityDismissalReason!]

    """Filter vulnerabilities that do or do not have remediations."""
    hasRemediations: Boolean

    """
    Default value is false. When set to true, the count returned for each
    severity is capped at a maximum of 1001. Ignored when used along with any
    argument that requires advanced vulnerability management.
    """
    capped: Boolean = false

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance
    security dashboard queries. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    identifierName: String

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by token status. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter by policy auto dismissed. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.8:
    **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured, advanced vulnerability management set up
    and `vulnerabilities_across_contexts` feature flag enabled. Introduced in
    GitLab 18.11: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured, advanced vulnerability management set up and
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.11: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean
  ): VulnerabilitySeveritiesCount
}

"""An expression with an integer value."""
type IntegerExpression implements ExpressionInterface {
  """Field the expression applies to."""
  field: String!

  """Operator of the expression."""
  operator: String!

  """Integer value of the expression."""
  value: Int!
}

"""
An integration to override the level settings of instance specific integrations.
"""
type IntegrationExclusion {
  """Group that has been excluded from the instance specific integration."""
  group: Group

  """Project that has been excluded from the instance specific integration."""
  project: Project
}

"""The connection type for IntegrationExclusion."""
type IntegrationExclusionConnection {
  """A list of edges."""
  edges: [IntegrationExclusionEdge]

  """A list of nodes."""
  nodes: [IntegrationExclusion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of IntegrationExclusionCreate"""
input IntegrationExclusionCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Type of integration to exclude."""
  integrationName: IntegrationType!

  """IDs of projects to exclude up to a maximum of 100."""
  projectIds: [ProjectID!]

  """IDs of groups to exclude up to a maximum of 100."""
  groupIds: [GroupID!]
}

"""Autogenerated return type of IntegrationExclusionCreate."""
type IntegrationExclusionCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Integration exclusions created by the mutation."""
  exclusions: [IntegrationExclusion!]
}

"""Autogenerated input type of IntegrationExclusionDelete"""
input IntegrationExclusionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Type of integration."""
  integrationName: IntegrationType!

  """IDs of excluded projects."""
  projectIds: [ProjectID!]

  """IDs of excluded groups."""
  groupIds: [GroupID!]
}

"""Autogenerated return type of IntegrationExclusionDelete."""
type IntegrationExclusionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project no longer excluded due to the mutation."""
  exclusions: [IntegrationExclusion!]
}

"""An edge in a connection."""
type IntegrationExclusionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IntegrationExclusion
}

"""
A `IntegrationsPrometheusID` is a global ID. It is encoded as a string.

An example `IntegrationsPrometheusID` is: `"gid://gitlab/Integrations::Prometheus/1"`.
The older format `"gid://gitlab/PrometheusService/1"` was deprecated in 14.1.
"""
scalar IntegrationsPrometheusID

"""Integration Names"""
enum IntegrationType {
  """Beyond Identity."""
  BEYOND_IDENTITY
}

"""An ISO 8601-encoded date"""
scalar ISO8601Date

"""An ISO 8601-encoded datetime"""
scalar ISO8601DateTime

"""Represents an issuable."""
union Issuable = Epic | Issue | MergeRequest | WorkItem

"""
A `IssuableID` is a global ID. It is encoded as a string.

An example `IssuableID` is: `"gid://gitlab/Issuable/1"`.
"""
scalar IssuableID

"""
Represents the Geo replication and verification state of a `issuable_metric_image_upload`
"""
type IssuableMetricImageUploadRegistry {
  """
  Indicate if the checksums of the IssuableMetricImageUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the IssuableMetricImageUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this IssuableMetricImageUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the IssuableMetricImageUploadRegistry"""
  id: ID!

  """ID of the Issuable Metric Image Upload."""
  issuableMetricImageUploadId: ID!

  """Error message during sync of the IssuableMetricImageUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the IssuableMetricImageUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the IssuableMetricImageUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the IssuableMetricImageUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the IssuableMetricImageUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the IssuableMetricImageUploadRegistry
  """
  retryCount: Int

  """Sync state of the IssuableMetricImageUploadRegistry"""
  state: RegistryState

  """The local checksum of the IssuableMetricImageUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the IssuableMetricImageUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the IssuableMetricImageUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the IssuableMetricImageUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the IssuableMetricImageUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of IssuableMetricImageUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the IssuableMetricImageUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the IssuableMetricImageUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for IssuableMetricImageUploadRegistry."""
type IssuableMetricImageUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [IssuableMetricImageUploadRegistryEdge]

  """A list of nodes."""
  nodes: [IssuableMetricImageUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type IssuableMetricImageUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IssuableMetricImageUploadRegistry
}

"""Describes an issuable resource link for incident issues"""
type IssuableResourceLink {
  """ID of the Issuable resource link."""
  id: IncidentManagementIssuableResourceLinkID!

  """Incident of the resource link."""
  issue: Issue!

  """Web Link to the resource."""
  link: String!

  """Optional text for the link."""
  linkText: String

  """Type of the resource link."""
  linkType: IssuableResourceLinkType!
}

"""The connection type for IssuableResourceLink."""
type IssuableResourceLinkConnection {
  """A list of edges."""
  edges: [IssuableResourceLinkEdge]

  """A list of nodes."""
  nodes: [IssuableResourceLink]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of IssuableResourceLinkCreate"""
input IssuableResourceLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Incident id to associate the resource link with."""
  id: IssueID!

  """Link of the resource."""
  link: String!

  """Link text of the resource."""
  linkText: String

  """Link type of the resource."""
  linkType: IssuableResourceLinkType
}

"""Autogenerated return type of IssuableResourceLinkCreate."""
type IssuableResourceLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issuable resource link."""
  issuableResourceLink: IssuableResourceLink
}

"""Autogenerated input type of IssuableResourceLinkDestroy"""
input IssuableResourceLinkDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Issuable resource link ID to remove."""
  id: IncidentManagementIssuableResourceLinkID!
}

"""Autogenerated return type of IssuableResourceLinkDestroy."""
type IssuableResourceLinkDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issuable resource link."""
  issuableResourceLink: IssuableResourceLink
}

"""An edge in a connection."""
type IssuableResourceLinkEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IssuableResourceLink
}

"""Issuable resource link type enum"""
enum IssuableResourceLinkType {
  """General link type"""
  general

  """Zoom link type"""
  zoom

  """Slack link type"""
  slack

  """Pagerduty link type"""
  pagerduty
}

"""
A `IssuablesCustomFieldID` is a global ID. It is encoded as a string.

An example `IssuablesCustomFieldID` is: `"gid://gitlab/Issuables::CustomField/1"`.
"""
scalar IssuablesCustomFieldID

"""
A `IssuablesCustomFieldSelectOptionID` is a global ID. It is encoded as a string.

An example `IssuablesCustomFieldSelectOptionID` is: `"gid://gitlab/Issuables::CustomFieldSelectOption/1"`.
"""
scalar IssuablesCustomFieldSelectOptionID

"""Fields to perform the search in"""
enum IssuableSearchableField {
  """Search in title field."""
  TITLE

  """Search in description field."""
  DESCRIPTION
}

"""Incident severity"""
enum IssuableSeverity {
  """Unknown severity"""
  UNKNOWN

  """Low severity"""
  LOW

  """Medium severity"""
  MEDIUM

  """High severity"""
  HIGH

  """Critical severity"""
  CRITICAL
}

"""State of a GitLab issue or merge request"""
enum IssuableState {
  """In open state."""
  opened

  """In closed state."""
  closed

  """Discussion has been locked."""
  locked

  """All available."""
  all
}

type Issue implements CurrentUserTodos & NoteableInterface & Todoable {
  """
  Alert associated to the issue. Deprecated in GitLab 15.6: Use `alert_management_alerts`.
  """
  alertManagementAlert: AlertManagementAlert @deprecated(reason: "Use `alert_management_alerts`. Deprecated in GitLab 15.6.")

  """Alert Management alerts associated to this issue."""
  alertManagementAlerts(
    """IID of the alert. For example, "1"."""
    iid: String

    """Alerts with the specified statues. For example, `[TRIGGERED]`."""
    statuses: [AlertManagementStatus!]

    """Sort alerts by the criteria."""
    sort: AlertManagementAlertSort

    """Filter query for given domain."""
    domain: AlertManagementDomainFilter! = operations

    """Search query for title, description, service, or monitoring_tool."""
    search: String

    """Username of a user assigned to the issue."""
    assigneeUsername: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementAlertConnection

  """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
  ): UserCoreConnection

  """User that created the issue."""
  author: UserCore!

  """Indicates the issue is blocked."""
  blocked: Boolean!

  """Count of issues blocking the issue."""
  blockedByCount: Int

  """Issues blocking the issue."""
  blockedByIssues(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssueConnection

  """Count of issues the issue is blocking."""
  blockingCount: Int!

  """Issue the issue was closed as a duplicate of."""
  closedAsDuplicateOf: Issue

  """Timestamp of when the issue was closed."""
  closedAt: Time

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Indicates the issue is confidential."""
  confidential: Boolean!

  """User specific email address for the issue."""
  createNoteEmail: String

  """Timestamp of when the issue was created."""
  createdAt: Time!

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """Customer relations contacts of the issue."""
  customerRelationsContacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomerRelationsContactConnection

  """Description of the issue."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Collection of design images associated with the issue."""
  designCollection: DesignCollection

  """Indicates discussion is locked on the issue."""
  discussionLocked: Boolean!

  """All discussions on the 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

  """
  Indicates if the parent project or group has email notifications disabled:
  `true` if email notifications are disabled. Deprecated in GitLab 16.3: Use
  `emails_enabled`.
  """
  emailsDisabled: Boolean! @deprecated(reason: "Use `emails_enabled`. Deprecated in GitLab 16.3.")

  """
  Indicates if the parent project or group has email notifications disabled: `false` if email notifications are disabled.
  """
  emailsEnabled: Boolean!

  """
  Epic to which the issue belongs. Deprecated in GitLab 17.5: Replaced by WorkItem type.
  """
  epic: Epic @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """
  Escalation policy associated with the issue. Available for issues which support escalation.
  """
  escalationPolicy: EscalationPolicyType

  """Escalation status of the issue."""
  escalationStatus: IssueEscalationStatus

  """
  Email address of non-GitLab user reporting the issue. For guests, the email address is obfuscated.
  """
  externalAuthor: String

  """
  Indicates if the issue belongs to an epic.
              Can return true and not show an associated epic when the user has no access to the epic.
  """
  hasEpic: Boolean!

  """
  Indicates if the issue has a parent work item. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  hasParent: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Current health status."""
  healthStatus: HealthStatus

  """Indicates the issue is hidden because the author has been banned."""
  hidden: Boolean

  """Human-readable time estimate of the issue."""
  humanTimeEstimate: String

  """Human-readable total time reported as spent on the issue."""
  humanTotalTimeSpent: String

  """ID of the issue."""
  id: ID!

  """Internal ID of the issue."""
  iid: String!

  """Issuable resource links of the incident issue."""
  issuableResourceLinks(
    """ID of the incident."""
    incidentId: IssueID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssuableResourceLinkConnection

  """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

  """
  Work items linked to the issue. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  linkedWorkItems(
    """
    Filter by link type. Supported values: RELATED, BLOCKED_BY, and BLOCKS. Returns all types if omitted.
    """
    filter: WorkItemRelatedLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LinkedWorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """Number of merge requests that close the issue on merge."""
  mergeRequestsCount: Int!

  """Metric images associated to the issue."""
  metricImages: [MetricImage!]

  """Milestone of the issue."""
  milestone: Milestone

  """Indicates if issue got moved from other project."""
  moved: Boolean

  """Updated Issue after it got moved to another project."""
  movedTo: Issue

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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
  ): UserCoreConnection

  """ID of the issue project."""
  projectId: Int

  """
  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!

  """
  Merge requests related to the issue. This field can only be resolved for one issue in any single request.
  """
  relatedMergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Related vulnerabilities of the issue."""
  relatedVulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityConnection

  """
  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!

  """
  Status of the issue. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  status: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """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!

  """Timelogs on the issue."""
  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

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): TimelogConnection!

  """Title of the issue."""
  title: String!

  """HTML rendering of `title`"""
  titleHtml: String

  """Total time (in seconds) reported as spent on the issue."""
  totalTimeSpent: Int!

  """Type of the issue."""
  type: IssueType

  """Timestamp of when the issue was last updated."""
  updatedAt: Time!

  """User that last updated the issue."""
  updatedBy: UserCore

  """Number of upvotes the issue has received."""
  upvotes: Int!

  """Number of user discussions in the issue."""
  userDiscussionsCount: 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

  """Type assigned to the issue."""
  workItemType: WorkItemType!
}

"""The connection type for Issue."""
type IssueConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [IssueEdge]

  """A list of nodes."""
  nodes: [Issue]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """Total weight of issues collection."""
  weight: Int!
}

"""Iteration ID wildcard values for issue creation"""
enum IssueCreationIterationWildcardId {
  """Current iteration."""
  CURRENT
}

"""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
}

"""Issue escalation status values"""
enum IssueEscalationStatus {
  """Investigation has not started."""
  TRIGGERED

  """Someone is actively investigating the problem."""
  ACKNOWLEDGED

  """The problem has been addressed."""
  RESOLVED

  """No action will be taken."""
  IGNORED
}

"""
A `IssueID` is a global ID. It is encoded as a string.

An example `IssueID` is: `"gid://gitlab/Issue/1"`.
"""
scalar IssueID

"""Autogenerated input type of IssueLinkAlerts"""
input IssueLinkAlertsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Alerts references to be linked to the incident."""
  alertReferences: [String!]!
}

"""Autogenerated return type of IssueLinkAlerts."""
type IssueLinkAlertsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueMove"""
input IssueMoveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Project to move the issue to."""
  targetProjectPath: ID!

  """
  Work item type to use in the target project. When omitted, the source work item type is preserved.
  """
  targetWorkItemTypeId: WorkItemsTypeID
}

"""Autogenerated input type of IssueMoveList"""
input IssueMoveListInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the board that the issue is in."""
  boardId: BoardID!

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """ID of the board list that the issue will be moved from."""
  fromListId: ID

  """ID of the board list that the issue will be moved to."""
  toListId: ID

  """ID of issue that should be placed before the current issue."""
  moveBeforeId: ID

  """ID of issue that should be placed after the current issue."""
  moveAfterId: ID

  """
  Position of issue within the board list. Positions start at 0. Use -1 to move to the end of the list.
  """
  positionInList: Int

  """
  ID of the parent epic. NULL when removing the association. Deprecated in
  GitLab 17.5: This will be replaced by WorkItem hierarchyWidget.
  """
  epicId: EpicID
}

"""Autogenerated return type of IssueMoveList."""
type IssueMoveListPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated return type of IssueMove."""
type IssueMovePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Check permissions for the current user on a issue"""
type IssuePermissions {
  """If `true`, the user can perform `admin_issue` on this resource"""
  adminIssue: Boolean!

  """
  If `true`, the user can perform `admin_issue_relation` on this resource
  """
  adminIssueRelation: Boolean!

  """If `true`, the user can perform `clone_issue` on this resource"""
  cloneIssue: Boolean!

  """If `true`, the user can perform `create_design` on this resource"""
  createDesign: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """If `true`, the user can perform `destroy_design` on this resource"""
  destroyDesign: Boolean!

  """If `true`, the user can perform `move_design` on this resource"""
  moveDesign: Boolean!

  """If `true`, the user can perform `move_issue` on this resource"""
  moveIssue: Boolean!

  """If `true`, the user can perform `read_design` on this resource"""
  readDesign: Boolean!

  """If `true`, the user can perform `read_issue` on this resource"""
  readIssue: Boolean!

  """If `true`, the user can perform `reopen_issue` on this resource"""
  reopenIssue: Boolean!

  """If `true`, the user can perform `update_design` on this resource"""
  updateDesign: Boolean!

  """If `true`, the user can perform `update_issue` on this resource"""
  updateIssue: Boolean!
}

"""Autogenerated input type of IssueSetAssignees"""
input IssueSetAssigneesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """
  Usernames to assign to the resource. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

  """Operation to perform. Defaults to REPLACE."""
  operationMode: MutationOperationMode = REPLACE
}

"""Autogenerated return type of IssueSetAssignees."""
type IssueSetAssigneesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetConfidential"""
input IssueSetConfidentialInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Whether or not to set the issue as a confidential."""
  confidential: Boolean!
}

"""Autogenerated return type of IssueSetConfidential."""
type IssueSetConfidentialPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetCrmContacts"""
input IssueSetCrmContactsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """
  Customer relations contact IDs to set. Replaces existing contacts by default.
  """
  contactIds: [CustomerRelationsContactID!]!

  """Changes the operation mode. Defaults to REPLACE."""
  operationMode: MutationOperationMode
}

"""Autogenerated return type of IssueSetCrmContacts."""
type IssueSetCrmContactsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetDueDate"""
input IssueSetDueDateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Desired due date for the issue. Due date is removed if null."""
  dueDate: Time
}

"""Autogenerated return type of IssueSetDueDate."""
type IssueSetDueDatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEpic"""
input IssueSetEpicInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """
  Global ID of the epic to be assigned to the issue, epic will be removed if
  absent or set to null Deprecated in GitLab 17.5: This will be replaced by
  WorkItem hierarchyWidget.
  """
  epicId: EpicID
}

"""Autogenerated return type of IssueSetEpic."""
type IssueSetEpicPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEscalationPolicy"""
input IssueSetEscalationPolicyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """
  Global ID of the escalation policy to assign to the issue. Policy will be removed if absent or set to null.
  """
  escalationPolicyId: IncidentManagementEscalationPolicyID
}

"""Autogenerated return type of IssueSetEscalationPolicy."""
type IssueSetEscalationPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEscalationStatus"""
input IssueSetEscalationStatusInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Set the escalation status."""
  status: IssueEscalationStatus!
}

"""Autogenerated return type of IssueSetEscalationStatus."""
type IssueSetEscalationStatusPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetIteration"""
input IssueSetIterationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """
  Iteration to assign to the issue.
  
  """
  iterationId: IterationID
}

"""Autogenerated return type of IssueSetIteration."""
type IssueSetIterationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetLocked"""
input IssueSetLockedInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Whether or not to lock discussion on the issue."""
  locked: Boolean!
}

"""Autogenerated return type of IssueSetLocked."""
type IssueSetLockedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetSeverity"""
input IssueSetSeverityInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """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 the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetSubscription"""
input IssueSetSubscriptionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Desired state of the subscription."""
  subscribedState: Boolean!

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!
}

"""Autogenerated return type of IssueSetSubscription."""
type IssueSetSubscriptionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetWeight"""
input IssueSetWeightInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """The desired weight for the issue. If set to null, weight is removed."""
  weight: Int
}

"""Autogenerated return type of IssueSetWeight."""
type IssueSetWeightPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Values for sorting issues"""
enum IssueSort {
  """Due date by ascending order."""
  DUE_DATE_ASC

  """Due date by descending order."""
  DUE_DATE_DESC

  """Relative position by ascending order."""
  RELATIVE_POSITION_ASC

  """Severity from less critical to more critical."""
  SEVERITY_ASC

  """Severity from more critical to less critical."""
  SEVERITY_DESC

  """Title by ascending order."""
  TITLE_ASC

  """Title by descending order."""
  TITLE_DESC

  """Number of upvotes (awarded "thumbs up" emoji) by ascending order."""
  POPULARITY_ASC

  """Number of upvotes (awarded "thumbs up" emoji) by descending order."""
  POPULARITY_DESC

  """Status from triggered to resolved."""
  ESCALATION_STATUS_ASC

  """Status from resolved to triggered."""
  ESCALATION_STATUS_DESC

  """Closed time by ascending order."""
  CLOSED_AT_ASC

  """Closed time by descending order."""
  CLOSED_AT_DESC

  """Weight by ascending order."""
  WEIGHT_ASC

  """Weight by descending order."""
  WEIGHT_DESC

  """Published issues shown last."""
  PUBLISHED_ASC

  """Published issues shown first."""
  PUBLISHED_DESC

  """Issues with earliest SLA due time shown first."""
  SLA_DUE_AT_ASC

  """Issues with latest SLA due time shown first."""
  SLA_DUE_AT_DESC

  """Blocking issues count by ascending order."""
  BLOCKING_ISSUES_ASC

  """Blocking issues count by descending order."""
  BLOCKING_ISSUES_DESC

  """Issues with healthy issues first."""
  HEALTH_STATUS_ASC

  """Issues with unhealthy issues first."""
  HEALTH_STATUS_DESC

  """
  Status by ascending order. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  STATUS_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Status by descending order. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  STATUS_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Priority by ascending order."""
  PRIORITY_ASC

  """Priority by descending order."""
  PRIORITY_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

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""State of a GitLab issue"""
enum IssueState {
  """In open state."""
  opened

  """In closed state."""
  closed

  """Discussion has been locked."""
  locked

  """All available."""
  all
}

"""Values for issue state events"""
enum IssueStateEvent {
  """Reopens the issue."""
  REOPEN

  """Closes the issue."""
  CLOSE
}

"""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 {
  """Issue issue type"""
  ISSUE

  """Incident issue type"""
  INCIDENT

  """Test Case issue type"""
  TEST_CASE

  """Requirement issue type"""
  REQUIREMENT

  """Task issue type"""
  TASK

  """Ticket issue type"""
  TICKET

  """
  Objective issue type. Available only when feature flag `okrs_mvc` is enabled.
  Introduced in GitLab 15.6: **Status**: Experiment.
  """
  OBJECTIVE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")

  """
  Key Result issue type. Available only when feature flag `okrs_mvc` is enabled.
  Introduced in GitLab 15.7: **Status**: Experiment.
  """
  KEY_RESULT @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.")

  """
  Epic issue type. Available only when feature epics is available. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  EPIC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
}

"""Autogenerated input type of IssueUnlinkAlert"""
input IssueUnlinkAlertInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Global ID of the alert to unlink from the incident."""
  alertId: AlertManagementAlertID!
}

"""Autogenerated return type of IssueUnlinkAlert."""
type IssueUnlinkAlertPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

input ItemConsumerTargetInput {
  """Group in which to configure the item."""
  groupId: GroupID

  """Project in which to configure the item."""
  projectId: ProjectID
}

"""Represents an iteration object"""
type Iteration implements TimeboxReportInterface {
  """Timestamp of iteration creation."""
  createdAt: Time!

  """Description of the iteration."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Timestamp of the iteration due date."""
  dueDate: Time

  """Group of the iteration."""
  group: Group!

  """ID of the iteration."""
  id: ID!

  """Internal ID of the iteration."""
  iid: String!

  """Cadence of the iteration."""
  iterationCadence: IterationCadence!

  """Historically accurate report about the timebox."""
  report(
    """
    Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`.
    """
    fullPath: String
  ): TimeboxReport

  """
  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

  """
  Sequence number for the iteration when you sort the containing cadence's
  iterations by the start and end date. The earliest starting and ending
  iteration is assigned 1.
  """
  sequence: Int!

  """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!
}

"""Represents an iteration cadence"""
type IterationCadence {
  """Whether the iteration cadence is active."""
  active: Boolean

  """
  Whether the iteration cadence should automatically generate upcoming iterations.
  """
  automatic: Boolean

  """
  Description of the iteration cadence. Maximum length is 5000 characters.
  """
  description: String

  """Duration in weeks of the iterations within the cadence."""
  durationInWeeks: Int

  """Global ID of the iteration cadence."""
  id: IterationsCadenceID!

  """
  Number of future iterations to schedule in addition to the current one.
  """
  iterationsInAdvance: Int

  """
  Whether the iteration cadence should roll over issues to the next iteration or not.
  """
  rollOver: Boolean!

  """Timestamp of the automation start date."""
  startDate: Time

  """Title of the iteration cadence."""
  title: String!
}

"""The connection type for IterationCadence."""
type IterationCadenceConnection {
  """A list of edges."""
  edges: [IterationCadenceEdge]

  """A list of nodes."""
  nodes: [IterationCadence]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of IterationCadenceCreate"""
input IterationCadenceCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group where the iteration cadence is created."""
  groupPath: ID!

  """Title of the iteration cadence."""
  title: String

  """Duration in weeks of the iterations within the cadence."""
  durationInWeeks: Int

  """
  Number of future iterations to schedule in addition to the current one.
  """
  iterationsInAdvance: Int

  """Timestamp of the automation start date."""
  startDate: Time

  """
  Whether the iteration cadence should automatically generate upcoming iterations.
  """
  automatic: Boolean!

  """Whether the iteration cadence is active."""
  active: Boolean!

  """
  Whether the iteration cadence should roll over issues to the next iteration or not.
  """
  rollOver: Boolean

  """
  Description of the iteration cadence. Maximum length is 5000 characters.
  """
  description: String
}

"""Autogenerated return type of IterationCadenceCreate."""
type IterationCadenceCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created iteration cadence."""
  iterationCadence: IterationCadence
}

"""Autogenerated input type of IterationCadenceDestroy"""
input IterationCadenceDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the iteration cadence."""
  id: IterationsCadenceID!
}

"""Autogenerated return type of IterationCadenceDestroy."""
type IterationCadenceDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group the iteration cadence belongs to."""
  group: Group!
}

"""An edge in a connection."""
type IterationCadenceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: IterationCadence
}

"""Autogenerated input type of IterationCadenceUpdate"""
input IterationCadenceUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the iteration cadence."""
  id: IterationsCadenceID!

  """Title of the iteration cadence."""
  title: String

  """Duration in weeks of the iterations within the cadence."""
  durationInWeeks: Int

  """
  Number of future iterations to schedule in addition to the current one.
  """
  iterationsInAdvance: Int

  """Timestamp of the automation start date."""
  startDate: Time

  """
  Whether the iteration cadence should automatically generate upcoming iterations.
  """
  automatic: Boolean

  """Whether the iteration cadence is active."""
  active: Boolean

  """
  Whether the iteration cadence should roll over issues to the next iteration or not.
  """
  rollOver: Boolean

  """
  Description of the iteration cadence. Maximum length is 5000 characters.
  """
  description: String
}

"""Autogenerated return type of IterationCadenceUpdate."""
type IterationCadenceUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated iteration cadence."""
  iterationCadence: IterationCadence
}

"""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!
}

"""Autogenerated input type of iterationCreate"""
input iterationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """
  Global ID of the iteration cadence to be assigned to the new iteration.
  """
  iterationsCadenceId: IterationsCadenceID

  """Title of the iteration."""
  title: String

  """Description of the iteration."""
  description: String

  """Start date of the iteration."""
  startDate: String

  """End date of the iteration."""
  dueDate: String
}

"""Autogenerated return type of iterationCreate."""
type iterationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created iteration."""
  iteration: Iteration
}

"""Autogenerated input type of IterationDelete"""
input IterationDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the iteration."""
  id: IterationID!
}

"""Autogenerated return type of IterationDelete."""
type IterationDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group the iteration belongs to."""
  group: Group!
}

"""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
}

"""
A `IterationID` is a global ID. It is encoded as a string.

An example `IterationID` is: `"gid://gitlab/Iteration/1"`.
The older format `"gid://gitlab/EEIteration/1"` was deprecated in 13.3.
"""
scalar IterationID

"""
A `IterationsCadenceID` is a global ID. It is encoded as a string.

An example `IterationsCadenceID` is: `"gid://gitlab/Iterations::Cadence/1"`.
"""
scalar IterationsCadenceID

"""Fields to perform the search in"""
enum IterationSearchableField {
  """Search in title field."""
  TITLE

  """Search in cadence_title field."""
  CADENCE_TITLE
}

"""Iteration sort values"""
enum IterationSort {
  """Sort by cadence id in ascending and due date in ascending order."""
  CADENCE_AND_DUE_DATE_ASC

  """Sort by cadence id in ascending and due date in descending order."""
  CADENCE_AND_DUE_DATE_DESC
}

"""State of a GitLab iteration"""
enum IterationState {
  """Upcoming iteration."""
  upcoming

  """Current iteration."""
  current

  """Open iteration."""
  opened

  """Closed iteration."""
  closed

  """Any iteration."""
  all
}

"""Iteration ID wildcard values"""
enum IterationWildcardId {
  """No iteration is assigned."""
  NONE

  """An iteration is assigned."""
  ANY

  """Current iteration."""
  CURRENT
}

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: UserCore

  """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. Deprecated in GitLab 17.4: Argument is not used.
  """
  jiraProjectName: String

  """Project to import the Jira project into."""
  projectPath: ID!

  """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 the mutation."""
  errors: [String!]!

  """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

  """Project to import the Jira users into."""
  projectPath: ID!

  """
  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 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(
    """Project name or key."""
    name: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): JiraProjectConnection

  """Type of the service."""
  serviceType: ServiceType

  """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!
}

enum JobArtifactFileType {
  """ARCHIVE job artifact file type."""
  ARCHIVE

  """METADATA job artifact file type."""
  METADATA

  """TRACE job artifact file type."""
  TRACE

  """JUNIT job artifact file type."""
  JUNIT

  """METRICS job artifact file type."""
  METRICS

  """METRICS REFEREE job artifact file type."""
  METRICS_REFEREE

  """NETWORK REFEREE job artifact file type."""
  NETWORK_REFEREE

  """DOTENV job artifact file type."""
  DOTENV

  """COBERTURA job artifact file type."""
  COBERTURA

  """JACOCO job artifact file type."""
  JACOCO

  """CLUSTER APPLICATIONS job artifact file type."""
  CLUSTER_APPLICATIONS

  """LSIF job artifact file type."""
  LSIF

  """CYCLONEDX job artifact file type."""
  CYCLONEDX

  """ANNOTATIONS job artifact file type."""
  ANNOTATIONS

  """REPOSITORY XRAY job artifact file type."""
  REPOSITORY_XRAY

  """SAST job artifact file type."""
  SAST

  """SECRET DETECTION job artifact file type."""
  SECRET_DETECTION

  """DEPENDENCY SCANNING job artifact file type."""
  DEPENDENCY_SCANNING

  """CONTAINER SCANNING job artifact file type."""
  CONTAINER_SCANNING

  """CLUSTER IMAGE SCANNING job artifact file type."""
  CLUSTER_IMAGE_SCANNING

  """DAST job artifact file type."""
  DAST

  """LICENSE SCANNING job artifact file type."""
  LICENSE_SCANNING

  """ACCESSIBILITY job artifact file type."""
  ACCESSIBILITY

  """CODE QUALITY job artifact file type."""
  CODEQUALITY

  """PERFORMANCE job artifact file type."""
  PERFORMANCE

  """BROWSER PERFORMANCE job artifact file type."""
  BROWSER_PERFORMANCE

  """LOAD PERFORMANCE job artifact file type."""
  LOAD_PERFORMANCE

  """TERRAFORM job artifact file type."""
  TERRAFORM

  """REQUIREMENTS job artifact file type."""
  REQUIREMENTS

  """REQUIREMENTS V2 job artifact file type."""
  REQUIREMENTS_V2

  """COVERAGE FUZZING job artifact file type."""
  COVERAGE_FUZZING

  """API FUZZING job artifact file type."""
  API_FUZZING

  """SARIF job artifact file type."""
  SARIF
}

"""
Represents the Geo replication and verification state of a job_artifact.
"""
type JobArtifactRegistry {
  """ID of the Job Artifact."""
  artifactId: ID!

  """
  Indicate if the checksums of the JobArtifactRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the JobArtifactRegistry was created"""
  createdAt: Time

  """Path to the data management view for this JobArtifactRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the JobArtifactRegistry"""
  id: ID!

  """Error message during sync of the JobArtifactRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the JobArtifactRegistry
  """
  lastSyncedAt: Time

  """Indicate if the JobArtifactRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the JobArtifactRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the JobArtifactRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the JobArtifactRegistry"""
  retryCount: Int

  """Sync state of the JobArtifactRegistry"""
  state: RegistryState

  """The local checksum of the JobArtifactRegistry"""
  verificationChecksum: String

  """The expected checksum of the JobArtifactRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the JobArtifactRegistry"""
  verificationFailure: String

  """Timestamp after which the JobArtifactRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the JobArtifactRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of JobArtifactRegistry started"""
  verificationStartedAt: Time

  """Verification state of the JobArtifactRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the JobArtifactRegistry
  """
  verifiedAt: Time
}

"""The connection type for JobArtifactRegistry."""
type JobArtifactRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [JobArtifactRegistryEdge]

  """A list of nodes."""
  nodes: [JobArtifactRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type JobArtifactRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: JobArtifactRegistry
}

"""Autogenerated input type of JobArtifactsDestroy"""
input JobArtifactsDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the job to mutate."""
  id: CiBuildID!
}

"""Autogenerated return type of JobArtifactsDestroy."""
type JobArtifactsDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Number of artifacts deleted."""
  destroyedArtifactsCount: Int!

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Job with artifacts to be deleted."""
  job: CiJob
}

"""Autogenerated input type of JobCancel"""
input JobCancelInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the job to mutate."""
  id: CiBuildID!
}

"""Autogenerated return type of JobCancel."""
type JobCancelPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Job after the mutation."""
  job: CiJob
}

"""
A `CommitStatusID` is a global ID. It is encoded as a string.

An example `CommitStatusID` is: `"gid://gitlab/CommitStatus/1"`.
"""
scalar JobID

union JobNeedUnion = CiBuildNeed | CiJob

"""The connection type for JobNeedUnion."""
type JobNeedUnionConnection {
  """A list of edges."""
  edges: [JobNeedUnionEdge]

  """A list of nodes."""
  nodes: [JobNeedUnion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type JobNeedUnionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: JobNeedUnion
}

type JobPermissions {
  """If `true`, the user can perform `cancel_build` on this resource"""
  cancelBuild: Boolean!

  """If `true`, the user can perform `read_build` on this resource"""
  readBuild: Boolean!

  """If `true`, the user can perform `read_job_artifacts` on this resource"""
  readJobArtifacts: Boolean!

  """If `true`, the user can perform `update_build` on this resource"""
  updateBuild: Boolean!
}

"""Autogenerated input type of JobPlay"""
input JobPlayInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the job to mutate."""
  id: CiProcessableID!

  """Variables to use when playing a manual job."""
  variables: [CiVariableInput!] = []

  """Inputs to use when playing the job."""
  inputs: [CiInputsInput!] = []
}

"""Autogenerated return type of JobPlay."""
type JobPlayPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Job after the mutation."""
  job: CiJob
}

"""Autogenerated input type of JobRetry"""
input JobRetryInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the job to mutate."""
  id: CiProcessableID!

  """Variables to use when retrying a manual job."""
  variables: [CiVariableInput!] = []

  """Inputs to use when retrying the job."""
  inputs: [CiInputsInput!] = []
}

"""Autogenerated return type of JobRetry."""
type JobRetryPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Job after the mutation."""
  job: CiJob
}

"""Autogenerated input type of JobUnschedule"""
input JobUnscheduleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the job to mutate."""
  id: CiBuildID!
}

"""Autogenerated return type of JobUnschedule."""
type JobUnschedulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Job after the mutation."""
  job: CiJob
}

"""Represents untyped JSON"""
scalar JSON

"""JSON object as raw string"""
scalar JsonString

type Kas {
  """Indicates whether GitLab Relay (KAS) is enabled."""
  enabled: Boolean!

  """
  URL used by the Kubernetes tooling to communicate with the KAS Kubernetes API proxy.
  """
  externalK8sProxyUrl: String

  """URL used by the agents to communicate with the server."""
  externalUrl: String

  """KAS version."""
  version: String
}

"""Represents an SSH key."""
type Key implements Todoable {
  """Timestamp of when the key was created."""
  createdAt: Time!

  """Timestamp of when the key expires. It's null if it never expires."""
  expiresAt: Time!

  """ID of the key."""
  id: ID!

  """Public key of the key pair."""
  key: String!

  """Name or title of the object."""
  name: String

  """Title of the key."""
  title: String!

  """URL of the object."""
  webUrl: String
}

"""Annotation to apply to associated Kubernetes objects of a workspace."""
type KubernetesAnnotation {
  """Key of the annotation."""
  key: String!

  """Value of the annotation."""
  value: String!
}

"""Label to apply to associated Kubernetes objects of a workspace."""
type KubernetesLabel {
  """Key of the label."""
  key: String!

  """Value of the label."""
  value: String!
}

type Label implements LabelInterface {
  """Indicates the label is archived."""
  archived: Boolean!

  """Background color of the label."""
  color: String!

  """When the label was created."""
  createdAt: Time!

  """Description of the label (Markdown rendered as HTML for caching)."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Global ID of the label."""
  id: LabelID!

  """
  Indicates this label is locked for merge requests that have been merged.
  """
  lockOnMerge: Boolean!

  """Text color of the label."""
  textColor: String!

  """Content of the label."""
  title: String!

  """When the label was last updated."""
  updatedAt: Time!
}

"""The connection type for Label."""
type LabelConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [LabelEdge]

  """A list of nodes."""
  nodes: [Label]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of LabelCreate"""
input LabelCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """Title of the label."""
  title: String!

  """Description of the label."""
  description: String

  """
  The color of the label given in 6-digit hex notation with leading '#' sign
  (for example, `#FFAABB`) or one of the CSS color names.
  
  """
  color: String = "#6699cc"
}

"""Autogenerated return type of LabelCreate."""
type LabelCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Label after mutation."""
  label: Label
}

"""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
}

"""
A `LabelID` is a global ID. It is encoded as a string.

An example `LabelID` is: `"gid://gitlab/Label/1"`.
"""
scalar LabelID

interface LabelInterface {
  """Background color of the label."""
  color: String!

  """When the label was created."""
  createdAt: Time!

  """Description of the label (Markdown rendered as HTML for caching)."""
  description: String

  """Text color of the label."""
  textColor: String!

  """Content of the label."""
  title: String!

  """When the label was last updated."""
  updatedAt: Time!
}

"""List of fields where the provided searchTerm should be looked up"""
enum LabelSearchFieldList {
  """Search in the label title."""
  TITLE

  """Search in the label description."""
  DESCRIPTION
}

"""Autogenerated input type of LabelUpdate"""
input LabelUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the label to update."""
  id: LabelID!

  """Whether to archive the label. Introduced in GitLab 18.10."""
  archived: Boolean
}

"""Autogenerated return type of LabelUpdate."""
type LabelUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Label after mutation."""
  label: Label
}

"""Represents an instance-level LDAP link."""
type LdapAdminRoleLink {
  """Custom admin member role."""
  adminMemberRole: AdminMemberRole!

  """Common Name (CN) of the LDAP group."""
  cn: String

  """Timestamp of when the role link was created."""
  createdAt: Time!

  """Search filter for the LDAP group."""
  filter: String

  """ID of the LDAP link."""
  id: ID!

  """Timestamp of the last successful sync."""
  lastSuccessfulSyncAt: Time

  """LDAP provider for the LDAP link."""
  provider: LdapProvider!

  """Timestamp of when the last sync ended."""
  syncEndedAt: Time

  """Error message if the sync has failed."""
  syncError: String

  """Timestamp of when the last sync started."""
  syncStartedAt: Time

  """Status of the last sync."""
  syncStatus: LdapAdminRoleSyncStatus
}

"""The connection type for LdapAdminRoleLink."""
type LdapAdminRoleLinkConnection {
  """A list of edges."""
  edges: [LdapAdminRoleLinkEdge]

  """A list of nodes."""
  nodes: [LdapAdminRoleLink]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of LdapAdminRoleLinkCreate"""
input LdapAdminRoleLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the custom admin role to be assigned to a user."""
  adminMemberRoleId: MemberRoleID!

  """LDAP provider for the LDAP link."""
  provider: String!

  """Common Name (CN) of the LDAP group."""
  cn: String

  """Search filter for the LDAP group."""
  filter: String
}

"""Autogenerated return type of LdapAdminRoleLinkCreate."""
type LdapAdminRoleLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created instance-level LDAP link."""
  ldapAdminRoleLink: LdapAdminRoleLink
}

"""Autogenerated input type of LdapAdminRoleLinkDestroy"""
input LdapAdminRoleLinkDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the instance-level LDAP link to delete."""
  id: AuthzLdapAdminRoleLinkID!
}

"""Autogenerated return type of LdapAdminRoleLinkDestroy."""
type LdapAdminRoleLinkDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted instance-level LDAP link."""
  ldapAdminRoleLink: LdapAdminRoleLink
}

"""An edge in a connection."""
type LdapAdminRoleLinkEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: LdapAdminRoleLink
}

"""All LDAP admin role sync statuses."""
enum LdapAdminRoleSyncStatus {
  """A sync that is never synced."""
  NEVER_SYNCED

  """A sync that is queued."""
  QUEUED

  """A sync that is running."""
  RUNNING

  """A sync that is failed."""
  FAILED

  """A sync that is successful."""
  SUCCESSFUL
}

"""Represents a LDAP provider."""
type LdapProvider {
  """ID of the LDAP provider."""
  id: String

  """Display name of the LDAP provider."""
  label: String
}

"""Represents the Geo sync and verification state of an LFS object"""
type LfsObjectRegistry {
  """
  Indicate if the checksums of the LfsObjectRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the LfsObjectRegistry was created"""
  createdAt: Time

  """Path to the data management view for this LfsObjectRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the LfsObjectRegistry"""
  id: ID!

  """Error message during sync of the LfsObjectRegistry"""
  lastSyncFailure: String

  """Timestamp of the most recent successful sync of the LfsObjectRegistry"""
  lastSyncedAt: Time

  """ID of the LFS object."""
  lfsObjectId: ID!

  """Indicate if the LfsObjectRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the LfsObjectRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the LfsObjectRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the LfsObjectRegistry"""
  retryCount: Int

  """Sync state of the LfsObjectRegistry"""
  state: RegistryState

  """The local checksum of the LfsObjectRegistry"""
  verificationChecksum: String

  """The expected checksum of the LfsObjectRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the LfsObjectRegistry"""
  verificationFailure: String

  """Timestamp after which the LfsObjectRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the LfsObjectRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of LfsObjectRegistry started"""
  verificationStartedAt: Time

  """Verification state of the LfsObjectRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the LfsObjectRegistry
  """
  verifiedAt: Time
}

"""The connection type for LfsObjectRegistry."""
type LfsObjectRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [LfsObjectRegistryEdge]

  """A list of nodes."""
  nodes: [LfsObjectRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type LfsObjectRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: LfsObjectRegistry
}

type License {
  """Name of the license."""
  name: String!

  """Policy dismissals associated with the license for the dependency."""
  policyViolations: [PolicyDismissal!]

  """Name of the SPDX identifier."""
  spdxIdentifier: String

  """License URL in relation to SPDX."""
  url: String
}

"""
Licensed features that can be checked for availability on a namespace or project.
"""
enum LicensedFeature {
  """Audit events feature."""
  AUDIT_EVENTS

  """Blocked issues feature."""
  BLOCKED_ISSUES

  """Blocked work items feature."""
  BLOCKED_WORK_ITEMS

  """Board iteration lists feature."""
  BOARD_ITERATION_LISTS

  """Code owners feature."""
  CODE_OWNERS

  """Code review analytics feature."""
  CODE_REVIEW_ANALYTICS

  """Full codequality report feature."""
  FULL_CODEQUALITY_REPORT

  """Group activity analytics feature."""
  GROUP_ACTIVITY_ANALYTICS

  """Group bulk edit feature."""
  GROUP_BULK_EDIT

  """Issuable default templates feature."""
  ISSUABLE_DEFAULT_TEMPLATES

  """Issue weights feature."""
  ISSUE_WEIGHTS

  """Iterations feature."""
  ITERATIONS

  """Merge request approvers feature."""
  MERGE_REQUEST_APPROVERS

  """Milestone charts feature."""
  MILESTONE_CHARTS

  """Multiple issue assignees feature."""
  MULTIPLE_ISSUE_ASSIGNEES

  """Multiple merge request assignees feature."""
  MULTIPLE_MERGE_REQUEST_ASSIGNEES

  """Multiple merge request reviewers feature."""
  MULTIPLE_MERGE_REQUEST_REVIEWERS

  """Project merge request analytics feature."""
  PROJECT_MERGE_REQUEST_ANALYTICS

  """Protected refs for users feature."""
  PROTECTED_REFS_FOR_USERS

  """Push rules feature."""
  PUSH_RULES

  """Resource access token feature."""
  RESOURCE_ACCESS_TOKEN

  """Wip limits feature."""
  WIP_LIMITS

  """Seat control feature."""
  SEAT_CONTROL

  """Group usage billing feature."""
  GROUP_USAGE_BILLING

  """Description diffs feature."""
  DESCRIPTION_DIFFS

  """Send emails from admin area feature."""
  SEND_EMAILS_FROM_ADMIN_AREA

  """Maintenance mode feature."""
  MAINTENANCE_MODE

  """Scoped issue board feature."""
  SCOPED_ISSUE_BOARD

  """Contribution analytics feature."""
  CONTRIBUTION_ANALYTICS

  """Group webhooks feature."""
  GROUP_WEBHOOKS

  """Member lock feature."""
  MEMBER_LOCK

  """Repository mirrors feature."""
  REPOSITORY_MIRRORS

  """Ai chat feature."""
  AI_CHAT

  """Ai catalog feature."""
  AI_CATALOG

  """Ai workflows feature."""
  AI_WORKFLOWS

  """Ai analytics feature."""
  AI_ANALYTICS

  """Agent managed resources feature."""
  AGENT_MANAGED_RESOURCES

  """Agentic chat feature."""
  AGENTIC_CHAT

  """Allow personal snippets feature."""
  ALLOW_PERSONAL_SNIPPETS

  """Blocking merge requests feature."""
  BLOCKING_MERGE_REQUESTS

  """Board assignee lists feature."""
  BOARD_ASSIGNEE_LISTS

  """Board milestone lists feature."""
  BOARD_MILESTONE_LISTS

  """Ci job analytics for projects feature."""
  CI_JOB_ANALYTICS_FOR_PROJECTS

  """Ci pipeline cancellation restrictions feature."""
  CI_PIPELINE_CANCELLATION_RESTRICTIONS

  """Ci secrets management feature."""
  CI_SECRETS_MANAGEMENT

  """Cluster agents ci impersonation feature."""
  CLUSTER_AGENTS_CI_IMPERSONATION

  """Cluster agents user impersonation feature."""
  CLUSTER_AGENTS_USER_IMPERSONATION

  """Cluster deployments feature."""
  CLUSTER_DEPLOYMENTS

  """Code owner approval required feature."""
  CODE_OWNER_APPROVAL_REQUIRED

  """Code suggestions feature."""
  CODE_SUGGESTIONS

  """Commit committer check feature."""
  COMMIT_COMMITTER_CHECK

  """Commit committer name check feature."""
  COMMIT_COMMITTER_NAME_CHECK

  """Compliance framework feature."""
  COMPLIANCE_FRAMEWORK

  """Configurable work item types feature."""
  CONFIGURABLE_WORK_ITEM_TYPES

  """Container virtual registry feature."""
  CONTAINER_VIRTUAL_REGISTRY

  """Custom compliance frameworks feature."""
  CUSTOM_COMPLIANCE_FRAMEWORKS

  """Custom fields feature."""
  CUSTOM_FIELDS

  """Cycle analytics for groups feature."""
  CYCLE_ANALYTICS_FOR_GROUPS

  """Cycle analytics for projects feature."""
  CYCLE_ANALYTICS_FOR_PROJECTS

  """Default project deletion protection feature."""
  DEFAULT_PROJECT_DELETION_PROTECTION

  """Delete unconfirmed users feature."""
  DELETE_UNCONFIRMED_USERS

  """Dependency proxy for packages feature."""
  DEPENDENCY_PROXY_FOR_PACKAGES

  """Disable extensions marketplace for enterprise users feature."""
  DISABLE_EXTENSIONS_MARKETPLACE_FOR_ENTERPRISE_USERS

  """Disable name update for users feature."""
  DISABLE_NAME_UPDATE_FOR_USERS

  """Disable personal access tokens feature."""
  DISABLE_PERSONAL_ACCESS_TOKENS

  """Disable ssh keys feature."""
  DISABLE_SSH_KEYS

  """Domain verification feature."""
  DOMAIN_VERIFICATION

  """Epic colors feature."""
  EPIC_COLORS

  """Epics feature."""
  EPICS

  """Feature flags code references feature."""
  FEATURE_FLAGS_CODE_REFERENCES

  """File locks feature."""
  FILE_LOCKS

  """Generic alert fingerprinting feature."""
  GENERIC_ALERT_FINGERPRINTING

  """Git two factor enforcement feature."""
  GIT_TWO_FACTOR_ENFORCEMENT

  """Group allowed email domains feature."""
  GROUP_ALLOWED_EMAIL_DOMAINS

  """Group ci cd analytics pipelines feature."""
  GROUP_CI_CD_ANALYTICS_PIPELINES

  """Group coverage reports feature."""
  GROUP_COVERAGE_REPORTS

  """Group forking protection feature."""
  GROUP_FORKING_PROTECTION

  """Group level analytics dashboard feature."""
  GROUP_LEVEL_ANALYTICS_DASHBOARD

  """Group level compliance dashboard feature."""
  GROUP_LEVEL_COMPLIANCE_DASHBOARD

  """Group milestone project releases feature."""
  GROUP_MILESTONE_PROJECT_RELEASES

  """Group project templates feature."""
  GROUP_PROJECT_TEMPLATES

  """Group repository analytics feature."""
  GROUP_REPOSITORY_ANALYTICS

  """Group saml feature."""
  GROUP_SAML

  """Group scoped ci variables feature."""
  GROUP_SCOPED_CI_VARIABLES

  """Ide schema config feature."""
  IDE_SCHEMA_CONFIG

  """Incident metric upload feature."""
  INCIDENT_METRIC_UPLOAD

  """Increased saved views limit feature."""
  INCREASED_SAVED_VIEWS_LIMIT

  """Jira issues integration feature."""
  JIRA_ISSUES_INTEGRATION

  """Linked items epics feature."""
  LINKED_ITEMS_EPICS

  """Merge request performance metrics feature."""
  MERGE_REQUEST_PERFORMANCE_METRICS

  """Merge request title regex check feature."""
  MERGE_REQUEST_TITLE_REGEX_CHECK

  """Admin merge request approvers rules feature."""
  ADMIN_MERGE_REQUEST_APPROVERS_RULES

  """Merge trains feature."""
  MERGE_TRAINS

  """Metrics reports feature."""
  METRICS_REPORTS

  """Mcp server feature."""
  MCP_SERVER

  """Multiple alert http integrations feature."""
  MULTIPLE_ALERT_HTTP_INTEGRATIONS

  """Multiple approval rules feature."""
  MULTIPLE_APPROVAL_RULES

  """Multiple group issue boards feature."""
  MULTIPLE_GROUP_ISSUE_BOARDS

  """Microsoft group sync feature."""
  MICROSOFT_GROUP_SYNC

  """Operations dashboard feature."""
  OPERATIONS_DASHBOARD

  """Orbit feature."""
  ORBIT

  """Package forwarding feature."""
  PACKAGE_FORWARDING

  """Packages virtual registry feature."""
  PACKAGES_VIRTUAL_REGISTRY

  """Pages multiple versions feature."""
  PAGES_MULTIPLE_VERSIONS

  """Productivity analytics feature."""
  PRODUCTIVITY_ANALYTICS

  """Project level analytics dashboard feature."""
  PROJECT_LEVEL_ANALYTICS_DASHBOARD

  """Protected environments feature."""
  PROTECTED_ENVIRONMENTS

  """Reject non dco commits feature."""
  REJECT_NON_DCO_COMMITS

  """Reject unsigned commits feature."""
  REJECT_UNSIGNED_COMMITS

  """Related epics feature."""
  RELATED_EPICS

  """Remote development feature."""
  REMOTE_DEVELOPMENT

  """Saml group sync feature."""
  SAML_GROUP_SYNC

  """Semantic code search feature."""
  SEMANTIC_CODE_SEARCH

  """Scoped labels feature."""
  SCOPED_LABELS

  """Smartcard auth feature."""
  SMARTCARD_AUTH

  """Ssh certificates feature."""
  SSH_CERTIFICATES

  """Swimlanes feature."""
  SWIMLANES

  """Target branch rules feature."""
  TARGET_BRANCH_RULES

  """Troubleshoot job feature."""
  TROUBLESHOOT_JOB

  """Type of work analytics feature."""
  TYPE_OF_WORK_ANALYTICS

  """Minimal access role feature."""
  MINIMAL_ACCESS_ROLE

  """Unprotection restrictions feature."""
  UNPROTECTION_RESTRICTIONS

  """Ci project subscriptions feature."""
  CI_PROJECT_SUBSCRIPTIONS

  """Incident timeline view feature."""
  INCIDENT_TIMELINE_VIEW

  """Oncall schedules feature."""
  ONCALL_SCHEDULES

  """Escalation policies feature."""
  ESCALATION_POLICIES

  """Zentao issues integration feature."""
  ZENTAO_ISSUES_INTEGRATION

  """Coverage check approval rule feature."""
  COVERAGE_CHECK_APPROVAL_RULE

  """Issuable resource links feature."""
  ISSUABLE_RESOURCE_LINKS

  """Group protected branches feature."""
  GROUP_PROTECTED_BRANCHES

  """Group level merge checks setting feature."""
  GROUP_LEVEL_MERGE_CHECKS_SETTING

  """Oidc client groups claim feature."""
  OIDC_CLIENT_GROUPS_CLAIM

  """Disable deleting account for users feature."""
  DISABLE_DELETING_ACCOUNT_FOR_USERS

  """Group saved replies feature."""
  GROUP_SAVED_REPLIES

  """Requested changes block merge request feature."""
  REQUESTED_CHANGES_BLOCK_MERGE_REQUEST

  """Project saved replies feature."""
  PROJECT_SAVED_REPLIES

  """Default roles assignees feature."""
  DEFAULT_ROLES_ASSIGNEES

  """Ci component usages in projects feature."""
  CI_COMPONENT_USAGES_IN_PROJECTS

  """Ci cd catalog publish restriction feature."""
  CI_CD_CATALOG_PUBLISH_RESTRICTION

  """Branch rule squash options feature."""
  BRANCH_RULE_SQUASH_OPTIONS

  """Work item status feature."""
  WORK_ITEM_STATUS

  """Glab ask git command feature."""
  GLAB_ASK_GIT_COMMAND

  """Generate commit message feature."""
  GENERATE_COMMIT_MESSAGE

  """Summarize new merge request feature."""
  SUMMARIZE_NEW_MERGE_REQUEST

  """Summarize review feature."""
  SUMMARIZE_REVIEW

  """Generate description feature."""
  GENERATE_DESCRIPTION

  """Summarize comments feature."""
  SUMMARIZE_COMMENTS

  """Review merge request feature."""
  REVIEW_MERGE_REQUEST

  """Board status lists feature."""
  BOARD_STATUS_LISTS

  """Disable invite members feature."""
  DISABLE_INVITE_MEMBERS

  """Self hosted models feature."""
  SELF_HOSTED_MODELS

  """Native secrets management feature."""
  NATIVE_SECRETS_MANAGEMENT

  """Built in project templates enabled feature."""
  BUILT_IN_PROJECT_TEMPLATES_ENABLED

  """Group ip restriction feature."""
  GROUP_IP_RESTRICTION

  """Issues analytics feature."""
  ISSUES_ANALYTICS

  """Group wikis feature."""
  GROUP_WIKIS

  """Email additional text feature."""
  EMAIL_ADDITIONAL_TEXT

  """Custom file templates for namespace feature."""
  CUSTOM_FILE_TEMPLATES_FOR_NAMESPACE

  """Incident sla feature."""
  INCIDENT_SLA

  """Export user permissions feature."""
  EXPORT_USER_PERMISSIONS

  """Cross project pipelines feature."""
  CROSS_PROJECT_PIPELINES

  """Feature flags related issues feature."""
  FEATURE_FLAGS_RELATED_ISSUES

  """Merge pipelines feature."""
  MERGE_PIPELINES

  """Ci cd projects feature."""
  CI_CD_PROJECTS

  """Github integration feature."""
  GITHUB_INTEGRATION

  """Ai config chat feature."""
  AI_CONFIG_CHAT

  """Ai features feature."""
  AI_FEATURES

  """Api discovery feature."""
  API_DISCOVERY

  """Api fuzzing feature."""
  API_FUZZING

  """Auto rollback feature."""
  AUTO_ROLLBACK

  """Cluster receptive agents feature."""
  CLUSTER_RECEPTIVE_AGENTS

  """Cluster image scanning feature."""
  CLUSTER_IMAGE_SCANNING

  """External status checks feature."""
  EXTERNAL_STATUS_CHECKS

  """Ci runner controllers feature."""
  CI_RUNNER_CONTROLLERS

  """Compliance pipeline configuration feature."""
  COMPLIANCE_PIPELINE_CONFIGURATION

  """Container registry immutable tag rules feature."""
  CONTAINER_REGISTRY_IMMUTABLE_TAG_RULES

  """Container scanning feature."""
  CONTAINER_SCANNING

  """Credentials inventory feature."""
  CREDENTIALS_INVENTORY

  """Custom roles feature."""
  CUSTOM_ROLES

  """Dast feature."""
  DAST

  """Dependency scanning feature."""
  DEPENDENCY_SCANNING

  """Dependency firewall feature."""
  DEPENDENCY_FIREWALL

  """Dora4 analytics feature."""
  DORA4_ANALYTICS

  """Description composer feature."""
  DESCRIPTION_COMPOSER

  """Environment alerts feature."""
  ENVIRONMENT_ALERTS

  """Evaluate group level compliance pipeline feature."""
  EVALUATE_GROUP_LEVEL_COMPLIANCE_PIPELINE

  """Explain code feature."""
  EXPLAIN_CODE

  """External audit events feature."""
  EXTERNAL_AUDIT_EVENTS

  """Experimental features feature."""
  EXPERIMENTAL_FEATURES

  """Generate test file feature."""
  GENERATE_TEST_FILE

  """Group ci cd analytics releases feature."""
  GROUP_CI_CD_ANALYTICS_RELEASES

  """Group level compliance adherence report feature."""
  GROUP_LEVEL_COMPLIANCE_ADHERENCE_REPORT

  """Group level compliance violations report feature."""
  GROUP_LEVEL_COMPLIANCE_VIOLATIONS_REPORT

  """Project level compliance dashboard feature."""
  PROJECT_LEVEL_COMPLIANCE_DASHBOARD

  """Project level compliance adherence report feature."""
  PROJECT_LEVEL_COMPLIANCE_ADHERENCE_REPORT

  """Project level compliance violations report feature."""
  PROJECT_LEVEL_COMPLIANCE_VIOLATIONS_REPORT

  """Incident management feature."""
  INCIDENT_MANAGEMENT

  """Inline codequality feature."""
  INLINE_CODEQUALITY

  """Insights feature."""
  INSIGHTS

  """Issuable health status feature."""
  ISSUABLE_HEALTH_STATUS

  """Issues completed analytics feature."""
  ISSUES_COMPLETED_ANALYTICS

  """Jira vulnerabilities integration feature."""
  JIRA_VULNERABILITIES_INTEGRATION

  """Jira issue association enforcement feature."""
  JIRA_ISSUE_ASSOCIATION_ENFORCEMENT

  """Kubernetes cluster vulnerabilities feature."""
  KUBERNETES_CLUSTER_VULNERABILITIES

  """License scanning feature."""
  LICENSE_SCANNING

  """Okrs feature."""
  OKRS

  """Personal access token expiration policy feature."""
  PERSONAL_ACCESS_TOKEN_EXPIRATION_POLICY

  """Secret push protection feature."""
  SECRET_PUSH_PROTECTION

  """Product analytics feature."""
  PRODUCT_ANALYTICS

  """Project quality summary feature."""
  PROJECT_QUALITY_SUMMARY

  """Quality management feature."""
  QUALITY_MANAGEMENT

  """Release evidence test artifacts feature."""
  RELEASE_EVIDENCE_TEST_ARTIFACTS

  """Report approver rules feature."""
  REPORT_APPROVER_RULES

  """Requirements feature."""
  REQUIREMENTS

  """Runner maintenance note for namespace feature."""
  RUNNER_MAINTENANCE_NOTE_FOR_NAMESPACE

  """Runner performance insights for namespace feature."""
  RUNNER_PERFORMANCE_INSIGHTS_FOR_NAMESPACE

  """Runner upgrade management for namespace feature."""
  RUNNER_UPGRADE_MANAGEMENT_FOR_NAMESPACE

  """Sarif feature."""
  SARIF

  """Sast feature."""
  SAST

  """Sast advanced feature."""
  SAST_ADVANCED

  """Sast iac feature."""
  SAST_IAC

  """Sast custom rulesets feature."""
  SAST_CUSTOM_RULESETS

  """Sast fp reduction feature."""
  SAST_FP_REDUCTION

  """Secret detection feature."""
  SECRET_DETECTION

  """Security attributes feature."""
  SECURITY_ATTRIBUTES

  """Security configuration in ui feature."""
  SECURITY_CONFIGURATION_IN_UI

  """Security dashboard feature."""
  SECURITY_DASHBOARD

  """Security inventory feature."""
  SECURITY_INVENTORY

  """Security on demand scans feature."""
  SECURITY_ON_DEMAND_SCANS

  """Security orchestration policies feature."""
  SECURITY_ORCHESTRATION_POLICIES

  """Security scan profiles feature."""
  SECURITY_SCAN_PROFILES

  """Security training feature."""
  SECURITY_TRAINING

  """Ssh key expiration policy feature."""
  SSH_KEY_EXPIRATION_POLICY

  """Summarize mr changes feature."""
  SUMMARIZE_MR_CHANGES

  """Stale runner cleanup for namespace feature."""
  STALE_RUNNER_CLEANUP_FOR_NAMESPACE

  """Status page feature."""
  STATUS_PAGE

  """Suggested reviewers feature."""
  SUGGESTED_REVIEWERS

  """Subepics feature."""
  SUBEPICS

  """Observability feature."""
  OBSERVABILITY

  """Unique project download limit feature."""
  UNIQUE_PROJECT_DOWNLOAD_LIMIT

  """Vulnerability finding signatures feature."""
  VULNERABILITY_FINDING_SIGNATURES

  """Container scanning for registry feature."""
  CONTAINER_SCANNING_FOR_REGISTRY

  """Secret detection validity checks feature."""
  SECRET_DETECTION_VALIDITY_CHECKS

  """Security exclusions feature."""
  SECURITY_EXCLUSIONS

  """Security scans api feature."""
  SECURITY_SCANS_API

  """Measure comment temperature feature."""
  MEASURE_COMMENT_TEMPERATURE

  """License information source feature."""
  LICENSE_INFORMATION_SOURCE

  """Coverage fuzzing feature."""
  COVERAGE_FUZZING

  """Devops adoption feature."""
  DEVOPS_ADOPTION

  """Group level devops adoption feature."""
  GROUP_LEVEL_DEVOPS_ADOPTION

  """Instance level devops adoption feature."""
  INSTANCE_LEVEL_DEVOPS_ADOPTION
}

"""
Represents the availability of a licensed feature for a namespace or project.
"""
type LicensedFeatureAvailability {
  """Whether the feature is available on the current plan."""
  available: Boolean!

  """
  The minimum plan required to access this feature. Returns null if the required plan cannot be determined.
  """
  requiredPlan: String
}

"""Represents an entry from the Cloud License history"""
type LicenseHistoryEntry {
  """Date when the license was activated."""
  activatedAt: Date

  """Date when licensed features will be blocked."""
  blockChangesAt: Date

  """Company of the licensee."""
  company: String

  """Date when the license was added."""
  createdAt: Date

  """Email of the licensee."""
  email: String

  """Date when the license expires."""
  expiresAt: Date

  """ID of the license extracted from the license data."""
  id: ID!

  """Name of the licensee."""
  name: String

  """Name of the subscription plan."""
  plan: String!

  """Date when the license started."""
  startsAt: Date

  """Type of the license."""
  type: String!

  """Number of paid users in the license."""
  usersInLicenseCount: Int
}

"""The connection type for LicenseHistoryEntry."""
type LicenseHistoryEntryConnection {
  """A list of edges."""
  edges: [LicenseHistoryEntryEdge]

  """A list of nodes."""
  nodes: [LicenseHistoryEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type LicenseHistoryEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: LicenseHistoryEntry
}

"""Autogenerated input type of LifecycleAttachWorkItemType"""
input LifecycleAttachWorkItemTypeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace path where the lifecycle exists."""
  namespacePath: ID!

  """Global ID of the work item type to attach to the lifecycle."""
  workItemTypeId: WorkItemsTypeID!

  """Global ID of the lifecycle to attach the work item type to."""
  lifecycleId: WorkItemsStatusesLifecycleID!

  """Status mappings from the old lifecycle to the new lifecycle."""
  statusMappings: [StatusMappingInput!]
}

"""Autogenerated return type of LifecycleAttachWorkItemType."""
type LifecycleAttachWorkItemTypePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Lifecycle after attaching the work item type."""
  lifecycle: WorkItemLifecycle
}

"""Autogenerated input type of LifecycleCreate"""
input LifecycleCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace path where the lifecycle will be created."""
  namespacePath: ID!

  """Name of the lifecycle."""
  name: String!

  """
  Statuses of the lifecycle. Can be existing (with id) or new (without id).
  """
  statuses: [WorkItemStatusInput!]!

  """Index of the default open status in the statuses array."""
  defaultOpenStatusIndex: Int!

  """Index of the default closed status in the statuses array."""
  defaultClosedStatusIndex: Int!

  """Index of the default duplicated status in the statuses array."""
  defaultDuplicateStatusIndex: Int!
}

"""Autogenerated return type of LifecycleCreate."""
type LifecycleCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Lifecycle created."""
  lifecycle: WorkItemLifecycle
}

"""Autogenerated input type of LifecycleDelete"""
input LifecycleDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace path where the lifecycle exists."""
  namespacePath: ID!

  """Global ID of the lifecycle to delete."""
  id: WorkItemsStatusesLifecycleID!
}

"""Autogenerated return type of LifecycleDelete."""
type LifecycleDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted lifecycle."""
  lifecycle: WorkItemLifecycle
}

"""Autogenerated input type of LifecycleUpdate"""
input LifecycleUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace path where the lifecycle exists."""
  namespacePath: ID!

  """Global ID of the lifecycle to be updated."""
  id: WorkItemsStatusesLifecycleID!

  """Name of the lifecycle."""
  name: String

  """
  Statuses of the lifecycle. Can be existing (with id) or new (without id).
  """
  statuses: [WorkItemStatusInput!]

  """Index of the default open status in the statuses array."""
  defaultOpenStatusIndex: Int

  """Index of the default closed status in the statuses array."""
  defaultClosedStatusIndex: Int

  """Index of the default duplicated status in the statuses array."""
  defaultDuplicateStatusIndex: Int

  """
  Mappings for statuses being removed from the lifecycle. Maps old status to replacement status.
  """
  statusMappings: [StatusMappingInput!]
}

"""Autogenerated return type of LifecycleUpdate."""
type LifecycleUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Lifecycle updated."""
  lifecycle: WorkItemLifecycle
}

type LinkedWorkItemType {
  """Timestamp the link was created."""
  linkCreatedAt: Time!

  """Global ID of the link."""
  linkId: WorkItemsRelatedWorkItemLinkID!

  """Type of link."""
  linkType: String!

  """Timestamp the link was updated."""
  linkUpdatedAt: Time!

  """Linked work item."""
  workItem: WorkItem

  """State of the linked work item."""
  workItemState: WorkItemState!
}

"""The connection type for LinkedWorkItemType."""
type LinkedWorkItemTypeConnection {
  """A list of edges."""
  edges: [LinkedWorkItemTypeEdge]

  """A list of nodes."""
  nodes: [LinkedWorkItemType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type LinkedWorkItemTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: LinkedWorkItemType
}

"""Autogenerated input type of LinkProjectComplianceViolationIssue"""
input LinkProjectComplianceViolationIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project compliance violation."""
  violationId: ComplianceManagementProjectsComplianceViolationID!

  """Full path of the project the issue belongs to."""
  projectPath: ID!

  """IID of the issue to be linked."""
  issueIid: String!
}

"""Autogenerated return type of LinkProjectComplianceViolationIssue."""
type LinkProjectComplianceViolationIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated project compliance violation."""
  violation: ProjectComplianceViolation
}

"""
A `ListID` is a global ID. It is encoded as a string.

An example `ListID` is: `"gid://gitlab/List/1"`.
"""
scalar ListID

"""List limit metric setting"""
enum ListLimitMetric {
  """Limit list by number and total weight of issues."""
  all_metrics

  """Limit list by number of issues."""
  issue_count

  """Limit list by total weight of issues."""
  issue_weights
}

type Location {
  """Ancestors of the dependency."""
  ancestors: [AncestorType!]

  """HTTP URI path to view the input file in GitLab."""
  blobPath: String

  """
  Path, relative to the root of the repository, of the filewhich was analyzed to detect the dependency.
  """
  path: String

  """Is top level dependency."""
  topLevel: Boolean
}

"""Autogenerated input type of MarkAsSpamSnippet"""
input MarkAsSpamSnippetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the snippet to update."""
  id: SnippetID!
}

"""Autogenerated return type of MarkAsSpamSnippet."""
type MarkAsSpamSnippetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

interface MarkdownPaths {
  """Supported paths for autocomplete sources for a given namespace."""
  autocompleteSourcesPath(
    """IID of the work item."""
    iid: String

    """ID of the work item type."""
    workItemTypeId: String
  ): JSON

  """Path for the markdown preview for given namespace."""
  markdownPreviewPath(
    """IID of the target item for markdown preview."""
    iid: String
  ): String

  """Uploads path for a given namespace."""
  uploadsPath: String
}

"""Autogenerated input type of MavenCacheEntryDelete"""
input MavenCacheEntryDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the cache entry."""
  id: String!
}

"""Autogenerated return type of MavenCacheEntryDelete."""
type MavenCacheEntryDeletePayload {
  """Maven cache entry."""
  cacheEntry: MavenUpstreamCacheEntry

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Maven metadata"""
type MavenMetadata {
  """App group of the Maven package."""
  appGroup: String!

  """App name of the Maven package."""
  appName: String!

  """App version of the Maven package."""
  appVersion: String

  """Date of creation."""
  createdAt: Time!

  """ID of the metadatum."""
  id: PackagesMavenMetadatumID!

  """Path of the Maven package."""
  path: String!

  """Date of most recent update."""
  updatedAt: Time!
}

"""Represents a Maven virtual registry"""
type MavenRegistry implements RegistryInterface {
  """Description of the virtual registry."""
  description: String

  """ID of the virtual registry."""
  id: ID!

  """Name of the virtual registry."""
  name: String!

  """Timestamp of when the virtual registry was updated."""
  updatedAt: Time!
}

"""The connection type for MavenRegistry."""
type MavenRegistryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MavenRegistryEdge]

  """A list of nodes."""
  nodes: [MavenRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents Maven virtual registry details"""
type MavenRegistryDetails implements RegistryInterface {
  """Description of the virtual registry."""
  description: String

  """ID of the virtual registry."""
  id: ID!

  """Name of the virtual registry."""
  name: String!

  """
  List of registry upstreams for the Maven virtual registry. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  registryUpstreams: [MavenRegistryUpstreamWithUpstream!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Timestamp of when the virtual registry was updated."""
  updatedAt: Time!
}

"""An edge in a connection."""
type MavenRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MavenRegistry
}

"""
Represents a Maven virtual registry upstream and its relationship to the registry.
"""
type MavenRegistryUpstreamWithRegistry implements RegistryUpstreamInterface {
  """
  ID of the registry upstream. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Position of the upstream registry in an ordered list. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  position: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Maven registry associated with the registry upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registry: MavenRegistry! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
}

"""
Represents a Maven virtual registry upstream and its relationship to the upstream.
"""
type MavenRegistryUpstreamWithUpstream implements RegistryUpstreamInterface {
  """
  ID of the registry upstream. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Position of the upstream registry in an ordered list. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  position: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Maven upstream associated with the registry upstream. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  upstream: MavenUpstream! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

"""Represents a Maven upstream registry."""
type MavenUpstream implements UpstreamInterface {
  """
  Time before the cache expires for the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  cacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Description of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Time before the cache expires for Maven metadata. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  metadataCacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Name of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Number of registries using the upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Total number of rules for the upstream. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  rulesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  URL of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  url: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Username to sign in to the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  username: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
}

"""Autogenerated input type of MavenUpstreamCacheDelete"""
input MavenUpstreamCacheDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Maven virtual registry upstream."""
  id: VirtualRegistriesPackagesMavenUpstreamID!
}

"""Autogenerated return type of MavenUpstreamCacheDelete."""
type MavenUpstreamCacheDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven virtual registry upstream."""
  upstream: MavenUpstreamDetails
}

"""Represents a cache entry for a Maven upstream."""
type MavenUpstreamCacheEntry implements EntryInterface {
  """
  Content type of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  contentType: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was created. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  createdAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Number of times the entry has been downloaded. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  downloadsCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  MD5 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileMd5: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  SHA1 hash of the cached file. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  fileSha1: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ID of the cache entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  id: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Relative path of the cached entry. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  relativePath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Size of the cached file in bytes. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  size: BigInt! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the cache entry was last updated. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  updatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Timestamp when the upstream was last checked. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamCheckedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  ETag from the upstream source. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  upstreamEtag: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
}

"""The connection type for MavenUpstreamCacheEntry."""
type MavenUpstreamCacheEntryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MavenUpstreamCacheEntryEdge]

  """A list of nodes."""
  nodes: [MavenUpstreamCacheEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MavenUpstreamCacheEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MavenUpstreamCacheEntry
}

"""The connection type for MavenUpstream."""
type MavenUpstreamConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MavenUpstreamEdge]

  """A list of nodes."""
  nodes: [MavenUpstream]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of MavenUpstreamCreate"""
input MavenUpstreamCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the upstream registry."""
  id: VirtualRegistriesPackagesMavenRegistryID!

  """Name of upstream registry."""
  name: String!

  """Description of the upstream registry."""
  description: String

  """URL of the upstream registry."""
  url: String!

  """Cache validity period. Defaults to 24 hours."""
  cacheValidityHours: Int = 24

  """Metadata cache validity period. Defaults to 24 hours."""
  metadataCacheValidityHours: Int = 24

  """Username of the upstream registry."""
  username: String

  """Password of the upstream registry."""
  password: String
}

"""Autogenerated return type of MavenUpstreamCreate."""
type MavenUpstreamCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven upstream after the mutation."""
  upstream: MavenUpstreamDetails
}

"""Autogenerated input type of MavenUpstreamDelete"""
input MavenUpstreamDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the upstream to be deleted."""
  id: VirtualRegistriesPackagesMavenUpstreamID!
}

"""Autogenerated return type of MavenUpstreamDelete."""
type MavenUpstreamDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Destroyed upstream."""
  upstream: MavenUpstreamDetails
}

"""Represents Maven upstream registry details."""
type MavenUpstreamDetails implements UpstreamInterface {
  """
  Allow rules for the upstream. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  allowRules: [MavenUpstreamRule!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Represents cache entries for the upstream. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  cacheEntries(
    """Search cache entries by relative path."""
    search: String = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MavenUpstreamCacheEntryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Time before the cache expires for the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  cacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Deny rules for the upstream. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  denyRules: [MavenUpstreamRule!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Description of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Time before the cache expires for Maven metadata. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  metadataCacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Name of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Number of registries using the upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Represents the upstream registry for the upstream which contains the position
  data. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  registryUpstreams: [MavenRegistryUpstreamWithRegistry!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Total number of rules for the upstream. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  rulesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  URL of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  url: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Username to sign in to the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  username: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
}

"""An edge in a connection."""
type MavenUpstreamEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MavenUpstream
}

"""Pattern type for Maven upstream rules."""
enum MavenUpstreamPatternType {
  """Wildcard pattern type."""
  WILDCARD

  """Regular expression pattern type."""
  REGEX
}

"""Represents a Maven upstream rule."""
type MavenUpstreamRule implements RuleInterface {
  """When the rule was created."""
  createdAt: Time!

  """Global ID of the rule."""
  id: VirtualRegistriesPackagesMavenUpstreamRuleID!

  """Pattern for the rule."""
  pattern: String!

  """Type of pattern (WILDCARD or REGEX)."""
  patternType: MavenUpstreamPatternType!

  """Target coordinate for the rule."""
  targetCoordinate: MavenUpstreamTargetCoordinate!
}

"""Target coordinate for Maven upstream rules."""
enum MavenUpstreamTargetCoordinate {
  """Group ID coordinate."""
  GROUP_ID

  """Artifact ID coordinate."""
  ARTIFACT_ID

  """Version coordinate."""
  VERSION
}

"""Autogenerated input type of MavenUpstreamUpdate"""
input MavenUpstreamUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the upstream registry."""
  id: VirtualRegistriesPackagesMavenUpstreamID!

  """Name of upstream registry."""
  name: String

  """Description of the upstream registry."""
  description: String

  """URL of the upstream registry."""
  url: String

  """Cache validity period."""
  cacheValidityHours: Int

  """Metadata cache validity period."""
  metadataCacheValidityHours: Int

  """Username of the upstream registry."""
  username: String

  """Password of the upstream registry."""
  password: String
}

"""Autogenerated return type of MavenUpstreamUpdate."""
type MavenUpstreamUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven upstream after the mutation."""
  upstream: MavenUpstreamDetails
}

"""Autogenerated input type of MavenVirtualRegistryCacheDelete"""
input MavenVirtualRegistryCacheDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Maven virtual registry."""
  id: VirtualRegistriesPackagesMavenRegistryID!
}

"""Autogenerated return type of MavenVirtualRegistryCacheDelete."""
type MavenVirtualRegistryCacheDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven virtual registry."""
  registry: MavenRegistry
}

"""Autogenerated input type of MavenVirtualRegistryCreate"""
input MavenVirtualRegistryCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """Name of virtual registry."""
  name: String!

  """Description of the virtual registry."""
  description: String
}

"""Autogenerated return type of MavenVirtualRegistryCreate."""
type MavenVirtualRegistryCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven virtual registry after the mutation."""
  registry: MavenRegistry
}

"""Autogenerated input type of MavenVirtualRegistryDelete"""
input MavenVirtualRegistryDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Maven virtual registry to be deleted."""
  id: VirtualRegistriesPackagesMavenRegistryID!
}

"""Autogenerated return type of MavenVirtualRegistryDelete."""
type MavenVirtualRegistryDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted Maven virtual registry."""
  registry: MavenRegistry
}

"""Autogenerated input type of MavenVirtualRegistryUpdate"""
input MavenVirtualRegistryUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of virtual registry."""
  name: String

  """Description of the virtual registry."""
  description: String

  """ID of the Maven virtual registry to be updated."""
  id: VirtualRegistriesPackagesMavenRegistryID!
}

"""Autogenerated return type of MavenVirtualRegistryUpdate."""
type MavenVirtualRegistryUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven virtual registry after the mutation."""
  registry: MavenRegistry
}

"""Autogenerated input type of MavenVirtualRegistryUpstreamDelete"""
input MavenVirtualRegistryUpstreamDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Maven virtual registry upstream."""
  upstreamId: VirtualRegistriesPackagesMavenRegistryUpstreamID!
}

"""Autogenerated return type of MavenVirtualRegistryUpstreamDelete."""
type MavenVirtualRegistryUpstreamDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted maven registry upstream."""
  registryUpstream: MavenRegistryUpstreamWithRegistry
}

"""Autogenerated input type of MavenVirtualRegistryUpstreamUpdate"""
input MavenVirtualRegistryUpstreamUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Priority order of an upstream within a virtual registry."""
  position: Int!

  """ID of the Maven virtual registry upstream."""
  id: VirtualRegistriesPackagesMavenRegistryUpstreamID!
}

"""Autogenerated return type of MavenVirtualRegistryUpstreamUpdate."""
type MavenVirtualRegistryUpstreamUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Maven registry upstream after update."""
  registryUpstream: MavenRegistryUpstreamWithRegistry
}

"""
Model Context Protocol metrics. Requires ClickHouse. Premium and Ultimate only.
"""
type mcpMetrics {
  """Total count of `finish_mcp_tool_call` event."""
  finishMcpToolCallEventCount: Int

  """Total count of `start_mcp_tool_call` event."""
  startMcpToolCallEventCount: Int
}

"""
MCP user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type mcpUserMetrics {
  """Total count of `finish_mcp_tool_call` event."""
  finishMcpToolCallEventCount: Int

  """Date of the last MCP activity for the user."""
  lastDuoActivityOn: Date

  """Total count of `start_mcp_tool_call` event."""
  startMcpToolCallEventCount: Int

  """Total count of all MCP events for the user."""
  totalEventCount: Int
}

"""Possible identifier types for a measurement"""
enum MeasurementIdentifier {
  """Project count."""
  PROJECTS

  """User count."""
  USERS

  """Issue count."""
  ISSUES

  """Merge request count."""
  MERGE_REQUESTS

  """Group count."""
  GROUPS

  """Pipeline count."""
  PIPELINES

  """Pipeline count with success status."""
  PIPELINES_SUCCEEDED

  """Pipeline count with failed status."""
  PIPELINES_FAILED

  """Pipeline count with canceled status."""
  PIPELINES_CANCELED

  """Pipeline count with skipped status."""
  PIPELINES_SKIPPED
}

"""Access level of a group or project member"""
enum MemberAccessLevel {
  """
  The Guest role is for users who need visibility into a project or group but
  should not have the ability to make changes, such as external stakeholders.
  """
  GUEST

  """
  The Planner role is suitable for team members who need to manage projects and
  track work items but do not need to contribute code.
  """
  PLANNER

  """
  The Reporter role is suitable for team members who need to stay informed about
  a project or group but do not actively contribute code.
  """
  REPORTER

  """
  The Security Manager role is for security team members who need to view and
  manage security features for the group or project.
  """
  SECURITY_MANAGER

  """
  The Developer role gives users access to contribute code while restricting sensitive administrative actions.
  """
  DEVELOPER

  """
  The Maintainer role is primarily used for managing code reviews, approvals,
  and administrative settings for projects. This role can also manage project memberships.
  """
  MAINTAINER

  """
  The Owner role is typically assigned to the individual or team responsible for
  managing and maintaining the group or creating the project. This role has the
  highest level of administrative control, and can manage all aspects of the
  group or project, including managing other Owners.
  """
  OWNER

  """
  The Minimal Access role is for users who need the least amount of access into
  groups and projects. You can assign this role as a default, before giving a
  user another role with more permissions.
  """
  MINIMAL_ACCESS
}

"""Name of access levels of a group or project member"""
enum MemberAccessLevelName {
  """Guest access."""
  GUEST

  """Planner access."""
  PLANNER

  """Reporter access."""
  REPORTER

  """Security Manager access."""
  SECURITY_MANAGER

  """Developer access."""
  DEVELOPER

  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER
}

"""Represents a Member Approval queued for role promotion."""
type MemberApproval {
  """Timestamp when the member approval was created."""
  createdAt: Time

  """Member associated with the member approval object."""
  member: MemberInterface

  """ID of the member role."""
  memberRoleId: ID

  """New GitLab::Access level requested for the member."""
  newAccessLevel: AccessLevel

  """Existing GitLab::Access level for the member."""
  oldAccessLevel: AccessLevel

  """User who requested the member promotion."""
  requestedBy: UserCore

  """User who reviewed the member promotion."""
  reviewedBy: UserCore

  """Status for the member approval request (approved, denied, pending)."""
  status: String

  """Timestamp when the member approval was last updated."""
  updatedAt: Time

  """User that is associated with the member approval object."""
  user: UserCore
}

"""The connection type for MemberApproval."""
type MemberApprovalConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MemberApprovalEdge]

  """A list of nodes."""
  nodes: [MemberApproval]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MemberApprovalEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MemberApproval
}

"""Types of member approval status."""
enum MemberApprovalStatusType {
  """Approved promotion request."""
  APPROVED

  """Denied promotion request."""
  DENIED

  """Pending promotion request."""
  PENDING
}

interface MemberInterface {
  """GitLab::Access level."""
  accessLevel: AccessLevel

  """Date and time the membership was created."""
  createdAt: Time

  """User that authorized membership."""
  createdBy: UserCore

  """Date and time the membership expires."""
  expiresAt: Time

  """ID of the member."""
  id: ID!

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """Date and time the membership was last updated."""
  updatedAt: Time

  """User that is associated with the member object."""
  user: UserCore
}

"""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
}

"""Represents a member role"""
type MemberRole implements CustomRoleInterface & RoleInterface {
  """
  Base access level for the custom role. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  baseAccessLevel: AccessLevel! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Timestamp of when the member role was created."""
  createdAt: Time!

  """Array of security policies dependent on the custom role."""
  dependentSecurityPolicies: [ApprovalPolicy!]

  """Role description."""
  description: String

  """
  URL path to the role details webpage. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  detailsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Web UI path to edit the custom role. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  editPath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Array of all permissions enabled for the custom role. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  enabledPermissions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableStandardPermissionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Role ID."""
  id: ID!

  """
  Number of times the role has been directly assigned to a group or project
  member. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  membersCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Role name."""
  name: String

  """
  Number of users who have been directly assigned the role in at least one group
  or project. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  usersCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
}

"""Autogenerated input type of MemberRoleAdminCreate"""
input MemberRoleAdminCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the member role."""
  description: String

  """Name of the member role."""
  name: String

  """List of all customizable admin permissions."""
  permissions: [MemberRoleAdminPermission!]
}

"""Autogenerated return type of MemberRoleAdminCreate."""
type MemberRoleAdminCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Member role."""
  memberRole: AdminMemberRole
}

"""Autogenerated input type of MemberRoleAdminDelete"""
input MemberRoleAdminDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the admin member role to delete."""
  id: MemberRoleID!
}

"""Autogenerated return type of MemberRoleAdminDelete."""
type MemberRoleAdminDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted admin member role."""
  memberRole: MemberRole
}

"""Member role admin permission"""
enum MemberRoleAdminPermission {
  """Read CI/CD details for runners and jobs in the Admin Area."""
  READ_ADMIN_CICD

  """Read group details in the Admin Area."""
  READ_ADMIN_GROUPS

  """Read project details in the Admin Area."""
  READ_ADMIN_PROJECTS

  """Read subscription details in the Admin area."""
  READ_ADMIN_SUBSCRIPTION

  """
  Read system information such as background migrations, health checks, and Gitaly in the Admin Area.
  """
  READ_ADMIN_MONITORING

  """Read the user list and user details in the Admin area."""
  READ_ADMIN_USERS
}

"""Autogenerated input type of MemberRoleAdminUpdate"""
input MemberRoleAdminUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the member role."""
  description: String

  """Name of the member role."""
  name: String

  """List of all customizable admin permissions."""
  permissions: [MemberRoleAdminPermission!]

  """ID of the member role to mutate."""
  id: MemberRoleID!
}

"""Autogenerated return type of MemberRoleAdminUpdate."""
type MemberRoleAdminUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Member role."""
  memberRole: AdminMemberRole
}

"""The connection type for MemberRole."""
type MemberRoleConnection {
  """A list of edges."""
  edges: [MemberRoleEdge]

  """A list of nodes."""
  nodes: [MemberRole]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of MemberRoleCreate"""
input MemberRoleCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the member role."""
  description: String

  """Name of the member role."""
  name: String

  """List of all customizable permissions."""
  permissions: [MemberRolePermission!]

  """Base access level for the custom role."""
  baseAccessLevel: MemberRolesAccessLevel!

  """Group the member role to mutate is in. Required for SaaS."""
  groupPath: ID
}

"""Autogenerated return type of MemberRoleCreate."""
type MemberRoleCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Member role."""
  memberRole: MemberRole
}

"""Autogenerated input type of MemberRoleDelete"""
input MemberRoleDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the member role to delete."""
  id: MemberRoleID!
}

"""Autogenerated return type of MemberRoleDelete."""
type MemberRoleDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted member role."""
  memberRole: MemberRole
}

"""An edge in a connection."""
type MemberRoleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MemberRole
}

"""
A `MemberRoleID` is a global ID. It is encoded as a string.

An example `MemberRoleID` is: `"gid://gitlab/MemberRole/1"`.
"""
scalar MemberRoleID

"""Member role permission"""
enum MemberRolePermission {
  """Apply security scan profiles."""
  APPLY_SECURITY_SCAN_PROFILES

  """Allows approval of merge requests."""
  ADMIN_MERGE_REQUEST

  """Allows archiving of projects."""
  ARCHIVE_PROJECT

  """
  Enable, disable, and configure custom agents and flows from the AI catalog for a project.
  """
  ADMIN_AI_CATALOG_ITEM_CONSUMER

  """Delete packages and package files in the package registry."""
  DESTROY_PACKAGE

  """Allows deletion of projects."""
  REMOVE_PROJECT

  """
  Ability to delete or restore a subgroup. This ability does not allow deleting
  top-level groups. Review the retention period settings to prevent accidental deletion.
  """
  REMOVE_GROUP

  """Allows linking security policy projects."""
  MANAGE_SECURITY_POLICY_LINK

  """Create, edit, and delete custom agents and flows in the AI catalog."""
  ADMIN_AI_CATALOG_ITEM

  """
  Create, read, update, and delete compliance frameworks. Users with this
  permission can also assign a compliance framework label to a project, and set
  the default framework of a group.
  """
  ADMIN_COMPLIANCE_FRAMEWORK

  """Create, read, update, and delete CI/CD variables."""
  ADMIN_CICD_VARIABLES

  """Manage deploy tokens at the group or project level."""
  MANAGE_DEPLOY_TOKENS

  """
  Create, read, update, and delete group access tokens. When creating a token,
  users with this custom permission must select a role for that token that has
  the same or fewer permissions as the default role used as the base for the custom role.
  """
  MANAGE_GROUP_ACCESS_TOKENS

  """
  Add or remove users in a group, and assign roles to users. When assigning a
  role, users with this custom permission must select a role that has the same
  or fewer permissions as the default role used as the base for their custom role.
  """
  ADMIN_GROUP_MEMBER

  """
  Create, read, update, and delete integrations with external applications.
  """
  ADMIN_INTEGRATIONS

  """
  Configure merge request settings at the group or project level. Group actions
  include managing merge checks and approval settings. Project actions include
  managing MR configurations, approval rules and settings, and branch targets.
  In order to enable Suggested reviewers, the "Manage project access tokens"
  custom permission needs to be enabled.
  """
  MANAGE_MERGE_REQUEST_SETTINGS

  """
  Create, read, update, and delete project access tokens. When creating a token,
  users with this custom permission must select a role for that token that has
  the same or fewer permissions as the default role used as the base for the custom role.
  """
  MANAGE_PROJECT_ACCESS_TOKENS

  """Create, read, update, and delete protected branches for a project."""
  ADMIN_PROTECTED_BRANCH

  """Create, read, update, and delete protected environments"""
  ADMIN_PROTECTED_ENVIRONMENTS

  """Configure push rules for repositories at the group or project level."""
  ADMIN_PUSH_RULES

  """
  Create, view, edit, and delete group or project Runners. Includes configuring Runner settings.
  """
  ADMIN_RUNNERS

  """
  Manage the security categories and attributes belonging to a top-level group.
  Also requires the `read_security_attribute` permission.
  """
  ADMIN_SECURITY_ATTRIBUTES

  """
  Execute terraform commands, lock/unlock terraform state files, and remove file versions.
  """
  ADMIN_TERRAFORM_STATE

  """
  Edit the status, linked issue, and severity of a vulnerability object. Also requires the `read_vulnerability` permission.
  """
  ADMIN_VULNERABILITY

  """Manage webhooks"""
  ADMIN_WEB_HOOK

  """
  Read compliance capabilities including adherence, violations, and frameworks for groups and projects.
  """
  READ_COMPLIANCE_DASHBOARD

  """Read security scan profiles."""
  READ_SECURITY_SCAN_PROFILES

  """
  Allows read access to virtual registries at the group level. Enables users to
  resolve packages through the virtual registry without requiring broader group
  membership permissions. Only works on top level groups.
  """
  READ_VIRTUAL_REGISTRY

  """
  Update security AI workflow settings such as SAST Vulnerability Resolution.
  Also requires the `read_vulnerability` permission.
  """
  UPDATE_SEC_AI_WORKFLOW_SETTINGS

  """Read CI/CD details for runners and jobs in the Admin Area."""
  READ_ADMIN_CICD

  """Read CRM contact."""
  READ_CRM_CONTACT

  """Allows read-only access to the dependencies and licenses."""
  READ_DEPENDENCY

  """Read group details in the Admin Area."""
  READ_ADMIN_GROUPS

  """Read project details in the Admin Area."""
  READ_ADMIN_PROJECTS

  """
  Allows read-only access to the source code in the user interface. Does not
  allow users to edit or download repository archives, clone or pull
  repositories, view source code in an IDE, or view merge requests for private
  projects. You can download individual files because read-only access
  inherently grants the ability to make a local copy of the file.
  """
  READ_CODE

  """
  Allows read-only access to group or project runners, including the runner fleet dashboard.
  """
  READ_RUNNERS

  """
  Allows read-only access to the security categories and attributes that belong to a top-level group.
  """
  READ_SECURITY_ATTRIBUTE

  """Read subscription details in the Admin area."""
  READ_ADMIN_SUBSCRIPTION

  """
  Read system information such as background migrations, health checks, and Gitaly in the Admin Area.
  """
  READ_ADMIN_MONITORING

  """Read the user list and user details in the Admin area."""
  READ_ADMIN_USERS

  """Read vulnerability reports and security dashboards."""
  READ_VULNERABILITY
}

"""Access level of a group or project member"""
enum MemberRolesAccessLevel {
  """
  The Minimal Access role is for users who need the least amount of access into
  groups and projects. You can assign this role as a default, before giving a
  user another role with more permissions.
  """
  MINIMAL_ACCESS

  """
  The Guest role is for users who need visibility into a project or group but
  should not have the ability to make changes, such as external stakeholders.
  """
  GUEST

  """
  The Planner role is suitable for team members who need to manage projects and
  track work items but do not need to contribute code.
  """
  PLANNER

  """
  The Reporter role is suitable for team members who need to stay informed about
  a project or group but do not actively contribute code.
  """
  REPORTER

  """
  The Security Manager role is for security team members who need to view and
  manage security features for the group or project.
  """
  SECURITY_MANAGER

  """
  The Developer role gives users access to contribute code while restricting sensitive administrative actions.
  """
  DEVELOPER

  """
  The Maintainer role is primarily used for managing code reviews, approvals,
  and administrative settings for projects. This role can also manage project memberships.
  """
  MAINTAINER
}

"""Values for ordering member roles by a specific field"""
enum MemberRolesOrderBy {
  """Ordered by name."""
  NAME

  """Ordered by creation time."""
  CREATED_AT

  """Ordered by id."""
  ID
}

"""Member role standard permission"""
enum MemberRoleStandardPermission {
  """Apply security scan profiles."""
  APPLY_SECURITY_SCAN_PROFILES

  """Allows approval of merge requests."""
  ADMIN_MERGE_REQUEST

  """Allows archiving of projects."""
  ARCHIVE_PROJECT

  """
  Enable, disable, and configure custom agents and flows from the AI catalog for a project.
  """
  ADMIN_AI_CATALOG_ITEM_CONSUMER

  """Delete packages and package files in the package registry."""
  DESTROY_PACKAGE

  """Allows deletion of projects."""
  REMOVE_PROJECT

  """
  Ability to delete or restore a subgroup. This ability does not allow deleting
  top-level groups. Review the retention period settings to prevent accidental deletion.
  """
  REMOVE_GROUP

  """Allows linking security policy projects."""
  MANAGE_SECURITY_POLICY_LINK

  """Create, edit, and delete custom agents and flows in the AI catalog."""
  ADMIN_AI_CATALOG_ITEM

  """
  Create, read, update, and delete compliance frameworks. Users with this
  permission can also assign a compliance framework label to a project, and set
  the default framework of a group.
  """
  ADMIN_COMPLIANCE_FRAMEWORK

  """Create, read, update, and delete CI/CD variables."""
  ADMIN_CICD_VARIABLES

  """Manage deploy tokens at the group or project level."""
  MANAGE_DEPLOY_TOKENS

  """
  Create, read, update, and delete group access tokens. When creating a token,
  users with this custom permission must select a role for that token that has
  the same or fewer permissions as the default role used as the base for the custom role.
  """
  MANAGE_GROUP_ACCESS_TOKENS

  """
  Add or remove users in a group, and assign roles to users. When assigning a
  role, users with this custom permission must select a role that has the same
  or fewer permissions as the default role used as the base for their custom role.
  """
  ADMIN_GROUP_MEMBER

  """
  Create, read, update, and delete integrations with external applications.
  """
  ADMIN_INTEGRATIONS

  """
  Configure merge request settings at the group or project level. Group actions
  include managing merge checks and approval settings. Project actions include
  managing MR configurations, approval rules and settings, and branch targets.
  In order to enable Suggested reviewers, the "Manage project access tokens"
  custom permission needs to be enabled.
  """
  MANAGE_MERGE_REQUEST_SETTINGS

  """
  Create, read, update, and delete project access tokens. When creating a token,
  users with this custom permission must select a role for that token that has
  the same or fewer permissions as the default role used as the base for the custom role.
  """
  MANAGE_PROJECT_ACCESS_TOKENS

  """Create, read, update, and delete protected branches for a project."""
  ADMIN_PROTECTED_BRANCH

  """Create, read, update, and delete protected environments"""
  ADMIN_PROTECTED_ENVIRONMENTS

  """Configure push rules for repositories at the group or project level."""
  ADMIN_PUSH_RULES

  """
  Create, view, edit, and delete group or project Runners. Includes configuring Runner settings.
  """
  ADMIN_RUNNERS

  """
  Manage the security categories and attributes belonging to a top-level group.
  Also requires the `read_security_attribute` permission.
  """
  ADMIN_SECURITY_ATTRIBUTES

  """
  Execute terraform commands, lock/unlock terraform state files, and remove file versions.
  """
  ADMIN_TERRAFORM_STATE

  """
  Edit the status, linked issue, and severity of a vulnerability object. Also requires the `read_vulnerability` permission.
  """
  ADMIN_VULNERABILITY

  """Manage webhooks"""
  ADMIN_WEB_HOOK

  """
  Read compliance capabilities including adherence, violations, and frameworks for groups and projects.
  """
  READ_COMPLIANCE_DASHBOARD

  """Read security scan profiles."""
  READ_SECURITY_SCAN_PROFILES

  """
  Allows read access to virtual registries at the group level. Enables users to
  resolve packages through the virtual registry without requiring broader group
  membership permissions. Only works on top level groups.
  """
  READ_VIRTUAL_REGISTRY

  """
  Update security AI workflow settings such as SAST Vulnerability Resolution.
  Also requires the `read_vulnerability` permission.
  """
  UPDATE_SEC_AI_WORKFLOW_SETTINGS

  """Read CRM contact."""
  READ_CRM_CONTACT

  """Allows read-only access to the dependencies and licenses."""
  READ_DEPENDENCY

  """
  Allows read-only access to the source code in the user interface. Does not
  allow users to edit or download repository archives, clone or pull
  repositories, view source code in an IDE, or view merge requests for private
  projects. You can download individual files because read-only access
  inherently grants the ability to make a local copy of the file.
  """
  READ_CODE

  """
  Allows read-only access to group or project runners, including the runner fleet dashboard.
  """
  READ_RUNNERS

  """
  Allows read-only access to the security categories and attributes that belong to a top-level group.
  """
  READ_SECURITY_ATTRIBUTE

  """Read vulnerability reports and security dashboards."""
  READ_VULNERABILITY
}

"""Autogenerated input type of MemberRoleToUserAssign"""
input MemberRoleToUserAssignInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user to be assigned to a custom role."""
  userId: UserID!

  """
  Global ID of the custom role to be assigned to a user.
              Admin roles will be unassigned from the user if omitted or set as NULL.
  """
  memberRoleId: MemberRoleID
}

"""Autogenerated return type of MemberRoleToUserAssign."""
type MemberRoleToUserAssignPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created user member role or nil if the relation was deleted."""
  userMemberRole: UserMemberRole
}

"""Autogenerated input type of MemberRoleUpdate"""
input MemberRoleUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the member role."""
  description: String

  """Name of the member role."""
  name: String

  """List of all customizable permissions."""
  permissions: [MemberRolePermission!]

  """ID of the member role to mutate."""
  id: MemberRoleID!
}

"""Autogenerated return type of MemberRoleUpdate."""
type MemberRoleUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Member role."""
  memberRole: MemberRole
}

"""Values for sorting members"""
enum MemberSort {
  """Access level ascending order."""
  ACCESS_LEVEL_ASC

  """Access level descending order."""
  ACCESS_LEVEL_DESC

  """User's full name ascending order."""
  USER_FULL_NAME_ASC

  """User's full name descending order."""
  USER_FULL_NAME_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Representation of mergeability check identifier."""
enum MergeabilityCheckIdentifier {
  """Checks whether the merge request is open"""
  NOT_OPEN

  """Checks whether the merge request is draft"""
  DRAFT_STATUS

  """Checks whether the external status checks pass"""
  STATUS_CHECKS_MUST_PASS

  """Checks whether the title or description references a Jira issue."""
  JIRA_ASSOCIATION_MISSING

  """Checks whether the merge is blocked due to a scheduled merge time"""
  MERGE_TIME

  """Checks whether the merge request is blocked"""
  MERGE_REQUEST_BLOCKED

  """Checks whether the merge request has changes requested"""
  REQUESTED_CHANGES

  """Checks whether the title matches the expected regex"""
  TITLE_REGEX

  """Checks whether the security policies are satisfied"""
  SECURITY_POLICY_VIOLATIONS

  """
  Checks whether the merge request contains locked LFS files that are locked by users other than the merge request author
  """
  LOCKED_LFS_FILES

  """Checks whether the merge request has open discussions"""
  DISCUSSIONS_NOT_RESOLVED

  """Checks whether CI has passed"""
  CI_MUST_PASS

  """Checks source branch exists and contains commits."""
  COMMITS_STATUS

  """Checks whether the merge request contains locked paths"""
  LOCKED_PATHS

  """Checks whether the merge request is approved"""
  NOT_APPROVED

  """
  Checks whether all pipelines have passed when security policies are configured
  """
  SECURITY_POLICY_PIPELINE_CHECK

  """Checks whether the merge request needs to be rebased"""
  NEED_REBASE

  """Checks whether the merge request has a conflict"""
  CONFLICT
}

"""
Representation of whether a mergeability check passed, checking, failed or is inactive.
"""
enum MergeabilityCheckStatus {
  """Mergeability check has passed."""
  SUCCESS

  """Mergeability check is being checked."""
  CHECKING

  """Mergeability check has failed. The merge request cannot be merged."""
  FAILED

  """Mergeability check is disabled via settings."""
  INACTIVE

  """Mergeability check has passed with a warning."""
  WARNING
}

"""
Defines which user roles, users, or groups can merge into a protected branch.
"""
type MergeAccessLevel {
  """GitLab::Access level."""
  accessLevel: Int!

  """Human readable representation for the access level."""
  accessLevelDescription: String!

  """Group associated with the access level."""
  group: AccessLevelGroup

  """User associated with the access level."""
  user: AccessLevelUser
}

"""The connection type for MergeAccessLevel."""
type MergeAccessLevelConnection {
  """A list of edges."""
  edges: [MergeAccessLevelEdge]

  """A list of nodes."""
  nodes: [MergeAccessLevel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeAccessLevelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeAccessLevel
}

"""
Defines which user roles, users, or groups can merge into a protected branch.
"""
input MergeAccessLevelInput {
  """Access level allowed to perform action."""
  accessLevel: Int

  """User associated with the access level."""
  userId: UserID

  """Group associated with the access level."""
  groupId: GroupID
}

type MergeRequest implements CurrentUserTodos & NoteableInterface & Todoable {
  """Indicates if members of the target project can push to the fork."""
  allowCollaboration: Boolean

  """Allows assigning multiple users to a merge request."""
  allowsMultipleAssignees: Boolean!

  """Allows assigning multiple reviewers to a merge request."""
  allowsMultipleReviewers: Boolean!

  """
  Information relating to rules that must be satisfied to merge the merge request.
  """
  approvalState: MergeRequestApprovalState!

  """Number of approvals left."""
  approvalsLeft: Int

  """Number of approvals required."""
  approvalsRequired: Int

  """Indicates if the merge request has all the required approvals."""
  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
  ): UserCoreConnection

  """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
  ): MergeRequestAssigneeConnection

  """User who created the merge request."""
  author: MergeRequestAuthor

  """Indicates if auto merge is enabled for the merge request."""
  autoMergeEnabled: Boolean!

  """Selected auto merge strategy."""
  autoMergeStrategy: String

  """Array of available auto merge strategies."""
  availableAutoMergeStrategies: [String!]

  """List of emoji reactions associated with the merge request."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """
  Merge requests that block another merge request from merging. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  blockingMergeRequests: BlockingMergeRequests @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Users that have requested changes to the merge request."""
  changeRequesters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection

  """Timestamp of when the merge request was closed, null if not closed."""
  closedAt: Time

  """Code quality reports comparison reported on the merge request."""
  codequalityReportsComparer: CodequalityReportsComparer

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Number of commits in the merge request."""
  commitCount: Int

  """Merge request commits."""
  commits(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CommitConnection

  """Merge request commits excluding merge commits."""
  commitsWithoutMergeCommits(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CommitConnection

  """Users who have added commits to the merge request."""
  committers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection

  """Indicates if the merge request has conflicts."""
  conflicts: Boolean!

  """Timestamp of when the merge request was created."""
  createdAt: Time!

  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """Default merge commit message of the merge request."""
  defaultMergeCommitMessage: String

  """Default squash commit message of the merge request."""
  defaultSquashCommitMessage: String

  """
  Description of the merge request (Markdown rendered as HTML for caching).
  """
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Detailed merge status of the merge request."""
  detailedMergeStatus: DetailedMergeStatus

  """Diff head SHA of the merge request."""
  diffHeadSha: String

  """
  References of the base SHA, the head SHA, and the start SHA for the merge request.
  """
  diffRefs: DiffRefs

  """Details about which files were changed in the merge request."""
  diffStats(
    """Specific file path."""
    path: String
  ): [DiffStats!]

  """Summary of which files were changed in the merge request."""
  diffStatsSummary: DiffStatsSummary

  """Indicates if comments on the merge request are locked to members only."""
  discussionLocked: Boolean!

  """All discussions on the 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!

  """
  Discussions on the merge request, including synthetic system notes generated
  from resource events such as label, milestone, and state changes. Supports
  forward-only pagination. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  discussionsWithActivity(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_NOTES

    """Sort order for the discussions."""
    sort: WorkItemDiscussionsSort = CREATED_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """Returns the first _n_ elements from the list."""
    first: Int
  ): DiscussionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")

  """Indicates if the source branch is behind the target branch."""
  divergedFromTargetBranch: Boolean!

  """Number of downvotes for the merge request."""
  downvotes: Int!

  """Indicates if the merge request is a draft."""
  draft: Boolean!

  """
  Duo Workflow sessions associated with the merge request. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  duoWorkflows(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Vulnerability finding reports comparison reported on the merge request. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  findingReportsComparer(
    """Filter vulnerability findings by report type."""
    reportType: ComparableSecurityReportType!

    """Filter results by scan mode."""
    scanMode: ScanModeEnum
  ): FindingReportsComparer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """
  Indicates if the project settings will lead to source branch deletion after merge.
  """
  forceRemoveSourceBranch: Boolean

  """Indicates if the merge request has CI."""
  hasCi: Boolean!

  """Indicates if the source branch has any security reports."""
  hasSecurityReports: Boolean!

  """Pipeline running on the branch HEAD of the merge request."""
  headPipeline: Pipeline

  """
  Indicates the merge request is hidden because the author has been banned.
  """
  hidden: Boolean

  """Human-readable time estimate of the merge request."""
  humanTimeEstimate: String

  """Human-readable total time reported as spent on the merge request."""
  humanTotalTimeSpent: String

  """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

  """
  Work items linked to this merge request (closing or mentioned). Introduced in GitLab 18.10: **Status**: Experiment.
  """
  linkedWorkItems(
    """Filter by link types. Returns all types if not specified."""
    types: [MergeRequestWorkItemLinkType!]
  ): [MergeRequestLinkedWorkItem!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Date after which the merge request can be merged."""
  mergeAfter: Time

  """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!

  """
  Diff versions of a merge request. Introduced in GitLab 16.2: **Status**: Experiment.
  """
  mergeRequestDiffs(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestDiffConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.2.")

  """
  Status of the merge request. Deprecated in GitLab 14.0: This was renamed.
  """
  mergeStatus: String @deprecated(reason: "This was renamed. Please use `MergeRequest.mergeStatusEnum`. Deprecated in GitLab 14.0.")

  """Merge status of the merge request."""
  mergeStatusEnum: MergeStatus

  """
  Represents the merge request in a merge train. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  mergeTrainCar: MergeTrainCar @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Zero-based position of the merge request in the merge train. Returns `null` if
  the merge request is not in a merge train. Deprecated in GitLab 17.4: Use
  `index` on `MergeTrains::CarType` instead.
  """
  mergeTrainIndex: Int @deprecated(reason: "Use `index` on `MergeTrains::CarType` instead. Deprecated in GitLab 17.4.")

  """
  Number of merge requests in the merge train. Deprecated in GitLab 17.4: Use
  `count` from `cars` connection on `MergeTrains::TrainType` instead.
  """
  mergeTrainsCount: Int @deprecated(reason: "Use `count` from `cars` connection on `MergeTrains::TrainType` instead. Deprecated in GitLab 17.4.")

  """User who merged the merge request or set it to auto-merge."""
  mergeUser: UserCore

  """
  Indicates if the merge has been set to auto-merge. Deprecated in GitLab 17.11: This was renamed.
  """
  mergeWhenPipelineSucceeds: Boolean @deprecated(reason: "This was renamed. Please use `MergeRequest.autoMergeEnabled`. Deprecated in GitLab 17.11.")

  """
  Status of all mergeability checks of the merge request. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  mergeabilityChecks: [MergeRequestMergeabilityCheck!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Indicates if the merge request is mergeable."""
  mergeable: 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

  """Milestone of the merge request."""
  milestone: Milestone

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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. This includes the author, assignees, reviewers, and users mentioned in notes.
  """
  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
  ): MergeRequestParticipantConnection

  """Pipeline creation requests for the merge request."""
  pipelineCreationRequests: [CiPipelineCreationRequest!]!

  """
  Pipelines for the merge request. Note: for performance reasons, no more than
  the most recent 500 pipelines will be returned.
  """
  pipelines(
    """Filter pipelines by their status."""
    status: PipelineStatusEnum

    """Filter pipelines by scope."""
    scope: PipelineScopeEnum

    """Filter pipelines by the ref they are run for."""
    ref: String

    """Type of ref."""
    refType: RefType

    """Filter pipelines by the sha of the commit they are run for."""
    sha: String

    """Filter pipelines by their source."""
    source: String

    """Filter pipelines by their Global IDs. Maximum 20 IDs per request."""
    ids: [ID!]

    """Pipelines updated after the date."""
    updatedAfter: Time

    """Pipelines updated before the date."""
    updatedBefore: Time

    """Filter pipelines by the user that triggered the pipeline."""
    username: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineConnection

  """
  Approval settings that are overridden by the policies for the merge request.
  """
  policiesOverridingApprovalSettings: [PolicyApprovalSettingsOverride!]

  """
  List of bypass settings for security policies. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  policyBypassStatuses: [PolicyBypassStatus!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Policy violations reported on the merge request. """
  policyViolations: PolicyViolationDetails

  """Timestamp of when the merge request was prepared."""
  preparedAt: Time

  """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!

  """Number of user discussions that are resolvable in the merge request."""
  resolvableDiscussionsCount: Int

  """Number of user discussions that are resolved in the merge request."""
  resolvedDiscussionsCount: Int

  """Indicates if merge request was retargeted."""
  retargeted: Boolean

  """Users from whom a review has been requested."""
  reviewers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestReviewerConnection

  """
  Indicates if the merge request is created by @GitLab-Security-Bot. Deprecated
  in GitLab 16.11: Security Auto Fix experiment feature was removed. It was
  always hidden behind `security_auto_fix` feature flag.
  """
  securityAutoFix: Boolean @deprecated(reason: "Security Auto Fix experiment feature was removed. It was always hidden behind `security_auto_fix` feature flag. Deprecated in GitLab 16.11.")

  """Indicates if the target branch security reports are out of date."""
  securityReportsUpToDateOnTargetBranch: Boolean!

  """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!

  """Indicates if the source branch is protected."""
  sourceBranchProtected: Boolean!

  """Source project of the merge request."""
  sourceProject: Project

  """ID of the merge request source project."""
  sourceProjectId: Int

  """
  Indicates if the merge request is set to be squashed when merged. [Project settings](https://docs.gitlab.com/user/project/merge_requests/squash_and_merge/#configure-squash-options-for-a-project)
  may override this value. Use `squash_on_merge` instead to take project squash
  options into account.
  """
  squash: Boolean!

  """Indicates if the merge request will be squashed when merged."""
  squashOnMerge: Boolean!

  """Indicates if `squashReadOnly` is enabled."""
  squashReadOnly: Boolean!

  """
  Other open merge requests in the same stack as this merge request, ordered
  from the top of the stack to the bottom. Returns null if this merge request is
  not part of a stack.
  """
  stack: [MergeRequest!]

  """State of the merge request."""
  state: MergeRequestState!

  """
  Indicates if the currently logged in user is subscribed to the merge request.
  """
  subscribed: Boolean!

  """Suggested reviewers for merge request."""
  suggestedReviewers: SuggestedReviewersType

  """Indicates if the merge request supports locked labels."""
  supportsLockOnMerge: Boolean!

  """Target branch of the merge request."""
  targetBranch: String!

  """Indicates if the target branch of the merge request exists."""
  targetBranchExists: Boolean!

  """Path to the target branch of the merge request."""
  targetBranchPath: String

  """Target project of the merge request."""
  targetProject: Project!

  """ID of the merge request target project."""
  targetProjectId: Int!

  """Completion status of tasks"""
  taskCompletionStatus: TaskCompletionStatus!

  """Time estimate of the merge request."""
  timeEstimate: Int!

  """Timelogs on the merge request."""
  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

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): TimelogConnection!

  """Title of the merge request."""
  title: String!

  """HTML rendering of `title`"""
  titleHtml: String

  """Total time (in seconds) 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!

  """Number of user discussions in the merge request."""
  userDiscussionsCount: Int

  """User notes count of the merge request."""
  userNotesCount: Int

  """Permissions for the current user on the resource"""
  userPermissions: MergeRequestPermissions!

  """Web path of the merge request."""
  webPath: String!

  """Web URL of the merge request."""
  webUrl: String
}

"""Autogenerated input type of MergeRequestAccept"""
input MergeRequestAcceptInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """How to merge the merge request."""
  strategy: MergeStrategyEnum

  """Custom merge commit message."""
  commitMessage: String

  """HEAD SHA at the time when the merge was requested."""
  sha: String!

  """Custom squash commit message (if squash is true)."""
  squashCommitMessage: String

  """Should the source branch be removed."""
  shouldRemoveSourceBranch: Boolean

  """Squash commits on the source branch before merge."""
  squash: Boolean = false
}

"""Autogenerated return type of MergeRequestAccept."""
type MergeRequestAcceptPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""
Information relating to rules that must be satisfied to merge this merge request.
"""
type MergeRequestApprovalState {
  """
  Indicates if the merge request approval rules are overwritten for the merge request.
  """
  approvalRulesOverwritten: Boolean

  """
  List of approval rules that are associated with the merge request, but invalid.
  """
  invalidApproversRules: [ApprovalRule!]

  """List of approval rules associated with the merge request."""
  rules: [ApprovalRule!]

  """List of suggested approvers."""
  suggestedApprovers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection
}

"""A user assigned to a merge request."""
type MergeRequestAssignee implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """Details of the user's interactions with the merge request."""
  mergeRequestInteraction: UserMergeRequestInteraction

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

"""The connection type for MergeRequestAssignee."""
type MergeRequestAssigneeConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeRequestAssigneeEdge]

  """A list of nodes."""
  nodes: [MergeRequestAssignee]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeRequestAssigneeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequestAssignee
}

"""The author of the merge request."""
type MergeRequestAuthor implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """Details of the user's interactions with the merge request."""
  mergeRequestInteraction: UserMergeRequestInteraction

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

"""Autogenerated input type of MergeRequestBypassSecurityPolicy"""
input MergeRequestBypassSecurityPolicyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """ID of the security policy to bypass."""
  securityPolicyIds: [ID!]!

  """Reason for bypassing the security policy."""
  reason: String!
}

"""Autogenerated return type of MergeRequestBypassSecurityPolicy."""
type MergeRequestBypassSecurityPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""The connection type for MergeRequest."""
type MergeRequestConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeRequestEdge]

  """A list of nodes."""
  nodes: [MergeRequest]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """
  Total sum of time to merge, in seconds, for the collection of merge requests.
  """
  totalTimeToMerge: Float
}

"""Autogenerated input type of MergeRequestCreate"""
input MergeRequestCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project full path the merge request is associated with."""
  projectPath: ID!

  """Title of the merge request."""
  title: String!

  """Source branch of the merge request."""
  sourceBranch: String!

  """Target branch of the merge request."""
  targetBranch: String!

  """
  Description of the merge request (Markdown rendered as HTML for caching).
  """
  description: String

  """Labels of the merge request."""
  labels: [String!]

  """Date after which the merge request can be merged."""
  mergeAfter: Time

  """
  Indicates if the source branch of the merge request will be deleted after merge.
  """
  removeSourceBranch: Boolean
}

"""Autogenerated return type of MergeRequestCreate."""
type MergeRequestCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestDestroyRequestedChanges"""
input MergeRequestDestroyRequestedChangesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!
}

"""Autogenerated return type of MergeRequestDestroyRequestedChanges."""
type MergeRequestDestroyRequestedChangesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""A diff version of a merge request."""
type MergeRequestDiff {
  """Timestamp of when the diff was created."""
  createdAt: Time!

  """Timestamp of when the diff was updated."""
  updatedAt: Time!
}

"""The connection type for MergeRequestDiff."""
type MergeRequestDiffConnection {
  """A list of edges."""
  edges: [MergeRequestDiffEdge]

  """A list of nodes."""
  nodes: [MergeRequestDiff]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeRequestDiffEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequestDiff
}

"""Represents the Geo sync and verification state of a Merge Request diff"""
type MergeRequestDiffRegistry {
  """
  Indicate if the checksums of the MergeRequestDiffRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the MergeRequestDiffRegistry was created"""
  createdAt: Time

  """Path to the data management view for this MergeRequestDiffRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """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!

  """Indicate if the MergeRequestDiffRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the MergeRequestDiffRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the MergeRequestDiffRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the MergeRequestDiffRegistry
  """
  retryCount: Int

  """Sync state of the MergeRequestDiffRegistry"""
  state: RegistryState

  """The local checksum of the MergeRequestDiffRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the MergeRequestDiffRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the MergeRequestDiffRegistry"""
  verificationFailure: String

  """Timestamp after which the MergeRequestDiffRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the MergeRequestDiffRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of MergeRequestDiffRegistry started"""
  verificationStartedAt: Time

  """Verification state of the MergeRequestDiffRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the MergeRequestDiffRegistry
  """
  verifiedAt: Time
}

"""The connection type for MergeRequestDiffRegistry."""
type MergeRequestDiffRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """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
}

"""An external issue referenced by a merge request"""
type MergeRequestExternalIssue {
  """Reference of the external issue (e.g. JIRA-123)."""
  reference: String!

  """Title of the external issue."""
  title: String

  """URL of the external issue on the external tracker."""
  webUrl: String
}

"""
A `MergeRequestID` is a global ID. It is encoded as a string.

An example `MergeRequestID` is: `"gid://gitlab/MergeRequest/1"`.
"""
scalar MergeRequestID

"""A work item linked to a merge request"""
type MergeRequestLinkedWorkItem {
  """Linked external issue."""
  externalIssue: MergeRequestExternalIssue

  """Type of relationship between the merge request and work item."""
  linkType: MergeRequestWorkItemLinkType!

  """Linked work item."""
  workItem: WorkItem
}

"""Mergeability check of the merge request."""
type MergeRequestMergeabilityCheck {
  """Identifier of the mergeability check."""
  identifier: MergeabilityCheckIdentifier!

  """Status of the mergeability check."""
  status: MergeabilityCheckStatus!
}

"""New state to apply to a merge request."""
enum MergeRequestNewState {
  """Open the merge request if it is closed."""
  OPEN

  """Close the merge request if it is open."""
  CLOSED
}

"""A user participating in a merge request."""
type MergeRequestParticipant implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """Details of the user's interactions with the merge request."""
  mergeRequestInteraction: UserMergeRequestInteraction

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

"""The connection type for MergeRequestParticipant."""
type MergeRequestParticipantConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeRequestParticipantEdge]

  """A list of nodes."""
  nodes: [MergeRequestParticipant]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeRequestParticipantEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequestParticipant
}

"""Check permissions for the current user on a merge request"""
type MergeRequestPermissions {
  """If `true`, the user can perform `admin_merge_request` on this resource"""
  adminMergeRequest: Boolean!

  """If `true`, the user can perform `can_approve` on this resource"""
  canApprove: Boolean!

  """If `true`, the user can perform `can_merge` on this resource"""
  canMerge: Boolean!

  """
  If `true`, the user can perform `cherry_pick_on_current_merge_request` on this resource
  """
  cherryPickOnCurrentMergeRequest: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """
  If `true`, the user can perform `push_to_source_branch` on this resource
  """
  pushToSourceBranch: Boolean!

  """If `true`, the user can perform `read_merge_request` on this resource"""
  readMergeRequest: Boolean!

  """
  If `true`, the user can perform `remove_source_branch` on this resource
  """
  removeSourceBranch: Boolean!

  """
  If `true`, the user can perform `revert_on_current_merge_request` on this resource
  """
  revertOnCurrentMergeRequest: Boolean!

  """
  If `true`, the user can perform `update_merge_request` on this resource
  """
  updateMergeRequest: Boolean!
}

"""Autogenerated input type of MergeRequestRequestChanges"""
input MergeRequestRequestChangesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!
}

"""Autogenerated return type of MergeRequestRequestChanges."""
type MergeRequestRequestChangesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""A user assigned to a merge request as a reviewer."""
type MergeRequestReviewer implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """Details of the user's interactions with the merge request."""
  mergeRequestInteraction: UserMergeRequestInteraction

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

"""The connection type for MergeRequestReviewer."""
type MergeRequestReviewerConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeRequestReviewerEdge]

  """A list of nodes."""
  nodes: [MergeRequestReviewer]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeRequestReviewerEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequestReviewer
}

"""Autogenerated input type of MergeRequestReviewerRereview"""
input MergeRequestReviewerRereviewInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  User ID for the user that has been requested for a new review.
  
  """
  userId: UserID!
}

"""Autogenerated return type of MergeRequestReviewerRereview."""
type MergeRequestReviewerRereviewPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""State of a review of a GitLab merge request."""
enum MergeRequestReviewState {
  """Awaiting review from merge request reviewer."""
  UNREVIEWED

  """Merge request reviewer has reviewed."""
  REVIEWED

  """Merge request reviewer has requested changes."""
  REQUESTED_CHANGES

  """Merge request reviewer has approved the changes."""
  APPROVED

  """Merge request reviewer removed their approval of the changes."""
  UNAPPROVED

  """Merge request reviewer has started a review."""
  REVIEW_STARTED
}

"""
A `MergeRequestsClosingIssuesID` is a global ID. It is encoded as a string.

An example `MergeRequestsClosingIssuesID` is: `"gid://gitlab/MergeRequestsClosingIssues/1"`.
"""
scalar MergeRequestsClosingIssuesID

"""Values for merge request dashboard list type"""
enum MergeRequestsDashboardListType {
  """Action based list rendering."""
  ACTION_BASED

  """Role based list rendering."""
  ROLE_BASED
}

"""Autogenerated input type of MergeRequestSetAssignees"""
input MergeRequestSetAssigneesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Usernames to assign to the resource. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

  """Operation to perform. Defaults to REPLACE."""
  operationMode: MutationOperationMode = REPLACE
}

"""Autogenerated return type of MergeRequestSetAssignees."""
type MergeRequestSetAssigneesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetBlockingMergeRequests"""
input MergeRequestSetBlockingMergeRequestsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Array of blocking merge request references (e.g., "!123", "project!456").
  """
  blockingMergeRequestReferences: [String!]!
}

"""Autogenerated return type of MergeRequestSetBlockingMergeRequests."""
type MergeRequestSetBlockingMergeRequestsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetDraft"""
input MergeRequestSetDraftInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Whether or not to set the merge request as a draft.
  
  """
  draft: Boolean!
}

"""Autogenerated return type of MergeRequestSetDraft."""
type MergeRequestSetDraftPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetLabels"""
input MergeRequestSetLabelsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Label IDs to set. Replaces existing labels by default.
  
  """
  labelIds: [LabelID!]!

  """
  Changes the operation mode. Defaults to REPLACE.
  
  """
  operationMode: MutationOperationMode
}

"""Autogenerated return type of MergeRequestSetLabels."""
type MergeRequestSetLabelsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetLocked"""
input MergeRequestSetLockedInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Whether or not to lock the merge request.
  
  """
  locked: Boolean!
}

"""Autogenerated return type of MergeRequestSetLocked."""
type MergeRequestSetLockedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetMilestone"""
input MergeRequestSetMilestoneInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Milestone to assign to the merge request.
  
  """
  milestoneId: MilestoneID
}

"""Autogenerated return type of MergeRequestSetMilestone."""
type MergeRequestSetMilestonePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetReviewers"""
input MergeRequestSetReviewersInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """
  Usernames of reviewers to assign. Replaces existing reviewers by default.
  """
  reviewerUsernames: [String!]!

  """Operation to perform. Defaults to REPLACE."""
  operationMode: MutationOperationMode = REPLACE
}

"""Autogenerated return type of MergeRequestSetReviewers."""
type MergeRequestSetReviewersPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetSubscription"""
input MergeRequestSetSubscriptionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Desired state of the subscription."""
  subscribedState: Boolean!

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!
}

"""Autogenerated return type of MergeRequestSetSubscription."""
type MergeRequestSetSubscriptionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""
A `MergeRequestsExternalStatusCheckID` is a global ID. It is encoded as a string.

An example `MergeRequestsExternalStatusCheckID` is: `"gid://gitlab/MergeRequests::ExternalStatusCheck/1"`.
"""
scalar MergeRequestsExternalStatusCheckID

"""Values for sorting merge requests"""
enum MergeRequestSort {
  """Merge time by ascending order."""
  MERGED_AT_ASC

  """Merge time by descending order."""
  MERGED_AT_DESC

  """Closed time by ascending order."""
  CLOSED_AT_ASC

  """Closed time by descending order."""
  CLOSED_AT_DESC

  """Title by ascending order."""
  TITLE_ASC

  """Title by descending order."""
  TITLE_DESC

  """Number of upvotes (awarded "thumbs up" emoji) by ascending order."""
  POPULARITY_ASC

  """Number of upvotes (awarded "thumbs up" emoji) by descending order."""
  POPULARITY_DESC

  """Priority by ascending order."""
  PRIORITY_ASC

  """Priority by descending order."""
  PRIORITY_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

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

input MergeRequestsResolverNegatedParams {
  """
  Filters merge requests to exclude any that are approved by usernames in the given array.
  """
  approvedBy: [String!]

  """
  Filters merge requests to exclude any that are assigned to the usernames in the given array.
  """
  assigneeUsernames: [String!]

  """
  Filters merge requests to exclude any that are authored by the given user.
  """
  authorUsername: String

  """
  Filters merge requests to exclude any that have the labels provided in the given array.
  """
  labelName: [String!]

  """
  Filters merge requests to exclude any that have the labels provided in the
  given array. Deprecated in GitLab 17.7: Use `labelName`.
  """
  labels: [String!]

  """Filters merge requests to those not in the given milestone."""
  milestoneTitle: String

  """
  Filters merge requests to those without the given reaction from the authenticated user.
  """
  myReactionEmoji: String

  """
  Filters out merge requests to those that do not have the reviewer as the only
  assigned reviewer. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  onlyReviewer: Boolean

  """Filters merge requests to those without the given release tag."""
  releaseTag: String

  """
  Filters merge requests to those where a reviewer does not have the provided
  state. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  reviewStates: [MergeRequestReviewState!]

  """Filters merge requests to those not reviewed by the given user."""
  reviewerUsername: String

  """
  Filters merge requests to exclude the source branch names provided in the given array.
  """
  sourceBranches: [String!]

  """
  Filters merge requests to exclude the target branch names provided in the given array.
  """
  targetBranches: [String!]
}

"""State of a GitLab merge request"""
enum MergeRequestState {
  """Merge request has been merged."""
  merged

  """Opened merge request."""
  opened

  """In closed state."""
  closed

  """Discussion has been locked."""
  locked

  """All available."""
  all
}

"""Autogenerated input type of MergeRequestUpdateApprovalRule"""
input MergeRequestUpdateApprovalRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """Number of required approvals for a given rule."""
  approvalsRequired: Int!

  """ID of an approval rule."""
  approvalRuleId: Int!

  """Name of the approval rule."""
  name: String!

  """IDs of groups as approvers."""
  groupIds: [String!] = []

  """IDs of users as approvers."""
  userIds: [String!] = []

  """Whether hidden groups should be removed."""
  removeHiddenGroups: Boolean = false
}

"""Autogenerated return type of MergeRequestUpdateApprovalRule."""
type MergeRequestUpdateApprovalRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestUpdate"""
input MergeRequestUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """Title of the merge request."""
  title: String

  """Target branch of the merge request."""
  targetBranch: String

  """
  Description of the merge request (Markdown rendered as HTML for caching).
  """
  description: String

  """Action to perform to change the state."""
  state: MergeRequestNewState

  """
  Estimated time to complete the merge request. Use `null` or `0` to remove the current estimate.
  """
  timeEstimate: String

  """Date after which the merge request can be merged."""
  mergeAfter: Time

  """
  Indicates if the source branch of the merge request will be deleted after merge.
  """
  removeSourceBranch: Boolean

  """
  Override all requested changes. Can only be set by users who have permissionto merge this merge request.
  """
  overrideRequestedChanges: Boolean
}

"""Autogenerated return type of MergeRequestUpdate."""
type MergeRequestUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Type of relationship between a merge request and a work item"""
enum MergeRequestWorkItemLinkType {
  """Work item will be closed when the merge request is merged."""
  CLOSES

  """Work item is mentioned in the merge request but will not be closed."""
  MENTIONED
}

"""Representation of whether a GitLab merge request can be merged."""
enum MergeStatus {
  """Merge status has not been checked."""
  UNCHECKED

  """Currently checking for mergeability."""
  CHECKING

  """There are no conflicts between the source and target branches."""
  CAN_BE_MERGED

  """There are conflicts between the source and target branches."""
  CANNOT_BE_MERGED

  """Currently unchecked. The previous state was `CANNOT_BE_MERGED`."""
  CANNOT_BE_MERGED_RECHECK
}

enum MergeStrategyEnum {
  """Use the merge_train merge strategy."""
  MERGE_TRAIN

  """Use the add_to_merge_train_when_checks_pass merge strategy."""
  ADD_TO_MERGE_TRAIN_WHEN_CHECKS_PASS

  """Use the merge_when_checks_pass merge strategy."""
  MERGE_WHEN_CHECKS_PASS
}

"""Represents a set of cars/merge_requests queued for merging"""
type MergeTrain {
  """
  Cars queued in the train. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  cars(
    """Filter by the high-level status of the cars. Defaults to ACTIVE."""
    activityStatus: MergeTrainStatus! = ACTIVE

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeTrainCarConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """Target branch of the car's merge request."""
  targetBranch: String!
}

"""
MergeTrainCar represents an attempt to merge a merge requestusing merge trains.
"""
type MergeTrainCar {
  """Timestamp of when the car was created."""
  createdAt: Time!

  """Duration of the car."""
  duration: Int

  """Global ID of the car."""
  id: MergeTrainsCarID!

  """
  Zero-based position of the car in the merge train. Returns `null` if the car is not active in a merge train.
  """
  index: Int

  """Merge request the car contains."""
  mergeRequest: MergeRequest!

  """Timestamp of when the car was merged."""
  mergedAt: Time

  """Pipeline of the car."""
  pipeline: Pipeline

  """Status of the car."""
  status: CarStatus!

  """Target branch of the car's merge request."""
  targetBranch: String!

  """Project the car's MR targets."""
  targetProject: Project!

  """Timestamp of when the car was last updated."""
  updatedAt: Time!

  """Creator of the car (user who added the merge request to the train)."""
  user: UserCore!

  """Permissions for the current user on the resource"""
  userPermissions: CarPermissions!
}

"""The connection type for MergeTrainCar."""
type MergeTrainCarConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeTrainCarEdge]

  """A list of nodes."""
  nodes: [MergeTrainCar]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeTrainCarEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeTrainCar
}

"""The connection type for MergeTrain."""
type MergeTrainConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [MergeTrainEdge]

  """A list of nodes."""
  nodes: [MergeTrain]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeTrainEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeTrain
}

"""Merge train enforcement levels for a project."""
enum MergeTrainEnforcement {
  """
  Users with permission to merge can bypass the merge train through the UI or API.
  """
  ALLOW_BYPASS

  """
  All merge requests must go through the merge train. The merge train cannot be bypassed.
  """
  ENFORCE_FOR_ALL_USERS

  """
  All merge requests must go through the merge train. Owners and administrators
  can bypass the merge train for individual merge requests.
  """
  ENFORCE_WITH_OWNER_OVERRIDE
}

"""
A `MergeTrainsCarID` is a global ID. It is encoded as a string.

An example `MergeTrainsCarID` is: `"gid://gitlab/MergeTrains::Car/1"`.
"""
scalar MergeTrainsCarID

"""Autogenerated input type of MergeTrainsDeleteCar"""
input MergeTrainsDeleteCarInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the car."""
  carId: MergeTrainsCarID!
}

"""Autogenerated return type of MergeTrainsDeleteCar."""
type MergeTrainsDeleteCarPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

enum MergeTrainStatus {
  """Active merge train."""
  ACTIVE

  """Completed merge train."""
  COMPLETED
}

type Metadata {
  """Enterprise edition."""
  enterprise: Boolean!

  """
  Feature flags for the GitLab instance. External API consumers should read the [feature flag guidance](https://docs.gitlab.com/development/feature_flags/#do-not-use-feature-flags-in-external-api-consumers)
  before using this field. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  featureFlags(
    """Names of the feature flags to lookup (maximum of 20)."""
    names: [String!]!
  ): [GitlabInstanceFeatureFlag!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Metadata about KAS."""
  kas: Kas!

  """Revision."""
  revision: String!

  """Version."""
  version: String!
}

"""Represents a metric image upload"""
type MetricImage {
  """File name of the metric image."""
  fileName: String

  """File path of the metric image."""
  filePath: String

  """ID of the metric upload."""
  id: ID!

  """Internal ID of the metric upload."""
  iid: String!

  """URL of the metric source."""
  url: 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
}

"""Represents a milestone"""
type Milestone implements TimeboxReportInterface {
  """Timestamp of milestone creation."""
  createdAt: Time!

  """Description of the milestone."""
  description: String

  """Timestamp of the milestone due date."""
  dueDate: Time

  """
  Expired state of the milestone (a milestone is expired when the due date is
  past the current date). Defaults to `false` when due date has not been set.
  """
  expired: Boolean!

  """Group of the milestone."""
  group: Group

  """Indicates if milestone is at group level."""
  groupMilestone: Boolean!

  """ID of the milestone."""
  id: ID!

  """Internal ID of the milestone."""
  iid: ID!

  """Project of the milestone."""
  project: Project

  """Indicates if milestone is at project level."""
  projectMilestone: Boolean!

  """Releases associated with the milestone."""
  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

  """Historically accurate report about the timebox."""
  report(
    """
    Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`.
    """
    fullPath: String
  ): TimeboxReport

  """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!

  """
  Upcoming state of the milestone (a milestone is upcoming when the start date
  is in the future). Defaults to `false` when start date has not been set.
  """
  upcoming: Boolean!

  """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
}

"""
A `MilestoneID` is a global ID. It is encoded as a string.

An example `MilestoneID` is: `"gid://gitlab/Milestone/1"`.
"""
scalar MilestoneID

"""Values for sorting milestones"""
enum MilestoneSort {
  """Milestone due date by ascending order."""
  DUE_DATE_ASC

  """Milestone due date by descending order."""
  DUE_DATE_DESC

  """
  Group milestones in the order: non-expired milestones with due dates,
  non-expired milestones without due dates and expired milestones then sort by
  due date in ascending order.
  """
  EXPIRED_LAST_DUE_DATE_ASC

  """
  Group milestones in the order: non-expired milestones with due dates,
  non-expired milestones without due dates and expired milestones then sort by
  due date in descending order.
  """
  EXPIRED_LAST_DUE_DATE_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Current state of milestone"""
enum MilestoneStateEnum {
  """Milestone is currently active."""
  active

  """Milestone is closed."""
  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
}

"""Milestone ID wildcard values"""
enum MilestoneWildcardId {
  """No milestone is assigned."""
  NONE

  """Milestone is assigned."""
  ANY

  """
  Milestone assigned is open and started (overlaps current date). This differs
  from the behavior in the [REST API
  implementation](https://docs.gitlab.com/api/issues/#list-issues).
  """
  STARTED

  """
  Milestone assigned starts in the future (start date > today). This differs
  from the behavior in the [REST API
  implementation](https://docs.gitlab.com/api/issues/#list-issues).
  """
  UPCOMING
}

"""Candidate for a model version in the model registry"""
type MlCandidate {
  """Map of links to perform actions on the candidate."""
  _links: MLCandidateLinks!

  """CI information about the job that created the candidate."""
  ciJob: CiJob

  """Date of creation."""
  createdAt: Time!

  """User that created the candidate."""
  creator: UserCore

  """MLflow uuid for the candidate."""
  eid: String!

  """ID of the candidate."""
  id: MlCandidateID!

  """IID of the candidate scoped to project."""
  iid: Int!

  """Metadata entries for the candidate."""
  metadata(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlCandidateMetadataConnection!

  """Metrics for the candidate."""
  metrics(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlCandidateMetricConnection!

  """Name of the candidate."""
  name: String

  """Parameters for the candidate."""
  params(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlCandidateParamConnection!

  """Candidate status."""
  status: String
}

"""The connection type for MlCandidate."""
type MlCandidateConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlCandidateEdge]

  """A list of nodes."""
  nodes: [MlCandidate]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MlCandidateEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlCandidate
}

"""
A `MlCandidateID` is a global ID. It is encoded as a string.

An example `MlCandidateID` is: `"gid://gitlab/Ml::Candidate/1"`.
"""
scalar MlCandidateID

"""Represents links to perform actions on the candidate"""
type MLCandidateLinks {
  """Path to the artifact."""
  artifactPath: String

  """Path to the details page of the candidate."""
  showPath: String
}

"""Metadata for a candidate in the model registry"""
type MlCandidateMetadata {
  """ID of the metadata."""
  id: MlCandidateMetadataID!

  """Name of the metadata entry."""
  name: String

  """Value set for the metadata entry."""
  value: String!
}

"""The connection type for MlCandidateMetadata."""
type MlCandidateMetadataConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlCandidateMetadataEdge]

  """A list of nodes."""
  nodes: [MlCandidateMetadata]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MlCandidateMetadataEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlCandidateMetadata
}

"""
A `MlCandidateMetadataID` is a global ID. It is encoded as a string.

An example `MlCandidateMetadataID` is: `"gid://gitlab/Ml::CandidateMetadata/1"`.
"""
scalar MlCandidateMetadataID

"""Metric for a candidate in the model registry"""
type MlCandidateMetric {
  """ID of the metric."""
  id: MlCandidateMetricID!

  """Name of the metric."""
  name: String

  """Step at which the metric was measured."""
  step: Int!

  """Value set for the metric."""
  value: Float!
}

"""The connection type for MlCandidateMetric."""
type MlCandidateMetricConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlCandidateMetricEdge]

  """A list of nodes."""
  nodes: [MlCandidateMetric]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MlCandidateMetricEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlCandidateMetric
}

"""
A `MlCandidateMetricID` is a global ID. It is encoded as a string.

An example `MlCandidateMetricID` is: `"gid://gitlab/Ml::CandidateMetric/1"`.
"""
scalar MlCandidateMetricID

"""Parameter for a candidate in the model registry"""
type MlCandidateParam {
  """ID of the parameter."""
  id: MlCandidateParamID!

  """Name of the parameter."""
  name: String

  """Value set for the parameter."""
  value: String!
}

"""The connection type for MlCandidateParam."""
type MlCandidateParamConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlCandidateParamEdge]

  """A list of nodes."""
  nodes: [MlCandidateParam]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MlCandidateParamEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlCandidateParam
}

"""
A `MlCandidateParamID` is a global ID. It is encoded as a string.

An example `MlCandidateParamID` is: `"gid://gitlab/Ml::CandidateParam/1"`.
"""
scalar MlCandidateParamID

"""Machine learning experiment in model experiments"""
type MlExperiment {
  """Number of candidates in the experiment."""
  candidateCount: Int!

  """Candidates of the experiment."""
  candidates(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlCandidateConnection

  """Timestamp of when the experiment was created."""
  createdAt: Time!

  """User who created the experiment."""
  creator: UserCore

  """ID of the experiment."""
  id: MlExperimentID!

  """ID of the model."""
  modelId: MlModelID

  """Name of the experiment."""
  name: String!

  """Web URL of the experiment."""
  path: String!

  """Timestamp of when the experiment was updated."""
  updatedAt: Time!
}

"""The connection type for MlExperiment."""
type MlExperimentConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlExperimentEdge]

  """A list of nodes."""
  nodes: [MlExperiment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MlExperimentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlExperiment
}

"""
A `MlExperimentID` is a global ID. It is encoded as a string.

An example `MlExperimentID` is: `"gid://gitlab/Ml::Experiment/1"`.
"""
scalar MlExperimentID

"""Machine learning model in the model registry"""
type MlModel {
  """Map of links to perform actions on the model."""
  _links: MLModelLinks!

  """User that created the model."""
  author: UserCore

  """Count of candidates in the model."""
  candidateCount: Int

  """Version candidates of the model."""
  candidates(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlCandidateConnection

  """Date of creation."""
  createdAt: Time!

  """Path to default experiment page for the model."""
  defaultExperimentPath: String

  """Description of the model."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """ID of the model."""
  id: MlModelID!

  """Latest version of the model."""
  latestVersion: MlModelVersion

  """Name of the model."""
  name: String!

  """Version of the model."""
  version(
    """Id of the version to be fetched."""
    modelVersionId: MlModelVersionID
  ): MlModelVersion

  """Count of versions in the model."""
  versionCount: Int

  """Versions of the model."""
  versions(
    """Search for versions where the name includes the string."""
    version: String

    """Ordering column. Default is created_at."""
    orderBy: MlModelVersionsOrderBy

    """Ordering column. Default is desc."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlModelVersionConnection
}

"""The connection type for MlModel."""
type MlModelConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlModelEdge]

  """A list of nodes."""
  nodes: [MlModel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of MlModelCreate"""
input MlModelCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Name of the model."""
  name: String!

  """Description of the model."""
  description: String
}

"""Autogenerated return type of MlModelCreate."""
type MlModelCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model after mutation."""
  model: MlModel
}

"""Autogenerated input type of MlModelDelete"""
input MlModelDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Global ID of the model to be deleted."""
  id: MlModelID!
}

"""Autogenerated return type of MlModelDelete."""
type MlModelDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model after mutation."""
  model: MlModel
}

"""Autogenerated input type of MlModelDestroy"""
input MlModelDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Global ID of the model to be deleted."""
  id: MlModelID!
}

"""Autogenerated return type of MlModelDestroy."""
type MlModelDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model deletion result message."""
  message: String

  """Model after mutation."""
  model: MlModel
}

"""An edge in a connection."""
type MlModelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlModel
}

"""Autogenerated input type of MlModelEdit"""
input MlModelEditInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Id of the model."""
  modelId: Int

  """Name of the model."""
  name: String!

  """Description of the model."""
  description: String
}

"""Autogenerated return type of MlModelEdit."""
type MlModelEditPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model after mutation."""
  model: MlModel
}

"""
A `MlModelID` is a global ID. It is encoded as a string.

An example `MlModelID` is: `"gid://gitlab/Ml::Model/1"`.
"""
scalar MlModelID

"""Represents links to perform actions on the model"""
type MLModelLinks {
  """Path to the details page of the model."""
  showPath: String
}

"""Values for ordering machine learning models by a specific field"""
enum MlModelsOrderBy {
  """Ordered by name."""
  NAME

  """Ordered by creation time."""
  CREATED_AT

  """Ordered by update time."""
  UPDATED_AT

  """Ordered by id."""
  ID
}

"""Version of a machine learning model"""
type MlModelVersion {
  """Map of links to perform actions on the model version."""
  _links: MLModelVersionLinks!

  """Number of files in the package."""
  artifactsCount: Int

  """User that created the model version."""
  author: UserCore

  """Metrics, params and metadata for the model version."""
  candidate: MlCandidate!

  """Date of creation."""
  createdAt: Time!

  """Description of the version."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """ID of the model version."""
  id: MlModelVersionID!

  """Package for model version artifacts."""
  packageId: PackagesPackageID!

  """Name of the version."""
  version: String!
}

"""The connection type for MlModelVersion."""
type MlModelVersionConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [MlModelVersionEdge]

  """A list of nodes."""
  nodes: [MlModelVersion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of MlModelVersionCreate"""
input MlModelVersionCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Global ID of the model the version belongs to."""
  modelId: MlModelID!

  """Model version."""
  version: String

  """Description of the model version."""
  description: String

  """Global ID of a candidate to promote optionally."""
  candidateId: MlCandidateID
}

"""Autogenerated return type of MlModelVersionCreate."""
type MlModelVersionCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model after mutation."""
  modelVersion: MlModelVersion
}

"""Autogenerated input type of MlModelVersionDelete"""
input MlModelVersionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the model version to be deleted."""
  id: MlModelVersionID!
}

"""Autogenerated return type of MlModelVersionDelete."""
type MlModelVersionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted model version."""
  modelVersion: MlModelVersion
}

"""An edge in a connection."""
type MlModelVersionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MlModelVersion
}

"""Autogenerated input type of MlModelVersionEdit"""
input MlModelVersionEditInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the model to mutate is in."""
  projectPath: ID!

  """Global ID of the model the version belongs to."""
  modelId: MlModelID!

  """Model version."""
  version: String!

  """Description of the model version."""
  description: String!
}

"""Autogenerated return type of MlModelVersionEdit."""
type MlModelVersionEditPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Model after mutation."""
  modelVersion: MlModelVersion
}

"""
A `MlModelVersionID` is a global ID. It is encoded as a string.

An example `MlModelVersionID` is: `"gid://gitlab/Ml::ModelVersion/1"`.
"""
scalar MlModelVersionID

"""Represents links to perform actions on the model version"""
type MLModelVersionLinks {
  """File upload path for the machine learning model."""
  importPath: String

  """Path to the package of the model version."""
  packagePath: String

  """Path to the details page of the model version."""
  showPath: String
}

"""Field names for ordering machine learning model versions"""
enum MlModelVersionsOrderBy {
  """Ordered by name."""
  VERSION

  """Ordered by creation time."""
  CREATED_AT

  """Ordered by id."""
  ID
}

"""The position to which the adjacent object should be moved"""
enum MoveType {
  """Adjacent object is moved before the object that is being moved."""
  before

  """Adjacent object is moved after the object that is being moved."""
  after
}

type Mutation {
  achievementsAward(
    """Parameters for AchievementsAward"""
    input: AchievementsAwardInput!
  ): AchievementsAwardPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")
  achievementsCreate(
    """Parameters for AchievementsCreate"""
    input: AchievementsCreateInput!
  ): AchievementsCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")
  achievementsDelete(
    """Parameters for AchievementsDelete"""
    input: AchievementsDeleteInput!
  ): AchievementsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")
  achievementsRevoke(
    """Parameters for AchievementsRevoke"""
    input: AchievementsRevokeInput!
  ): AchievementsRevokePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")
  achievementsUpdate(
    """Parameters for AchievementsUpdate"""
    input: AchievementsUpdateInput!
  ): AchievementsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")
  addProjectToSecurityDashboard(
    """Parameters for AddProjectToSecurityDashboard"""
    input: AddProjectToSecurityDashboardInput!
  ): AddProjectToSecurityDashboardPayload
  adminRolesLdapSync(
    """Parameters for AdminRolesLdapSync"""
    input: AdminRolesLdapSyncInput!
  ): AdminRolesLdapSyncPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")
  adminSidekiqQueuesDeleteJobs(
    """Parameters for AdminSidekiqQueuesDeleteJobs"""
    input: AdminSidekiqQueuesDeleteJobsInput!
  ): AdminSidekiqQueuesDeleteJobsPayload
  aiAction(
    """Parameters for AiAction"""
    input: AiActionInput!
  ): AiActionPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")
  aiCatalogAgentCreate(
    """Parameters for AiCatalogAgentCreate"""
    input: AiCatalogAgentCreateInput!
  ): AiCatalogAgentCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
  aiCatalogAgentDelete(
    """Parameters for AiCatalogAgentDelete"""
    input: AiCatalogAgentDeleteInput!
  ): AiCatalogAgentDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
  aiCatalogAgentUpdate(
    """Parameters for AiCatalogAgentUpdate"""
    input: AiCatalogAgentUpdateInput!
  ): AiCatalogAgentUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogFlowCreate(
    """Parameters for AiCatalogFlowCreate"""
    input: AiCatalogFlowCreateInput!
  ): AiCatalogFlowCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogFlowDelete(
    """Parameters for AiCatalogFlowDelete"""
    input: AiCatalogFlowDeleteInput!
  ): AiCatalogFlowDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogFlowUpdate(
    """Parameters for AiCatalogFlowUpdate"""
    input: AiCatalogFlowUpdateInput!
  ): AiCatalogFlowUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogItemConsumerBulkCreate(
    """Parameters for AiCatalogItemConsumerBulkCreate"""
    input: AiCatalogItemConsumerBulkCreateInput!
  ): AiCatalogItemConsumerBulkCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  aiCatalogItemConsumerCreate(
    """Parameters for AiCatalogItemConsumerCreate"""
    input: AiCatalogItemConsumerCreateInput!
  ): AiCatalogItemConsumerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogItemConsumerDelete(
    """Parameters for AiCatalogItemConsumerDelete"""
    input: AiCatalogItemConsumerDeleteInput!
  ): AiCatalogItemConsumerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogItemConsumerUpdate(
    """Parameters for AiCatalogItemConsumerUpdate"""
    input: AiCatalogItemConsumerUpdateInput!
  ): AiCatalogItemConsumerUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiCatalogItemReport(
    """Parameters for AiCatalogItemReport"""
    input: AiCatalogItemReportInput!
  ): AiCatalogItemReportPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
  aiCatalogItemStar(
    """Parameters for AiCatalogItemStar"""
    input: AiCatalogItemStarInput!
  ): AiCatalogItemStarPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  aiCatalogItemVersionRestore(
    """Parameters for AiCatalogItemVersionRestore"""
    input: AiCatalogItemVersionRestoreInput!
  ): AiCatalogItemVersionRestorePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  aiCatalogMcpServerCreate(
    """Parameters for AiCatalogMcpServerCreate"""
    input: AiCatalogMcpServerCreateInput!
  ): AiCatalogMcpServerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  aiCatalogMcpServerUpdate(
    """Parameters for AiCatalogMcpServerUpdate"""
    input: AiCatalogMcpServerUpdateInput!
  ): AiCatalogMcpServerUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  aiCatalogThirdPartyFlowCreate(
    """Parameters for AiCatalogThirdPartyFlowCreate"""
    input: AiCatalogThirdPartyFlowCreateInput!
  ): AiCatalogThirdPartyFlowCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")
  aiCatalogThirdPartyFlowDelete(
    """Parameters for AiCatalogThirdPartyFlowDelete"""
    input: AiCatalogThirdPartyFlowDeleteInput!
  ): AiCatalogThirdPartyFlowDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")
  aiCatalogThirdPartyFlowUpdate(
    """Parameters for AiCatalogThirdPartyFlowUpdate"""
    input: AiCatalogThirdPartyFlowUpdateInput!
  ): AiCatalogThirdPartyFlowUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Adds or removes domains from the allowed or denied list for flows running in a
  sandboxed environment. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiDomainSettingsInstanceUpdate(
    """Parameters for AiDomainSettingsInstanceUpdate"""
    input: AiDomainSettingsInstanceUpdateInput!
  ): AiDomainSettingsInstanceUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Adds or removes domains from the allowed or denied list for flows running in a
  sandboxed environment. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiDomainSettingsNamespaceUpdate(
    """Parameters for AiDomainSettingsNamespaceUpdate"""
    input: AiDomainSettingsNamespaceUpdateInput!
  ): AiDomainSettingsNamespaceUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
  aiDuoWorkflowCreate(
    """Parameters for AiDuoWorkflowCreate"""
    input: AiDuoWorkflowCreateInput!
  ): AiDuoWorkflowCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Updates the instance-level model selection allowlist for an AI feature. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  aiFeatureSettingModelAllowlistUpdate(
    """Parameters for AiFeatureSettingModelAllowlistUpdate"""
    input: AiFeatureSettingModelAllowlistUpdateInput!
  ): AiFeatureSettingModelAllowlistUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Updates or creates settings for AI features. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  aiFeatureSettingUpdate(
    """Parameters for AiFeatureSettingUpdate"""
    input: AiFeatureSettingUpdateInput!
  ): AiFeatureSettingUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
  aiFlowTriggerCreate(
    """Parameters for AiFlowTriggerCreate"""
    input: AiFlowTriggerCreateInput!
  ): AiFlowTriggerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiFlowTriggerDelete(
    """Parameters for AiFlowTriggerDelete"""
    input: AiFlowTriggerDeleteInput!
  ): AiFlowTriggerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  aiFlowTriggerUpdate(
    """Parameters for AiFlowTriggerUpdate"""
    input: AiFlowTriggerUpdateInput!
  ): AiFlowTriggerUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Updates the namespace-level model selection allowlist for an AI feature.
  Introduced in GitLab 19.1: **Status**: Experiment.
  """
  aiModelSelectionNamespaceModelAllowlistUpdate(
    """Parameters for AiModelSelectionNamespaceModelAllowlistUpdate"""
    input: AiModelSelectionNamespaceModelAllowlistUpdateInput!
  ): AiModelSelectionNamespaceModelAllowlistUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Updates or creates settings for AI features for a namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  aiModelSelectionNamespaceUpdate(
    """Parameters for AiModelSelectionNamespaceUpdate"""
    input: AiModelSelectionNamespaceUpdateInput!
  ): AiModelSelectionNamespaceUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Checks if the AI Gateway can establish a connection with the given model
  configuration. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  aiSelfHostedModelConnectionCheck(
    """Parameters for AiSelfHostedModelConnectionCheck"""
    input: AiSelfHostedModelConnectionCheckInput!
  ): AiSelfHostedModelConnectionCheckPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")
  aiSelfHostedModelCreate(
    """Parameters for AiSelfHostedModelCreate"""
    input: AiSelfHostedModelCreateInput!
  ): AiSelfHostedModelCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """
  Deletes a self-hosted model. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  aiSelfHostedModelDelete(
    """Parameters for AiSelfHostedModelDelete"""
    input: AiSelfHostedModelDeleteInput!
  ): AiSelfHostedModelDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Updates a self-hosted model. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  aiSelfHostedModelUpdate(
    """Parameters for AiSelfHostedModelUpdate"""
    input: AiSelfHostedModelUpdateInput!
  ): AiSelfHostedModelUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  alertSetAssignees(
    """Parameters for AlertSetAssignees"""
    input: AlertSetAssigneesInput!
  ): AlertSetAssigneesPayload
  alertTodoCreate(
    """Parameters for AlertTodoCreate"""
    input: AlertTodoCreateInput!
  ): AlertTodoCreatePayload
  approvalProjectRuleDelete(
    """Parameters for approvalProjectRuleDelete"""
    input: approvalProjectRuleDeleteInput!
  ): approvalProjectRuleDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  approvalProjectRuleUpdate(
    """Parameters for approvalProjectRuleUpdate"""
    input: approvalProjectRuleUpdateInput!
  ): approvalProjectRuleUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  approveDeployment(
    """Parameters for ApproveDeployment"""
    input: ApproveDeploymentInput!
  ): ApproveDeploymentPayload
  artifactDestroy(
    """Parameters for ArtifactDestroy"""
    input: ArtifactDestroyInput!
  ): ArtifactDestroyPayload
  ascpComponentCreate(
    """Parameters for AscpComponentCreate"""
    input: AscpComponentCreateInput!
  ): AscpComponentCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  ascpScanCreate(
    """Parameters for AscpScanCreate"""
    input: AscpScanCreateInput!
  ): AscpScanCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  ascpSecurityContextCreate(
    """Parameters for AscpSecurityContextCreate"""
    input: AscpSecurityContextCreateInput!
  ): AscpSecurityContextCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  auditEventsAmazonS3ConfigurationCreate(
    """Parameters for AuditEventsAmazonS3ConfigurationCreate"""
    input: AuditEventsAmazonS3ConfigurationCreateInput!
  ): AuditEventsAmazonS3ConfigurationCreatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsCreate` with `amazonS3` category instead. Deprecated in GitLab 18.10.")
  auditEventsAmazonS3ConfigurationDelete(
    """Parameters for AuditEventsAmazonS3ConfigurationDelete"""
    input: AuditEventsAmazonS3ConfigurationDeleteInput!
  ): AuditEventsAmazonS3ConfigurationDeletePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  auditEventsAmazonS3ConfigurationUpdate(
    """Parameters for AuditEventsAmazonS3ConfigurationUpdate"""
    input: AuditEventsAmazonS3ConfigurationUpdateInput!
  ): AuditEventsAmazonS3ConfigurationUpdatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")
  auditEventsGroupDestinationDenylistEventsAdd(
    """Parameters for AuditEventsGroupDestinationDenylistEventsAdd"""
    input: AuditEventsGroupDestinationDenylistEventsAddInput!
  ): AuditEventsGroupDestinationDenylistEventsAddPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  auditEventsGroupDestinationDenylistEventsDelete(
    """Parameters for AuditEventsGroupDestinationDenylistEventsDelete"""
    input: AuditEventsGroupDestinationDenylistEventsDeleteInput!
  ): AuditEventsGroupDestinationDenylistEventsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  auditEventsGroupDestinationEventsAdd(
    """Parameters for AuditEventsGroupDestinationEventsAdd"""
    input: AuditEventsGroupDestinationEventsAddInput!
  ): AuditEventsGroupDestinationEventsAddPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsGroupDestinationEventsDelete(
    """Parameters for AuditEventsGroupDestinationEventsDelete"""
    input: AuditEventsGroupDestinationEventsDeleteInput!
  ): AuditEventsGroupDestinationEventsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsGroupDestinationNamespaceFilterCreate(
    """Parameters for AuditEventsGroupDestinationNamespaceFilterCreate"""
    input: AuditEventsGroupDestinationNamespaceFilterCreateInput!
  ): AuditEventsGroupDestinationNamespaceFilterCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsGroupDestinationNamespaceFilterDelete(
    """Parameters for AuditEventsGroupDestinationNamespaceFilterDelete"""
    input: AuditEventsGroupDestinationNamespaceFilterDeleteInput!
  ): AuditEventsGroupDestinationNamespaceFilterDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsInstanceAmazonS3ConfigurationCreate(
    """Parameters for AuditEventsInstanceAmazonS3ConfigurationCreate"""
    input: AuditEventsInstanceAmazonS3ConfigurationCreateInput!
  ): AuditEventsInstanceAmazonS3ConfigurationCreatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsCreate` with `amazonS3` category instead. Deprecated in GitLab 18.10.")
  auditEventsInstanceAmazonS3ConfigurationDelete(
    """Parameters for AuditEventsInstanceAmazonS3ConfigurationDelete"""
    input: AuditEventsInstanceAmazonS3ConfigurationDeleteInput!
  ): AuditEventsInstanceAmazonS3ConfigurationDeletePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  auditEventsInstanceAmazonS3ConfigurationUpdate(
    """Parameters for AuditEventsInstanceAmazonS3ConfigurationUpdate"""
    input: AuditEventsInstanceAmazonS3ConfigurationUpdateInput!
  ): AuditEventsInstanceAmazonS3ConfigurationUpdatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")
  auditEventsInstanceDestinationEventsAdd(
    """Parameters for AuditEventsInstanceDestinationEventsAdd"""
    input: AuditEventsInstanceDestinationEventsAddInput!
  ): AuditEventsInstanceDestinationEventsAddPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsInstanceDestinationEventsDelete(
    """Parameters for AuditEventsInstanceDestinationEventsDelete"""
    input: AuditEventsInstanceDestinationEventsDeleteInput!
  ): AuditEventsInstanceDestinationEventsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  auditEventsInstanceDestinationNamespaceFilterCreate(
    """Parameters for AuditEventsInstanceDestinationNamespaceFilterCreate"""
    input: AuditEventsInstanceDestinationNamespaceFilterCreateInput!
  ): AuditEventsInstanceDestinationNamespaceFilterCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  auditEventsInstanceDestinationNamespaceFilterDelete(
    """Parameters for AuditEventsInstanceDestinationNamespaceFilterDelete"""
    input: AuditEventsInstanceDestinationNamespaceFilterDeleteInput!
  ): AuditEventsInstanceDestinationNamespaceFilterDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  auditEventsStreamingDestinationEventsAdd(
    """Parameters for AuditEventsStreamingDestinationEventsAdd"""
    input: AuditEventsStreamingDestinationEventsAddInput!
  ): AuditEventsStreamingDestinationEventsAddPayload @deprecated(reason: "Use `auditEventsGroupDestinationEventsAdd` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingDestinationEventsRemove(
    """Parameters for AuditEventsStreamingDestinationEventsRemove"""
    input: AuditEventsStreamingDestinationEventsRemoveInput!
  ): AuditEventsStreamingDestinationEventsRemovePayload @deprecated(reason: "Use `auditEventsGroupDestinationEventsRemove` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingDestinationInstanceEventsAdd(
    """Parameters for AuditEventsStreamingDestinationInstanceEventsAdd"""
    input: AuditEventsStreamingDestinationInstanceEventsAddInput!
  ): AuditEventsStreamingDestinationInstanceEventsAddPayload @deprecated(reason: "Use `auditEventsInstanceDestinationEventsAdd` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingDestinationInstanceEventsRemove(
    """Parameters for AuditEventsStreamingDestinationInstanceEventsRemove"""
    input: AuditEventsStreamingDestinationInstanceEventsRemoveInput!
  ): AuditEventsStreamingDestinationInstanceEventsRemovePayload @deprecated(reason: "Use `auditEventsInstanceDestinationEventsRemove` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingHeadersCreate(
    """Parameters for AuditEventsStreamingHeadersCreate"""
    input: AuditEventsStreamingHeadersCreateInput!
  ): AuditEventsStreamingHeadersCreatePayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `groupAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  auditEventsStreamingHeadersDestroy(
    """Parameters for AuditEventsStreamingHeadersDestroy"""
    input: AuditEventsStreamingHeadersDestroyInput!
  ): AuditEventsStreamingHeadersDestroyPayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `groupAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  auditEventsStreamingHeadersUpdate(
    """Parameters for AuditEventsStreamingHeadersUpdate"""
    input: AuditEventsStreamingHeadersUpdateInput!
  ): AuditEventsStreamingHeadersUpdatePayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `groupAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  auditEventsStreamingHttpNamespaceFiltersAdd(
    """Parameters for AuditEventsStreamingHTTPNamespaceFiltersAdd"""
    input: AuditEventsStreamingHTTPNamespaceFiltersAddInput!
  ): AuditEventsStreamingHTTPNamespaceFiltersAddPayload @deprecated(reason: "Use `auditEventsGroupDestinationNamespaceFilterCreate` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingHttpNamespaceFiltersDelete(
    """Parameters for AuditEventsStreamingHTTPNamespaceFiltersDelete"""
    input: AuditEventsStreamingHTTPNamespaceFiltersDeleteInput!
  ): AuditEventsStreamingHTTPNamespaceFiltersDeletePayload @deprecated(reason: "Use `auditEventsGroupDestinationNamespaceFilterDelete` instead. Deprecated in GitLab 18.10.")
  auditEventsStreamingInstanceHeadersCreate(
    """Parameters for AuditEventsStreamingInstanceHeadersCreate"""
    input: AuditEventsStreamingInstanceHeadersCreateInput!
  ): AuditEventsStreamingInstanceHeadersCreatePayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `instanceAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  auditEventsStreamingInstanceHeadersDestroy(
    """Parameters for AuditEventsStreamingInstanceHeadersDestroy"""
    input: AuditEventsStreamingInstanceHeadersDestroyInput!
  ): AuditEventsStreamingInstanceHeadersDestroyPayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `instanceAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  auditEventsStreamingInstanceHeadersUpdate(
    """Parameters for AuditEventsStreamingInstanceHeadersUpdate"""
    input: AuditEventsStreamingInstanceHeadersUpdateInput!
  ): AuditEventsStreamingInstanceHeadersUpdatePayload @deprecated(reason: "Configure headers by using the streaming destination configuration.\n           Use `instanceAuditEventStreamingDestinationsUpdate`. Deprecated in GitLab 18.10.")
  awardEmojiAdd(
    """Parameters for AwardEmojiAdd"""
    input: AwardEmojiAddInput!
  ): AwardEmojiAddPayload
  awardEmojiRemove(
    """Parameters for AwardEmojiRemove"""
    input: AwardEmojiRemoveInput!
  ): AwardEmojiRemovePayload
  awardEmojiToggle(
    """Parameters for AwardEmojiToggle"""
    input: AwardEmojiToggleInput!
  ): AwardEmojiTogglePayload
  boardEpicCreate(
    """Parameters for BoardEpicCreate"""
    input: BoardEpicCreateInput!
  ): BoardEpicCreatePayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  boardListCreate(
    """Parameters for BoardListCreate"""
    input: BoardListCreateInput!
  ): BoardListCreatePayload
  boardListUpdateLimitMetrics(
    """Parameters for BoardListUpdateLimitMetrics"""
    input: BoardListUpdateLimitMetricsInput!
  ): BoardListUpdateLimitMetricsPayload
  branchDelete(
    """Parameters for BranchDelete"""
    input: BranchDeleteInput!
  ): BranchDeletePayload
  branchRuleApprovalProjectRuleCreate(
    """Parameters for branchRuleApprovalProjectRuleCreate"""
    input: branchRuleApprovalProjectRuleCreateInput!
  ): branchRuleApprovalProjectRuleCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  branchRuleCreate(
    """Parameters for BranchRuleCreate"""
    input: BranchRuleCreateInput!
  ): BranchRuleCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
  branchRuleDelete(
    """Parameters for BranchRuleDelete"""
    input: BranchRuleDeleteInput!
  ): BranchRuleDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  Create a new external status check from a branch rule Introduced in GitLab 16.11: **Status**: Experiment.
  """
  branchRuleExternalStatusCheckCreate(
    """Parameters for BranchRuleExternalStatusCheckCreate"""
    input: BranchRuleExternalStatusCheckCreateInput!
  ): BranchRuleExternalStatusCheckCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Destroy an external status check from a branch rule Introduced in GitLab 17.0: **Status**: Experiment.
  """
  branchRuleExternalStatusCheckDestroy(
    """Parameters for BranchRuleExternalStatusCheckDestroy"""
    input: BranchRuleExternalStatusCheckDestroyInput!
  ): BranchRuleExternalStatusCheckDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Update an external status check from a branch rule Introduced in GitLab 17.0: **Status**: Experiment.
  """
  branchRuleExternalStatusCheckUpdate(
    """Parameters for BranchRuleExternalStatusCheckUpdate"""
    input: BranchRuleExternalStatusCheckUpdateInput!
  ): BranchRuleExternalStatusCheckUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Delete a squash option for a branch rule Introduced in GitLab 17.9: **Status**: Experiment.
  """
  branchRuleSquashOptionDelete(
    """Parameters for BranchRuleSquashOptionDelete"""
    input: BranchRuleSquashOptionDeleteInput!
  ): BranchRuleSquashOptionDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Update a squash option for a branch rule Introduced in GitLab 17.9: **Status**: Experiment.
  """
  branchRuleSquashOptionUpdate(
    """Parameters for BranchRuleSquashOptionUpdate"""
    input: BranchRuleSquashOptionUpdateInput!
  ): BranchRuleSquashOptionUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  branchRuleUpdate(
    """Parameters for BranchRuleUpdate"""
    input: BranchRuleUpdateInput!
  ): BranchRuleUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
  bulkDestroyJobArtifacts(
    """Parameters for BulkDestroyJobArtifacts"""
    input: BulkDestroyJobArtifactsInput!
  ): BulkDestroyJobArtifactsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """**Status**: Beta"""
  bulkEnableDevopsAdoptionNamespaces(
    """Parameters for BulkEnableDevopsAdoptionNamespaces"""
    input: BulkEnableDevopsAdoptionNamespacesInput!
  ): BulkEnableDevopsAdoptionNamespacesPayload
  bulkRunnerDelete(
    """Parameters for BulkRunnerDelete"""
    input: BulkRunnerDeleteInput!
  ): BulkRunnerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """
  Bulk set due dates for vulnerability findings using individual UUID entries.
  This operation is best-effort: valid updates are applied even if some fail.
  Introduced in GitLab 18.11: **Status**: Experiment.
  """
  bulkSetVulnerabilityFindingsDueDates(
    """Parameters for BulkSetVulnerabilityFindingsDueDates"""
    input: BulkSetVulnerabilityFindingsDueDatesInput!
  ): FindingDueDatesSetPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Bulk updates permission settings for multiple AI tool rules. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  bulkUpdateAiToolRules(
    """Parameters for BulkUpdateAiToolRules"""
    input: BulkUpdateAiToolRulesInput!
  ): BulkUpdateAiToolRulesPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  bulkUpdateSecurityAttributes(
    """Parameters for BulkUpdateSecurityAttributes"""
    input: BulkUpdateSecurityAttributesInput!
  ): BulkUpdateSecurityAttributesPayload
  catalogResourcesCreate(
    """Parameters for CatalogResourcesCreate"""
    input: CatalogResourcesCreateInput!
  ): CatalogResourcesCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")
  catalogResourcesDestroy(
    """Parameters for CatalogResourcesDestroy"""
    input: CatalogResourcesDestroyInput!
  ): CatalogResourcesDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Creates a continuous deployment application in an organization. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  cdApplicationCreate(
    """Parameters for CdApplicationCreate"""
    input: CdApplicationCreateInput!
  ): CdApplicationCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Creates a continuous deployment environment in an organization. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  cdEnvironmentCreate(
    """Parameters for CdEnvironmentCreate"""
    input: CdEnvironmentCreateInput!
  ): CdEnvironmentCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  ciJobTokenScopeAddGroupOrProject(
    """Parameters for CiJobTokenScopeAddGroupOrProject"""
    input: CiJobTokenScopeAddGroupOrProjectInput!
  ): CiJobTokenScopeAddGroupOrProjectPayload
  ciJobTokenScopeAddProject(
    """Parameters for CiJobTokenScopeAddProject"""
    input: CiJobTokenScopeAddProjectInput!
  ): CiJobTokenScopeAddProjectPayload
  ciJobTokenScopeRemoveGroup(
    """Parameters for CiJobTokenScopeRemoveGroup"""
    input: CiJobTokenScopeRemoveGroupInput!
  ): CiJobTokenScopeRemoveGroupPayload
  ciJobTokenScopeRemoveProject(
    """Parameters for CiJobTokenScopeRemoveProject"""
    input: CiJobTokenScopeRemoveProjectInput!
  ): CiJobTokenScopeRemoveProjectPayload
  ciJobTokenScopeUpdatePolicies(
    """Parameters for CiJobTokenScopeUpdatePolicies"""
    input: CiJobTokenScopeUpdatePoliciesInput!
  ): CiJobTokenScopeUpdatePoliciesPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Linted and processed contents of a CI config.
  Should not be requested more than once per request.
  
  """
  ciLint(
    """Parameters for CiLint"""
    input: CiLintInput!
  ): CiLintPayload
  clusterAgentDelete(
    """Parameters for ClusterAgentDelete"""
    input: ClusterAgentDeleteInput!
  ): ClusterAgentDeletePayload
  clusterAgentTokenCreate(
    """Parameters for ClusterAgentTokenCreate"""
    input: ClusterAgentTokenCreateInput!
  ): ClusterAgentTokenCreatePayload
  clusterAgentTokenRevoke(
    """Parameters for ClusterAgentTokenRevoke"""
    input: ClusterAgentTokenRevokeInput!
  ): ClusterAgentTokenRevokePayload
  clusterAgentUrlConfigurationCreate(
    """Parameters for ClusterAgentUrlConfigurationCreate"""
    input: ClusterAgentUrlConfigurationCreateInput!
  ): ClusterAgentUrlConfigurationCreatePayload
  clusterAgentUrlConfigurationDelete(
    """Parameters for ClusterAgentUrlConfigurationDelete"""
    input: ClusterAgentUrlConfigurationDeleteInput!
  ): ClusterAgentUrlConfigurationDeletePayload
  commitCreate(
    """Parameters for CommitCreate"""
    input: CommitCreateInput!
  ): CommitCreatePayload

  """
  Configure container scanning for a project by adding it to a new or modified
  `.gitlab-ci.yml` file in a new branch. The new branch and a URL to
  create a merge request are part of the response.
  
  """
  configureContainerScanning(
    """Parameters for ConfigureContainerScanning"""
    input: ConfigureContainerScanningInput!
  ): ConfigureContainerScanningPayload

  """
  Enable dependency scanning `.gitlab-ci.yml` file in a new branch.
  The new branch and a URL to create a merge request are a part of
  the response.
  
  """
  configureDependencyScanning(
    """Parameters for ConfigureDependencyScanning"""
    input: ConfigureDependencyScanningInput!
  ): ConfigureDependencyScanningPayload

  """
  Configure SAST for a project by enabling SAST in a new or modified
  `.gitlab-ci.yml` file in a new branch. The new branch and a URL to
  create a Merge Request are a part of the response.
  
  """
  configureSast(
    """Parameters for ConfigureSast"""
    input: ConfigureSastInput!
  ): ConfigureSastPayload

  """
  Enable SAST IaC for a project in a new or
  modified `.gitlab-ci.yml` file in a new branch. The new
  branch and a URL to create a merge request are a part of the
  response.
  
  """
  configureSastIac(
    """Parameters for ConfigureSastIac"""
    input: ConfigureSastIacInput!
  ): ConfigureSastIacPayload

  """
  Configure secret detection for a project by enabling secret detection
  in a new or modified `.gitlab-ci.yml` file in a new branch. The new
  branch and a URL to create a merge request are a part of the
  response.
  
  """
  configureSecretDetection(
    """Parameters for ConfigureSecretDetection"""
    input: ConfigureSecretDetectionInput!
  ): ConfigureSecretDetectionPayload
  containerCacheEntryDelete(
    """Parameters for ContainerCacheEntryDelete"""
    input: ContainerCacheEntryDeleteInput!
  ): ContainerCacheEntryDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  containerUpstreamCacheDelete(
    """Parameters for ContainerUpstreamCacheDelete"""
    input: ContainerUpstreamCacheDeleteInput!
  ): ContainerUpstreamCacheDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerUpstreamCreate(
    """Parameters for ContainerUpstreamCreate"""
    input: ContainerUpstreamCreateInput!
  ): ContainerUpstreamCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")
  containerUpstreamDelete(
    """Parameters for ContainerUpstreamDelete"""
    input: ContainerUpstreamDeleteInput!
  ): ContainerUpstreamDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerUpstreamTest(
    """Parameters for ContainerUpstreamTest"""
    input: ContainerUpstreamTestInput!
  ): ContainerUpstreamTestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  containerUpstreamUpdate(
    """Parameters for ContainerUpstreamUpdate"""
    input: ContainerUpstreamUpdateInput!
  ): ContainerUpstreamUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")
  containerVirtualRegistryCacheDelete(
    """Parameters for ContainerVirtualRegistryCacheDelete"""
    input: ContainerVirtualRegistryCacheDeleteInput!
  ): ContainerVirtualRegistryCacheDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerVirtualRegistryCreate(
    """Parameters for ContainerVirtualRegistryCreate"""
    input: ContainerVirtualRegistryCreateInput!
  ): ContainerVirtualRegistryCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerVirtualRegistryDelete(
    """Parameters for ContainerVirtualRegistryDelete"""
    input: ContainerVirtualRegistryDeleteInput!
  ): ContainerVirtualRegistryDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerVirtualRegistryUpdate(
    """Parameters for ContainerVirtualRegistryUpdate"""
    input: ContainerVirtualRegistryUpdateInput!
  ): ContainerVirtualRegistryUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  containerVirtualRegistryUpstreamCreate(
    """Parameters for ContainerVirtualRegistryUpstreamCreate"""
    input: ContainerVirtualRegistryUpstreamCreateInput!
  ): ContainerVirtualRegistryUpstreamCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  containerVirtualRegistryUpstreamDelete(
    """Parameters for ContainerVirtualRegistryUpstreamDelete"""
    input: ContainerVirtualRegistryUpstreamDeleteInput!
  ): ContainerVirtualRegistryUpstreamDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  containerVirtualRegistryUpstreamUpdate(
    """Parameters for ContainerVirtualRegistryUpstreamUpdate"""
    input: ContainerVirtualRegistryUpstreamUpdateInput!
  ): ContainerVirtualRegistryUpstreamUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  corpusCreate(
    """Parameters for CorpusCreate"""
    input: CorpusCreateInput!
  ): CorpusCreatePayload
  createAlertIssue(
    """Parameters for CreateAlertIssue"""
    input: CreateAlertIssueInput!
  ): CreateAlertIssuePayload
  createAnnotation(
    """Parameters for CreateAnnotation"""
    input: CreateAnnotationInput!
  ): CreateAnnotationPayload @deprecated(reason: "Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.")
  createBoard(
    """Parameters for CreateBoard"""
    input: CreateBoardInput!
  ): CreateBoardPayload
  createBranch(
    """Parameters for CreateBranch"""
    input: CreateBranchInput!
  ): CreateBranchPayload
  createClusterAgent(
    """Parameters for CreateClusterAgent"""
    input: CreateClusterAgentInput!
  ): CreateClusterAgentPayload
  createComplianceFramework(
    """Parameters for CreateComplianceFramework"""
    input: CreateComplianceFrameworkInput!
  ): CreateComplianceFrameworkPayload
  createComplianceFrameworkFromTemplate(
    """Parameters for CreateComplianceFrameworkFromTemplate"""
    input: CreateComplianceFrameworkFromTemplateInput!
  ): CreateComplianceFrameworkFromTemplatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
  createComplianceRequirement(
    """Parameters for CreateComplianceRequirement"""
    input: CreateComplianceRequirementInput!
  ): CreateComplianceRequirementPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
  createComplianceRequirementsControl(
    """Parameters for CreateComplianceRequirementsControl"""
    input: CreateComplianceRequirementsControlInput!
  ): CreateComplianceRequirementsControlPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Creates a repository protection rule to restrict access to a project's container registry.
  """
  createContainerProtectionRepositoryRule(
    """Parameters for CreateContainerProtectionRepositoryRule"""
    input: CreateContainerProtectionRepositoryRuleInput!
  ): CreateContainerProtectionRepositoryRulePayload

  """
  Creates a protection rule to control which user roles can modify container
  image tags matching a specified pattern. Introduced in GitLab 17.8:
  **Status**: Experiment.
  """
  createContainerProtectionTagRule(
    """Parameters for createContainerProtectionTagRule"""
    input: createContainerProtectionTagRuleInput!
  ): createContainerProtectionTagRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Creates a custom dashboard in an organization. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  createCustomDashboard(
    """Parameters for CreateCustomDashboard"""
    input: CreateCustomDashboardInput!
  ): CreateCustomDashboardPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
  createCustomEmoji(
    """Parameters for CreateCustomEmoji"""
    input: CreateCustomEmojiInput!
  ): CreateCustomEmojiPayload
  createDiffNote(
    """Parameters for CreateDiffNote"""
    input: CreateDiffNoteInput!
  ): CreateDiffNotePayload
  createDiscussion(
    """Parameters for CreateDiscussion"""
    input: CreateDiscussionInput!
  ): CreateDiscussionPayload
  createEpic(
    """Parameters for CreateEpic"""
    input: CreateEpicInput!
  ): CreateEpicPayload @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")
  createImageDiffNote(
    """Parameters for CreateImageDiffNote"""
    input: CreateImageDiffNoteInput!
  ): CreateImageDiffNotePayload
  createIssue(
    """Parameters for CreateIssue"""
    input: CreateIssueInput!
  ): CreateIssuePayload
  createIteration(
    """Parameters for CreateIteration"""
    input: CreateIterationInput!
  ): CreateIterationPayload @deprecated(reason: "Use iterationCreate. Deprecated in GitLab 14.0.")

  """
  Creates a diff note on a merge request using minimal parameters. SHAs, file
  paths, and position type are resolved automatically from the latest merge
  request diff. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  createLatestDiffNote(
    """Parameters for CreateLatestDiffNote"""
    input: CreateLatestDiffNoteInput!
  ): CreateLatestDiffNotePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Creates a Note.
  If the body of the Note contains only quick actions,
  the Note will be destroyed during an update, and no Note will be
  returned.
  
  """
  createNote(
    """Parameters for CreateNote"""
    input: CreateNoteInput!
  ): CreateNotePayload

  """Creates a protection rule to restrict access to project packages."""
  createPackagesProtectionRule(
    """Parameters for CreatePackagesProtectionRule"""
    input: CreatePackagesProtectionRuleInput!
  ): CreatePackagesProtectionRulePayload
  createRequirement(
    """Parameters for CreateRequirement"""
    input: CreateRequirementInput!
  ): CreateRequirementPayload
  createSnippet(
    """Parameters for CreateSnippet"""
    input: CreateSnippetInput!
  ): CreateSnippetPayload

  """
  Creates a protection rule for a Terraform state backend. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  createTerraformStateProtectionRule(
    """Parameters for CreateTerraformStateProtectionRule"""
    input: CreateTerraformStateProtectionRuleInput!
  ): CreateTerraformStateProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  createTestCase(
    """Parameters for CreateTestCase"""
    input: CreateTestCaseInput!
  ): CreateTestCasePayload
  customFieldArchive(
    """Parameters for CustomFieldArchive"""
    input: CustomFieldArchiveInput!
  ): CustomFieldArchivePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  customFieldCreate(
    """Parameters for CustomFieldCreate"""
    input: CustomFieldCreateInput!
  ): CustomFieldCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
  customFieldUnarchive(
    """Parameters for CustomFieldUnarchive"""
    input: CustomFieldUnarchiveInput!
  ): CustomFieldUnarchivePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  customFieldUpdate(
    """Parameters for CustomFieldUpdate"""
    input: CustomFieldUpdateInput!
  ): CustomFieldUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
  customerRelationsContactCreate(
    """Parameters for CustomerRelationsContactCreate"""
    input: CustomerRelationsContactCreateInput!
  ): CustomerRelationsContactCreatePayload
  customerRelationsContactUpdate(
    """Parameters for CustomerRelationsContactUpdate"""
    input: CustomerRelationsContactUpdateInput!
  ): CustomerRelationsContactUpdatePayload
  customerRelationsOrganizationCreate(
    """Parameters for CustomerRelationsOrganizationCreate"""
    input: CustomerRelationsOrganizationCreateInput!
  ): CustomerRelationsOrganizationCreatePayload
  customerRelationsOrganizationUpdate(
    """Parameters for CustomerRelationsOrganizationUpdate"""
    input: CustomerRelationsOrganizationUpdateInput!
  ): CustomerRelationsOrganizationUpdatePayload
  dastOnDemandScanCreate(
    """Parameters for DastOnDemandScanCreate"""
    input: DastOnDemandScanCreateInput!
  ): DastOnDemandScanCreatePayload
  dastProfileCreate(
    """Parameters for DastProfileCreate"""
    input: DastProfileCreateInput!
  ): DastProfileCreatePayload
  dastProfileDelete(
    """Parameters for DastProfileDelete"""
    input: DastProfileDeleteInput!
  ): DastProfileDeletePayload
  dastProfileRun(
    """Parameters for DastProfileRun"""
    input: DastProfileRunInput!
  ): DastProfileRunPayload
  dastProfileUpdate(
    """Parameters for DastProfileUpdate"""
    input: DastProfileUpdateInput!
  ): DastProfileUpdatePayload
  dastScannerProfileCreate(
    """Parameters for DastScannerProfileCreate"""
    input: DastScannerProfileCreateInput!
  ): DastScannerProfileCreatePayload
  dastScannerProfileDelete(
    """Parameters for DastScannerProfileDelete"""
    input: DastScannerProfileDeleteInput!
  ): DastScannerProfileDeletePayload
  dastScannerProfileUpdate(
    """Parameters for DastScannerProfileUpdate"""
    input: DastScannerProfileUpdateInput!
  ): DastScannerProfileUpdatePayload
  dastSiteProfileCreate(
    """Parameters for DastSiteProfileCreate"""
    input: DastSiteProfileCreateInput!
  ): DastSiteProfileCreatePayload
  dastSiteProfileDelete(
    """Parameters for DastSiteProfileDelete"""
    input: DastSiteProfileDeleteInput!
  ): DastSiteProfileDeletePayload
  dastSiteProfileUpdate(
    """Parameters for DastSiteProfileUpdate"""
    input: DastSiteProfileUpdateInput!
  ): DastSiteProfileUpdatePayload
  dastSiteTokenCreate(
    """Parameters for DastSiteTokenCreate"""
    input: DastSiteTokenCreateInput!
  ): DastSiteTokenCreatePayload
  dastSiteValidationCreate(
    """Parameters for DastSiteValidationCreate"""
    input: DastSiteValidationCreateInput!
  ): DastSiteValidationCreatePayload
  dastSiteValidationRevoke(
    """Parameters for DastSiteValidationRevoke"""
    input: DastSiteValidationRevokeInput!
  ): DastSiteValidationRevokePayload
  deleteAnnotation(
    """Parameters for DeleteAnnotation"""
    input: DeleteAnnotationInput!
  ): DeleteAnnotationPayload @deprecated(reason: "Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.")

  """Deletes a container repository protection rule."""
  deleteContainerProtectionRepositoryRule(
    """Parameters for DeleteContainerProtectionRepositoryRule"""
    input: DeleteContainerProtectionRepositoryRuleInput!
  ): DeleteContainerProtectionRepositoryRulePayload

  """
  Deletes a protection rule that controls which user roles can modify container
  image tags matching a specified pattern. Introduced in GitLab 17.8:
  **Status**: Experiment.
  """
  deleteContainerProtectionTagRule(
    """Parameters for DeleteContainerProtectionTagRule"""
    input: DeleteContainerProtectionTagRuleInput!
  ): DeleteContainerProtectionTagRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")
  deleteConversationThread(
    """Parameters for DeleteConversationThread"""
    input: DeleteConversationThreadInput!
  ): DeleteConversationThreadPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Deletes a custom dashboard. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  deleteCustomDashboard(
    """Parameters for DeleteCustomDashboard"""
    input: DeleteCustomDashboardInput!
  ): DeleteCustomDashboardPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  deleteDuoWorkflowsWorkflow(
    """Parameters for DeleteDuoWorkflowsWorkflow"""
    input: DeleteDuoWorkflowsWorkflowInput!
  ): DeleteDuoWorkflowsWorkflowPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Deletes a custom attribute from a group. Only available to admins. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  deleteGroupCustomAttribute(
    """Parameters for DeleteGroupCustomAttribute"""
    input: DeleteGroupCustomAttributeInput!
  ): DeleteGroupCustomAttributePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Deletes a protection rule for packages."""
  deletePackagesProtectionRule(
    """Parameters for DeletePackagesProtectionRule"""
    input: DeletePackagesProtectionRuleInput!
  ): DeletePackagesProtectionRulePayload

  """
  Deletes a Pages deployment. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  deletePagesDeployment(
    """Parameters for DeletePagesDeployment"""
    input: DeletePagesDeploymentInput!
  ): DeletePagesDeploymentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """
  Deletes a custom attribute from a project. Only available to admins. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  deleteProjectCustomAttribute(
    """Parameters for DeleteProjectCustomAttribute"""
    input: DeleteProjectCustomAttributeInput!
  ): DeleteProjectCustomAttributePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Deletes a protection rule for a Terraform state backend. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  deleteTerraformStateProtectionRule(
    """Parameters for DeleteTerraformStateProtectionRule"""
    input: DeleteTerraformStateProtectionRuleInput!
  ): DeleteTerraformStateProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Deletes a custom attribute from a user. Only available to admins. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  deleteUserCustomAttribute(
    """Parameters for DeleteUserCustomAttribute"""
    input: DeleteUserCustomAttributeInput!
  ): DeleteUserCustomAttributePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  designManagementDelete(
    """Parameters for DesignManagementDelete"""
    input: DesignManagementDeleteInput!
  ): DesignManagementDeletePayload
  designManagementMove(
    """Parameters for DesignManagementMove"""
    input: DesignManagementMoveInput!
  ): DesignManagementMovePayload
  designManagementUpdate(
    """Parameters for DesignManagementUpdate"""
    input: DesignManagementUpdateInput!
  ): DesignManagementUpdatePayload
  designManagementUpload(
    """Parameters for DesignManagementUpload"""
    input: DesignManagementUploadInput!
  ): DesignManagementUploadPayload
  destroyBoard(
    """Parameters for DestroyBoard"""
    input: DestroyBoardInput!
  ): DestroyBoardPayload
  destroyBoardList(
    """Parameters for DestroyBoardList"""
    input: DestroyBoardListInput!
  ): DestroyBoardListPayload
  destroyComplianceFramework(
    """Parameters for DestroyComplianceFramework"""
    input: DestroyComplianceFrameworkInput!
  ): DestroyComplianceFrameworkPayload
  destroyComplianceRequirement(
    """Parameters for DestroyComplianceRequirement"""
    input: DestroyComplianceRequirementInput!
  ): DestroyComplianceRequirementPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")
  destroyComplianceRequirementsControl(
    """Parameters for DestroyComplianceRequirementsControl"""
    input: DestroyComplianceRequirementsControlInput!
  ): DestroyComplianceRequirementsControlPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  destroyContainerRepository(
    """Parameters for DestroyContainerRepository"""
    input: DestroyContainerRepositoryInput!
  ): DestroyContainerRepositoryPayload
  destroyContainerRepositoryTags(
    """Parameters for DestroyContainerRepositoryTags"""
    input: DestroyContainerRepositoryTagsInput!
  ): DestroyContainerRepositoryTagsPayload
  destroyCustomEmoji(
    """Parameters for DestroyCustomEmoji"""
    input: DestroyCustomEmojiInput!
  ): DestroyCustomEmojiPayload
  destroyEpicBoard(
    """Parameters for DestroyEpicBoard"""
    input: DestroyEpicBoardInput!
  ): DestroyEpicBoardPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  destroyNote(
    """Parameters for DestroyNote"""
    input: DestroyNoteInput!
  ): DestroyNotePayload
  destroyPackage(
    """Parameters for DestroyPackage"""
    input: DestroyPackageInput!
  ): DestroyPackagePayload
  destroyPackageFile(
    """Parameters for DestroyPackageFile"""
    input: DestroyPackageFileInput!
  ): DestroyPackageFilePayload
  destroyPackageFiles(
    """Parameters for DestroyPackageFiles"""
    input: DestroyPackageFilesInput!
  ): DestroyPackageFilesPayload
  destroyPackages(
    """Parameters for DestroyPackages"""
    input: DestroyPackagesInput!
  ): DestroyPackagesPayload
  destroySnippet(
    """Parameters for DestroySnippet"""
    input: DestroySnippetInput!
  ): DestroySnippetPayload
  devfileValidate(
    """Parameters for DevfileValidate"""
    input: DevfileValidateInput!
  ): DevfileValidatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """**Status**: Beta"""
  disableDevopsAdoptionNamespace(
    """Parameters for DisableDevopsAdoptionNamespace"""
    input: DisableDevopsAdoptionNamespaceInput!
  ): DisableDevopsAdoptionNamespacePayload

  """Toggles the resolved state of a discussion"""
  discussionToggleResolve(
    """Parameters for DiscussionToggleResolve"""
    input: DiscussionToggleResolveInput!
  ): DiscussionToggleResolvePayload

  """
  Dismisses policy violations linked to a merge request Introduced in GitLab 18.4: **Status**: Experiment.
  """
  dismissPolicyViolations(
    """Parameters for DismissPolicyViolations"""
    input: DismissPolicyViolationsInput!
  ): DismissPolicyViolationsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Updates GitLab Duo settings. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  duoSettingsUpdate(
    """Parameters for DuoSettingsUpdate"""
    input: DuoSettingsUpdateInput!
  ): DuoSettingsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  duoUserFeedback(
    """Parameters for DuoUserFeedback"""
    input: DuoUserFeedbackInput!
  ): DuoUserFeedbackPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """
  A mutation that does not perform any changes.
  
  This is expected to be used for testing of endpoints, to verify
  that a user has mutation access.
  
  """
  echoCreate(
    """Parameters for EchoCreate"""
    input: EchoCreateInput!
  ): EchoCreatePayload

  """**Status**: Beta"""
  enableDevopsAdoptionNamespace(
    """Parameters for EnableDevopsAdoptionNamespace"""
    input: EnableDevopsAdoptionNamespaceInput!
  ): EnableDevopsAdoptionNamespacePayload

  """Create an environment."""
  environmentCreate(
    """Parameters for EnvironmentCreate"""
    input: EnvironmentCreateInput!
  ): EnvironmentCreatePayload

  """Delete an environment."""
  environmentDelete(
    """Parameters for EnvironmentDelete"""
    input: EnvironmentDeleteInput!
  ): EnvironmentDeletePayload

  """Stop an environment."""
  environmentStop(
    """Parameters for EnvironmentStop"""
    input: EnvironmentStopInput!
  ): EnvironmentStopPayload

  """Update an environment."""
  environmentUpdate(
    """Parameters for EnvironmentUpdate"""
    input: EnvironmentUpdateInput!
  ): EnvironmentUpdatePayload

  """
  **Deprecated** This endpoint is planned to be removed along with
  certificate-based clusters. [See this
  epic](https://gitlab.com/groups/gitlab-org/configure/-/epics/8) for more information.
  """
  environmentsCanaryIngressUpdate(
    """Parameters for EnvironmentsCanaryIngressUpdate"""
    input: EnvironmentsCanaryIngressUpdateInput!
  ): EnvironmentsCanaryIngressUpdatePayload
  epicAddIssue(
    """Parameters for EpicAddIssue"""
    input: EpicAddIssueInput!
  ): EpicAddIssuePayload @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")
  epicBoardCreate(
    """Parameters for EpicBoardCreate"""
    input: EpicBoardCreateInput!
  ): EpicBoardCreatePayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  epicBoardListCreate(
    """Parameters for EpicBoardListCreate"""
    input: EpicBoardListCreateInput!
  ): EpicBoardListCreatePayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """
  Destroys an epic board list. Deprecated in GitLab 17.5: Replaced by WorkItem type.
  """
  epicBoardListDestroy(
    """Parameters for EpicBoardListDestroy"""
    input: EpicBoardListDestroyInput!
  ): EpicBoardListDestroyPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  epicBoardUpdate(
    """Parameters for EpicBoardUpdate"""
    input: EpicBoardUpdateInput!
  ): EpicBoardUpdatePayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  epicMoveList(
    """Parameters for EpicMoveList"""
    input: EpicMoveListInput!
  ): EpicMoveListPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  epicSetSubscription(
    """Parameters for EpicSetSubscription"""
    input: EpicSetSubscriptionInput!
  ): EpicSetSubscriptionPayload @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")
  epicTreeReorder(
    """Parameters for EpicTreeReorder"""
    input: EpicTreeReorderInput!
  ): EpicTreeReorderPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  escalationPolicyCreate(
    """Parameters for EscalationPolicyCreate"""
    input: EscalationPolicyCreateInput!
  ): EscalationPolicyCreatePayload
  escalationPolicyDestroy(
    """Parameters for EscalationPolicyDestroy"""
    input: EscalationPolicyDestroyInput!
  ): EscalationPolicyDestroyPayload
  escalationPolicyUpdate(
    """Parameters for EscalationPolicyUpdate"""
    input: EscalationPolicyUpdateInput!
  ): EscalationPolicyUpdatePayload
  exportRequirements(
    """Parameters for ExportRequirements"""
    input: ExportRequirementsInput!
  ): ExportRequirementsPayload
  externalAuditEventDestinationCreate(
    """Parameters for ExternalAuditEventDestinationCreate"""
    input: ExternalAuditEventDestinationCreateInput!
  ): ExternalAuditEventDestinationCreatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsCreate` instead. Deprecated in GitLab 18.10.")
  externalAuditEventDestinationDestroy(
    """Parameters for ExternalAuditEventDestinationDestroy"""
    input: ExternalAuditEventDestinationDestroyInput!
  ): ExternalAuditEventDestinationDestroyPayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  externalAuditEventDestinationUpdate(
    """Parameters for ExternalAuditEventDestinationUpdate"""
    input: ExternalAuditEventDestinationUpdateInput!
  ): ExternalAuditEventDestinationUpdatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")

  """
  Mutates multiple Geo registries for a given registry class. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  geoRegistriesBulkUpdate(
    """Parameters for GeoRegistriesBulkUpdate"""
    input: GeoRegistriesBulkUpdateInput!
  ): GeoRegistriesBulkUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Mutates a Geo registry. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  geoRegistriesUpdate(
    """Parameters for GeoRegistriesUpdate"""
    input: GeoRegistriesUpdateInput!
  ): GeoRegistriesUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")
  gitlabSubscriptionActivate(
    """Parameters for GitlabSubscriptionActivate"""
    input: GitlabSubscriptionActivateInput!
  ): GitlabSubscriptionActivatePayload
  googleCloudLoggingConfigurationCreate(
    """Parameters for GoogleCloudLoggingConfigurationCreate"""
    input: GoogleCloudLoggingConfigurationCreateInput!
  ): GoogleCloudLoggingConfigurationCreatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsCreate` with `gcpLogging` category instead. Deprecated in GitLab 18.10.")
  googleCloudLoggingConfigurationDestroy(
    """Parameters for GoogleCloudLoggingConfigurationDestroy"""
    input: GoogleCloudLoggingConfigurationDestroyInput!
  ): GoogleCloudLoggingConfigurationDestroyPayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  googleCloudLoggingConfigurationUpdate(
    """Parameters for GoogleCloudLoggingConfigurationUpdate"""
    input: GoogleCloudLoggingConfigurationUpdateInput!
  ): GoogleCloudLoggingConfigurationUpdatePayload @deprecated(reason: "Use `groupAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")
  groupAuditEventStreamingDestinationsCreate(
    """Parameters for GroupAuditEventStreamingDestinationsCreate"""
    input: GroupAuditEventStreamingDestinationsCreateInput!
  ): GroupAuditEventStreamingDestinationsCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  groupAuditEventStreamingDestinationsDelete(
    """Parameters for GroupAuditEventStreamingDestinationsDelete"""
    input: GroupAuditEventStreamingDestinationsDeleteInput!
  ): GroupAuditEventStreamingDestinationsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  groupAuditEventStreamingDestinationsUpdate(
    """Parameters for GroupAuditEventStreamingDestinationsUpdate"""
    input: GroupAuditEventStreamingDestinationsUpdateInput!
  ): GroupAuditEventStreamingDestinationsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  groupMemberBulkUpdate(
    """Parameters for GroupMemberBulkUpdate"""
    input: GroupMemberBulkUpdateInput!
  ): GroupMemberBulkUpdatePayload
  groupMembersExport(
    """Parameters for GroupMembersExport"""
    input: GroupMembersExportInput!
  ): GroupMembersExportPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
  groupSavedReplyCreate(
    """Parameters for GroupSavedReplyCreate"""
    input: GroupSavedReplyCreateInput!
  ): GroupSavedReplyCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  groupSavedReplyDestroy(
    """Parameters for GroupSavedReplyDestroy"""
    input: GroupSavedReplyDestroyInput!
  ): GroupSavedReplyDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  groupSavedReplyUpdate(
    """Parameters for GroupSavedReplyUpdate"""
    input: GroupSavedReplyUpdateInput!
  ): GroupSavedReplyUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  groupSecretCreate(
    """Parameters for GroupSecretCreate"""
    input: GroupSecretCreateInput!
  ): GroupSecretCreatePayload
  groupSecretDelete(
    """Parameters for GroupSecretDelete"""
    input: GroupSecretDeleteInput!
  ): GroupSecretDeletePayload
  groupSecretUpdate(
    """Parameters for GroupSecretUpdate"""
    input: GroupSecretUpdateInput!
  ): GroupSecretUpdatePayload
  groupSecretsManagerDeprovision(
    """Parameters for GroupSecretsManagerDeprovision"""
    input: GroupSecretsManagerDeprovisionInput!
  ): GroupSecretsManagerDeprovisionPayload
  groupSecretsManagerInitialize(
    """Parameters for GroupSecretsManagerInitialize"""
    input: GroupSecretsManagerInitializeInput!
  ): GroupSecretsManagerInitializePayload
  groupSecretsPermissionDelete(
    """Parameters for GroupSecretsPermissionDelete"""
    input: GroupSecretsPermissionDeleteInput!
  ): GroupSecretsPermissionDeletePayload
  groupSecretsPermissionUpdate(
    """Parameters for GroupSecretsPermissionUpdate"""
    input: GroupSecretsPermissionUpdateInput!
  ): GroupSecretsPermissionUpdatePayload
  groupUpdate(
    """Parameters for GroupUpdate"""
    input: GroupUpdateInput!
  ): GroupUpdatePayload
  httpIntegrationCreate(
    """Parameters for HttpIntegrationCreate"""
    input: HttpIntegrationCreateInput!
  ): HttpIntegrationCreatePayload
  httpIntegrationDestroy(
    """Parameters for HttpIntegrationDestroy"""
    input: HttpIntegrationDestroyInput!
  ): HttpIntegrationDestroyPayload
  httpIntegrationResetToken(
    """Parameters for HttpIntegrationResetToken"""
    input: HttpIntegrationResetTokenInput!
  ): HttpIntegrationResetTokenPayload
  httpIntegrationUpdate(
    """Parameters for HttpIntegrationUpdate"""
    input: HttpIntegrationUpdateInput!
  ): HttpIntegrationUpdatePayload
  importSourceUserCancelReassignment(
    """Parameters for ImportSourceUserCancelReassignment"""
    input: ImportSourceUserCancelReassignmentInput!
  ): ImportSourceUserCancelReassignmentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  importSourceUserKeepAllAsPlaceholder(
    """Parameters for ImportSourceUserKeepAllAsPlaceholder"""
    input: ImportSourceUserKeepAllAsPlaceholderInput!
  ): ImportSourceUserKeepAllAsPlaceholderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
  importSourceUserKeepAsPlaceholder(
    """Parameters for ImportSourceUserKeepAsPlaceholder"""
    input: ImportSourceUserKeepAsPlaceholderInput!
  ): ImportSourceUserKeepAsPlaceholderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  importSourceUserReassign(
    """Parameters for ImportSourceUserReassign"""
    input: ImportSourceUserReassignInput!
  ): ImportSourceUserReassignPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  importSourceUserResendNotification(
    """Parameters for ImportSourceUserResendNotification"""
    input: ImportSourceUserResendNotificationInput!
  ): ImportSourceUserResendNotificationPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  importSourceUserRetryFailedReassignment(
    """Parameters for ImportSourceUserRetryFailedReassignment"""
    input: ImportSourceUserRetryFailedReassignmentInput!
  ): ImportSourceUserRetryFailedReassignmentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  importSourceUserUndoKeepAsPlaceholder(
    """Parameters for ImportSourceUserUndoKeepAsPlaceholder"""
    input: ImportSourceUserUndoKeepAsPlaceholderInput!
  ): ImportSourceUserUndoKeepAsPlaceholderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
  instanceAuditEventStreamingDestinationsCreate(
    """Parameters for InstanceAuditEventStreamingDestinationsCreate"""
    input: InstanceAuditEventStreamingDestinationsCreateInput!
  ): InstanceAuditEventStreamingDestinationsCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  instanceAuditEventStreamingDestinationsDelete(
    """Parameters for InstanceAuditEventStreamingDestinationsDelete"""
    input: InstanceAuditEventStreamingDestinationsDeleteInput!
  ): InstanceAuditEventStreamingDestinationsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  instanceAuditEventStreamingDestinationsUpdate(
    """Parameters for InstanceAuditEventStreamingDestinationsUpdate"""
    input: InstanceAuditEventStreamingDestinationsUpdateInput!
  ): InstanceAuditEventStreamingDestinationsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  instanceExternalAuditEventDestinationCreate(
    """Parameters for InstanceExternalAuditEventDestinationCreate"""
    input: InstanceExternalAuditEventDestinationCreateInput!
  ): InstanceExternalAuditEventDestinationCreatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsCreate` instead. Deprecated in GitLab 18.10.")
  instanceExternalAuditEventDestinationDestroy(
    """Parameters for InstanceExternalAuditEventDestinationDestroy"""
    input: InstanceExternalAuditEventDestinationDestroyInput!
  ): InstanceExternalAuditEventDestinationDestroyPayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  instanceExternalAuditEventDestinationUpdate(
    """Parameters for InstanceExternalAuditEventDestinationUpdate"""
    input: InstanceExternalAuditEventDestinationUpdateInput!
  ): InstanceExternalAuditEventDestinationUpdatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")
  instanceGoogleCloudLoggingConfigurationCreate(
    """Parameters for InstanceGoogleCloudLoggingConfigurationCreate"""
    input: InstanceGoogleCloudLoggingConfigurationCreateInput!
  ): InstanceGoogleCloudLoggingConfigurationCreatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsCreate` with `gcpLogging` category instead. Deprecated in GitLab 18.10.")
  instanceGoogleCloudLoggingConfigurationDestroy(
    """Parameters for InstanceGoogleCloudLoggingConfigurationDestroy"""
    input: InstanceGoogleCloudLoggingConfigurationDestroyInput!
  ): InstanceGoogleCloudLoggingConfigurationDestroyPayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsDelete` instead. Deprecated in GitLab 18.10.")
  instanceGoogleCloudLoggingConfigurationUpdate(
    """Parameters for InstanceGoogleCloudLoggingConfigurationUpdate"""
    input: InstanceGoogleCloudLoggingConfigurationUpdateInput!
  ): InstanceGoogleCloudLoggingConfigurationUpdatePayload @deprecated(reason: "Use `instanceAuditEventStreamingDestinationsUpdate` instead. Deprecated in GitLab 18.10.")
  instanceSecretsManagerEnroll(
    """Parameters for InstanceSecretsManagerEnroll"""
    input: InstanceSecretsManagerEnrollInput!
  ): InstanceSecretsManagerEnrollPayload
  instanceSecretsManagerUnenroll(
    """Parameters for InstanceSecretsManagerUnenroll"""
    input: InstanceSecretsManagerUnenrollInput!
  ): InstanceSecretsManagerUnenrollPayload
  integrationExclusionCreate(
    """Parameters for IntegrationExclusionCreate"""
    input: IntegrationExclusionCreateInput!
  ): IntegrationExclusionCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  integrationExclusionDelete(
    """Parameters for IntegrationExclusionDelete"""
    input: IntegrationExclusionDeleteInput!
  ): IntegrationExclusionDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  issuableResourceLinkCreate(
    """Parameters for IssuableResourceLinkCreate"""
    input: IssuableResourceLinkCreateInput!
  ): IssuableResourceLinkCreatePayload
  issuableResourceLinkDestroy(
    """Parameters for IssuableResourceLinkDestroy"""
    input: IssuableResourceLinkDestroyInput!
  ): IssuableResourceLinkDestroyPayload
  issueLinkAlerts(
    """Parameters for IssueLinkAlerts"""
    input: IssueLinkAlertsInput!
  ): IssueLinkAlertsPayload
  issueMove(
    """Parameters for IssueMove"""
    input: IssueMoveInput!
  ): IssueMovePayload
  issueMoveList(
    """Parameters for IssueMoveList"""
    input: IssueMoveListInput!
  ): IssueMoveListPayload
  issueSetAssignees(
    """Parameters for IssueSetAssignees"""
    input: IssueSetAssigneesInput!
  ): IssueSetAssigneesPayload
  issueSetConfidential(
    """Parameters for IssueSetConfidential"""
    input: IssueSetConfidentialInput!
  ): IssueSetConfidentialPayload
  issueSetCrmContacts(
    """Parameters for IssueSetCrmContacts"""
    input: IssueSetCrmContactsInput!
  ): IssueSetCrmContactsPayload
  issueSetDueDate(
    """Parameters for IssueSetDueDate"""
    input: IssueSetDueDateInput!
  ): IssueSetDueDatePayload
  issueSetEpic(
    """Parameters for IssueSetEpic"""
    input: IssueSetEpicInput!
  ): IssueSetEpicPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  issueSetEscalationPolicy(
    """Parameters for IssueSetEscalationPolicy"""
    input: IssueSetEscalationPolicyInput!
  ): IssueSetEscalationPolicyPayload
  issueSetEscalationStatus(
    """Parameters for IssueSetEscalationStatus"""
    input: IssueSetEscalationStatusInput!
  ): IssueSetEscalationStatusPayload
  issueSetIteration(
    """Parameters for IssueSetIteration"""
    input: IssueSetIterationInput!
  ): IssueSetIterationPayload
  issueSetLocked(
    """Parameters for IssueSetLocked"""
    input: IssueSetLockedInput!
  ): IssueSetLockedPayload
  issueSetSeverity(
    """Parameters for IssueSetSeverity"""
    input: IssueSetSeverityInput!
  ): IssueSetSeverityPayload
  issueSetSubscription(
    """Parameters for IssueSetSubscription"""
    input: IssueSetSubscriptionInput!
  ): IssueSetSubscriptionPayload
  issueSetWeight(
    """Parameters for IssueSetWeight"""
    input: IssueSetWeightInput!
  ): IssueSetWeightPayload
  issueUnlinkAlert(
    """Parameters for IssueUnlinkAlert"""
    input: IssueUnlinkAlertInput!
  ): IssueUnlinkAlertPayload
  iterationCadenceCreate(
    """Parameters for IterationCadenceCreate"""
    input: IterationCadenceCreateInput!
  ): IterationCadenceCreatePayload
  iterationCadenceDestroy(
    """Parameters for IterationCadenceDestroy"""
    input: IterationCadenceDestroyInput!
  ): IterationCadenceDestroyPayload
  iterationCadenceUpdate(
    """Parameters for IterationCadenceUpdate"""
    input: IterationCadenceUpdateInput!
  ): IterationCadenceUpdatePayload
  iterationCreate(
    """Parameters for iterationCreate"""
    input: iterationCreateInput!
  ): iterationCreatePayload
  iterationDelete(
    """Parameters for IterationDelete"""
    input: IterationDeleteInput!
  ): IterationDeletePayload
  jiraImportStart(
    """Parameters for JiraImportStart"""
    input: JiraImportStartInput!
  ): JiraImportStartPayload
  jiraImportUsers(
    """Parameters for JiraImportUsers"""
    input: JiraImportUsersInput!
  ): JiraImportUsersPayload
  jobArtifactsDestroy(
    """Parameters for JobArtifactsDestroy"""
    input: JobArtifactsDestroyInput!
  ): JobArtifactsDestroyPayload
  jobCancel(
    """Parameters for JobCancel"""
    input: JobCancelInput!
  ): JobCancelPayload
  jobPlay(
    """Parameters for JobPlay"""
    input: JobPlayInput!
  ): JobPlayPayload
  jobRetry(
    """Parameters for JobRetry"""
    input: JobRetryInput!
  ): JobRetryPayload
  jobUnschedule(
    """Parameters for JobUnschedule"""
    input: JobUnscheduleInput!
  ): JobUnschedulePayload
  labelCreate(
    """Parameters for LabelCreate"""
    input: LabelCreateInput!
  ): LabelCreatePayload
  labelUpdate(
    """Parameters for LabelUpdate"""
    input: LabelUpdateInput!
  ): LabelUpdatePayload

  """
  Creates an instance-level custom admin role LDAP link Introduced in GitLab 17.11: **Status**: Experiment.
  """
  ldapAdminRoleLinkCreate(
    """Parameters for LdapAdminRoleLinkCreate"""
    input: LdapAdminRoleLinkCreateInput!
  ): LdapAdminRoleLinkCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Destroys an instance-level custom admin role LDAP link Introduced in GitLab 18.0: **Status**: Experiment.
  """
  ldapAdminRoleLinkDestroy(
    """Parameters for LdapAdminRoleLinkDestroy"""
    input: LdapAdminRoleLinkDestroyInput!
  ): LdapAdminRoleLinkDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")
  lifecycleAttachWorkItemType(
    """Parameters for LifecycleAttachWorkItemType"""
    input: LifecycleAttachWorkItemTypeInput!
  ): LifecycleAttachWorkItemTypePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
  lifecycleCreate(
    """Parameters for LifecycleCreate"""
    input: LifecycleCreateInput!
  ): LifecycleCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
  lifecycleDelete(
    """Parameters for LifecycleDelete"""
    input: LifecycleDeleteInput!
  ): LifecycleDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
  lifecycleUpdate(
    """Parameters for LifecycleUpdate"""
    input: LifecycleUpdateInput!
  ): LifecycleUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
  linkProjectComplianceViolationIssue(
    """Parameters for LinkProjectComplianceViolationIssue"""
    input: LinkProjectComplianceViolationIssueInput!
  ): LinkProjectComplianceViolationIssuePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  markAsSpamSnippet(
    """Parameters for MarkAsSpamSnippet"""
    input: MarkAsSpamSnippetInput!
  ): MarkAsSpamSnippetPayload
  mavenCacheEntryDelete(
    """Parameters for MavenCacheEntryDelete"""
    input: MavenCacheEntryDeleteInput!
  ): MavenCacheEntryDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  mavenUpstreamCacheDelete(
    """Parameters for MavenUpstreamCacheDelete"""
    input: MavenUpstreamCacheDeleteInput!
  ): MavenUpstreamCacheDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  mavenUpstreamCreate(
    """Parameters for MavenUpstreamCreate"""
    input: MavenUpstreamCreateInput!
  ): MavenUpstreamCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
  mavenUpstreamDelete(
    """Parameters for MavenUpstreamDelete"""
    input: MavenUpstreamDeleteInput!
  ): MavenUpstreamDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  mavenUpstreamUpdate(
    """Parameters for MavenUpstreamUpdate"""
    input: MavenUpstreamUpdateInput!
  ): MavenUpstreamUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  mavenVirtualRegistryCacheDelete(
    """Parameters for MavenVirtualRegistryCacheDelete"""
    input: MavenVirtualRegistryCacheDeleteInput!
  ): MavenVirtualRegistryCacheDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  mavenVirtualRegistryCreate(
    """Parameters for MavenVirtualRegistryCreate"""
    input: MavenVirtualRegistryCreateInput!
  ): MavenVirtualRegistryCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  mavenVirtualRegistryDelete(
    """Parameters for MavenVirtualRegistryDelete"""
    input: MavenVirtualRegistryDeleteInput!
  ): MavenVirtualRegistryDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  mavenVirtualRegistryUpdate(
    """Parameters for MavenVirtualRegistryUpdate"""
    input: MavenVirtualRegistryUpdateInput!
  ): MavenVirtualRegistryUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  mavenVirtualRegistryUpstreamDelete(
    """Parameters for MavenVirtualRegistryUpstreamDelete"""
    input: MavenVirtualRegistryUpstreamDeleteInput!
  ): MavenVirtualRegistryUpstreamDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  mavenVirtualRegistryUpstreamUpdate(
    """Parameters for MavenVirtualRegistryUpstreamUpdate"""
    input: MavenVirtualRegistryUpstreamUpdateInput!
  ): MavenVirtualRegistryUpstreamUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  memberRoleAdminCreate(
    """Parameters for MemberRoleAdminCreate"""
    input: MemberRoleAdminCreateInput!
  ): MemberRoleAdminCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")
  memberRoleAdminDelete(
    """Parameters for MemberRoleAdminDelete"""
    input: MemberRoleAdminDeleteInput!
  ): MemberRoleAdminDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
  memberRoleAdminUpdate(
    """Parameters for MemberRoleAdminUpdate"""
    input: MemberRoleAdminUpdateInput!
  ): MemberRoleAdminUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
  memberRoleCreate(
    """Parameters for MemberRoleCreate"""
    input: MemberRoleCreateInput!
  ): MemberRoleCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")
  memberRoleDelete(
    """Parameters for MemberRoleDelete"""
    input: MemberRoleDeleteInput!
  ): MemberRoleDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
  memberRoleToUserAssign(
    """Parameters for MemberRoleToUserAssign"""
    input: MemberRoleToUserAssignInput!
  ): MemberRoleToUserAssignPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")
  memberRoleUpdate(
    """Parameters for MemberRoleUpdate"""
    input: MemberRoleUpdateInput!
  ): MemberRoleUpdatePayload

  """
  Accepts a merge request.
  When accepted, the source branch will be scheduled to merge into the target branch, either
  immediately if possible, or using one of the automatic merge strategies.
  
  [In GitLab 16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/421510), the merging happens asynchronously.
  This results in `mergeRequest` and `state` not updating after a mutation request,
  because the merging may not have happened yet.
  
  """
  mergeRequestAccept(
    """Parameters for MergeRequestAccept"""
    input: MergeRequestAcceptInput!
  ): MergeRequestAcceptPayload

  """
  Bypasses security policies for a merge request. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  mergeRequestBypassSecurityPolicy(
    """Parameters for MergeRequestBypassSecurityPolicy"""
    input: MergeRequestBypassSecurityPolicyInput!
  ): MergeRequestBypassSecurityPolicyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")
  mergeRequestCreate(
    """Parameters for MergeRequestCreate"""
    input: MergeRequestCreateInput!
  ): MergeRequestCreatePayload
  mergeRequestDestroyRequestedChanges(
    """Parameters for MergeRequestDestroyRequestedChanges"""
    input: MergeRequestDestroyRequestedChangesInput!
  ): MergeRequestDestroyRequestedChangesPayload
  mergeRequestRequestChanges(
    """Parameters for MergeRequestRequestChanges"""
    input: MergeRequestRequestChangesInput!
  ): MergeRequestRequestChangesPayload
  mergeRequestReviewerRereview(
    """Parameters for MergeRequestReviewerRereview"""
    input: MergeRequestReviewerRereviewInput!
  ): MergeRequestReviewerRereviewPayload
  mergeRequestSetAssignees(
    """Parameters for MergeRequestSetAssignees"""
    input: MergeRequestSetAssigneesInput!
  ): MergeRequestSetAssigneesPayload
  mergeRequestSetBlockingMergeRequests(
    """Parameters for MergeRequestSetBlockingMergeRequests"""
    input: MergeRequestSetBlockingMergeRequestsInput!
  ): MergeRequestSetBlockingMergeRequestsPayload
  mergeRequestSetDraft(
    """Parameters for MergeRequestSetDraft"""
    input: MergeRequestSetDraftInput!
  ): MergeRequestSetDraftPayload
  mergeRequestSetLabels(
    """Parameters for MergeRequestSetLabels"""
    input: MergeRequestSetLabelsInput!
  ): MergeRequestSetLabelsPayload
  mergeRequestSetLocked(
    """Parameters for MergeRequestSetLocked"""
    input: MergeRequestSetLockedInput!
  ): MergeRequestSetLockedPayload
  mergeRequestSetMilestone(
    """Parameters for MergeRequestSetMilestone"""
    input: MergeRequestSetMilestoneInput!
  ): MergeRequestSetMilestonePayload
  mergeRequestSetReviewers(
    """Parameters for MergeRequestSetReviewers"""
    input: MergeRequestSetReviewersInput!
  ): MergeRequestSetReviewersPayload
  mergeRequestSetSubscription(
    """Parameters for MergeRequestSetSubscription"""
    input: MergeRequestSetSubscriptionInput!
  ): MergeRequestSetSubscriptionPayload

  """Update attributes of a merge request"""
  mergeRequestUpdate(
    """Parameters for MergeRequestUpdate"""
    input: MergeRequestUpdateInput!
  ): MergeRequestUpdatePayload
  mergeRequestUpdateApprovalRule(
    """Parameters for MergeRequestUpdateApprovalRule"""
    input: MergeRequestUpdateApprovalRuleInput!
  ): MergeRequestUpdateApprovalRulePayload
  mergeTrainsDeleteCar(
    """Parameters for MergeTrainsDeleteCar"""
    input: MergeTrainsDeleteCarInput!
  ): MergeTrainsDeleteCarPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  mlModelCreate(
    """Parameters for MlModelCreate"""
    input: MlModelCreateInput!
  ): MlModelCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")
  mlModelDelete(
    """Parameters for MlModelDelete"""
    input: MlModelDeleteInput!
  ): MlModelDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  mlModelDestroy(
    """Parameters for MlModelDestroy"""
    input: MlModelDestroyInput!
  ): MlModelDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")
  mlModelEdit(
    """Parameters for MlModelEdit"""
    input: MlModelEditInput!
  ): MlModelEditPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")
  mlModelVersionCreate(
    """Parameters for MlModelVersionCreate"""
    input: MlModelVersionCreateInput!
  ): MlModelVersionCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")
  mlModelVersionDelete(
    """Parameters for MlModelVersionDelete"""
    input: MlModelVersionDeleteInput!
  ): MlModelVersionDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")
  mlModelVersionEdit(
    """Parameters for MlModelVersionEdit"""
    input: MlModelVersionEditInput!
  ): MlModelVersionEditPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
  namespaceBanDestroy(
    """Parameters for NamespaceBanDestroy"""
    input: NamespaceBanDestroyInput!
  ): NamespaceBanDestroyPayload
  namespaceCiCdSettingsUpdate(
    """Parameters for NamespaceCiCdSettingsUpdate"""
    input: NamespaceCiCdSettingsUpdateInput!
  ): NamespaceCiCdSettingsUpdatePayload
  namespaceCreateRemoteDevelopmentClusterAgentMapping(
    """Parameters for NamespaceCreateRemoteDevelopmentClusterAgentMapping"""
    input: NamespaceCreateRemoteDevelopmentClusterAgentMappingInput!
  ): NamespaceCreateRemoteDevelopmentClusterAgentMappingPayload
  namespaceDeleteRemoteDevelopmentClusterAgentMapping(
    """Parameters for NamespaceDeleteRemoteDevelopmentClusterAgentMapping"""
    input: NamespaceDeleteRemoteDevelopmentClusterAgentMappingInput!
  ): NamespaceDeleteRemoteDevelopmentClusterAgentMappingPayload
  namespaceSecretsManagerEnroll(
    """Parameters for NamespaceSecretsManagerEnroll"""
    input: NamespaceSecretsManagerEnrollInput!
  ): NamespaceSecretsManagerEnrollPayload
  namespaceSecretsManagerUnenroll(
    """Parameters for NamespaceSecretsManagerUnenroll"""
    input: NamespaceSecretsManagerUnenrollInput!
  ): NamespaceSecretsManagerUnenrollPayload
  namespaceSettingsUpdate(
    """Parameters for NamespaceSettingsUpdate"""
    input: NamespaceSettingsUpdateInput!
  ): NamespaceSettingsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  namespacesRegenerateNewWorkItemEmailAddress(
    """Parameters for NamespacesRegenerateNewWorkItemEmailAddress"""
    input: NamespacesRegenerateNewWorkItemEmailAddressInput!
  ): NamespacesRegenerateNewWorkItemEmailAddressPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """Convert a standard comment to a resolvable thread."""
  noteConvertToThread(
    """Parameters for NoteConvertToThread"""
    input: NoteConvertToThreadInput!
  ): NoteConvertToThreadPayload
  oncallRotationCreate(
    """Parameters for OncallRotationCreate"""
    input: OncallRotationCreateInput!
  ): OncallRotationCreatePayload
  oncallRotationDestroy(
    """Parameters for OncallRotationDestroy"""
    input: OncallRotationDestroyInput!
  ): OncallRotationDestroyPayload
  oncallRotationUpdate(
    """Parameters for OncallRotationUpdate"""
    input: OncallRotationUpdateInput!
  ): OncallRotationUpdatePayload
  oncallScheduleCreate(
    """Parameters for OncallScheduleCreate"""
    input: OncallScheduleCreateInput!
  ): OncallScheduleCreatePayload
  oncallScheduleDestroy(
    """Parameters for OncallScheduleDestroy"""
    input: OncallScheduleDestroyInput!
  ): OncallScheduleDestroyPayload
  oncallScheduleUpdate(
    """Parameters for OncallScheduleUpdate"""
    input: OncallScheduleUpdateInput!
  ): OncallScheduleUpdatePayload
  orbitUpdate(
    """Parameters for OrbitUpdate"""
    input: OrbitUpdateInput!
  ): OrbitUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  organizationCreate(
    """Parameters for OrganizationCreate"""
    input: OrganizationCreateInput!
  ): OrganizationCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")
  organizationCreateClusterAgentMapping(
    """Parameters for OrganizationCreateClusterAgentMapping"""
    input: OrganizationCreateClusterAgentMappingInput!
  ): OrganizationCreateClusterAgentMappingPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
  organizationDelete(
    """Parameters for OrganizationDelete"""
    input: OrganizationDeleteInput!
  ): OrganizationDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  organizationDeleteClusterAgentMapping(
    """Parameters for OrganizationDeleteClusterAgentMapping"""
    input: OrganizationDeleteClusterAgentMappingInput!
  ): OrganizationDeleteClusterAgentMappingPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
  organizationUpdate(
    """Parameters for OrganizationUpdate"""
    input: OrganizationUpdateInput!
  ): OrganizationUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
  organizationUserUpdate(
    """Parameters for OrganizationUserUpdate"""
    input: OrganizationUserUpdateInput!
  ): OrganizationUserUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
  pagesMarkOnboardingComplete(
    """Parameters for PagesMarkOnboardingComplete"""
    input: PagesMarkOnboardingCompleteInput!
  ): PagesMarkOnboardingCompletePayload

  """
  Creates a personal access token for the current user. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  personalAccessTokenCreate(
    """Parameters for PersonalAccessTokenCreate"""
    input: PersonalAccessTokenCreateInput!
  ): PersonalAccessTokenCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Revokes a specified personal access token. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  personalAccessTokenRevoke(
    """Parameters for PersonalAccessTokenRevoke"""
    input: PersonalAccessTokenRevokeInput!
  ): PersonalAccessTokenRevokePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Rotate a specified personal access token. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  personalAccessTokenRotate(
    """Parameters for PersonalAccessTokenRotate"""
    input: PersonalAccessTokenRotateInput!
  ): PersonalAccessTokenRotatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
  pipelineCancel(
    """Parameters for PipelineCancel"""
    input: PipelineCancelInput!
  ): PipelineCancelPayload
  pipelineCreate(
    """Parameters for PipelineCreate"""
    input: PipelineCreateInput!
  ): PipelineCreatePayload
  pipelineDestroy(
    """Parameters for PipelineDestroy"""
    input: PipelineDestroyInput!
  ): PipelineDestroyPayload

  """
  Triggers a test-run for a Scheduled Pipeline Execution Policy on a specific
  project. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  pipelineExecutionSchedulePolicyTestRun(
    """Parameters for PipelineExecutionSchedulePolicyTestRun"""
    input: PipelineExecutionSchedulePolicyTestRunInput!
  ): PipelineExecutionSchedulePolicyTestRunPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  pipelineRetry(
    """Parameters for PipelineRetry"""
    input: PipelineRetryInput!
  ): PipelineRetryPayload
  pipelineScheduleCreate(
    """Parameters for PipelineScheduleCreate"""
    input: PipelineScheduleCreateInput!
  ): PipelineScheduleCreatePayload
  pipelineScheduleDelete(
    """Parameters for PipelineScheduleDelete"""
    input: PipelineScheduleDeleteInput!
  ): PipelineScheduleDeletePayload
  pipelineSchedulePlay(
    """Parameters for PipelineSchedulePlay"""
    input: PipelineSchedulePlayInput!
  ): PipelineSchedulePlayPayload
  pipelineScheduleTakeOwnership(
    """Parameters for PipelineScheduleTakeOwnership"""
    input: PipelineScheduleTakeOwnershipInput!
  ): PipelineScheduleTakeOwnershipPayload
  pipelineScheduleUpdate(
    """Parameters for PipelineScheduleUpdate"""
    input: PipelineScheduleUpdateInput!
  ): PipelineScheduleUpdatePayload
  pipelineTriggerCreate(
    """Parameters for PipelineTriggerCreate"""
    input: PipelineTriggerCreateInput!
  ): PipelineTriggerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")
  pipelineTriggerDelete(
    """Parameters for PipelineTriggerDelete"""
    input: PipelineTriggerDeleteInput!
  ): PipelineTriggerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")
  pipelineTriggerUpdate(
    """Parameters for PipelineTriggerUpdate"""
    input: PipelineTriggerUpdateInput!
  ): PipelineTriggerUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")
  processUserBillablePromotionRequest(
    """Parameters for ProcessUserBillablePromotionRequest"""
    input: ProcessUserBillablePromotionRequestInput!
  ): ProcessUserBillablePromotionRequestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
  projectBlobsRemove(
    """Parameters for projectBlobsRemove"""
    input: projectBlobsRemoveInput!
  ): projectBlobsRemovePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")
  projectCiCdSettingsUpdate(
    """Parameters for ProjectCiCdSettingsUpdate"""
    input: ProjectCiCdSettingsUpdateInput!
  ): ProjectCiCdSettingsUpdatePayload

  """
  Sets (creates or updates) a custom attribute on a project. Only available to
  admins. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  projectCustomAttributeSet(
    """Parameters for ProjectCustomAttributeSet"""
    input: ProjectCustomAttributeSetInput!
  ): ProjectCustomAttributeSetPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Updates multiple members of a project. To use this mutation, you must have at least the Maintainer role.
  """
  projectMemberBulkUpdate(
    """Parameters for ProjectMemberBulkUpdate"""
    input: ProjectMemberBulkUpdateInput!
  ): ProjectMemberBulkUpdatePayload
  projectSavedReplyCreate(
    """Parameters for ProjectSavedReplyCreate"""
    input: ProjectSavedReplyCreateInput!
  ): ProjectSavedReplyCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  projectSavedReplyDestroy(
    """Parameters for ProjectSavedReplyDestroy"""
    input: ProjectSavedReplyDestroyInput!
  ): ProjectSavedReplyDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  projectSavedReplyUpdate(
    """Parameters for ProjectSavedReplyUpdate"""
    input: ProjectSavedReplyUpdateInput!
  ): ProjectSavedReplyUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
  projectSecretCreate(
    """Parameters for ProjectSecretCreate"""
    input: ProjectSecretCreateInput!
  ): ProjectSecretCreatePayload
  projectSecretDelete(
    """Parameters for ProjectSecretDelete"""
    input: ProjectSecretDeleteInput!
  ): ProjectSecretDeletePayload
  projectSecretUpdate(
    """Parameters for ProjectSecretUpdate"""
    input: ProjectSecretUpdateInput!
  ): ProjectSecretUpdatePayload
  projectSecretsManagerDeprovision(
    """Parameters for ProjectSecretsManagerDeprovision"""
    input: ProjectSecretsManagerDeprovisionInput!
  ): ProjectSecretsManagerDeprovisionPayload
  projectSecretsManagerInitialize(
    """Parameters for ProjectSecretsManagerInitialize"""
    input: ProjectSecretsManagerInitializeInput!
  ): ProjectSecretsManagerInitializePayload
  projectSecretsPermissionDelete(
    """Parameters for ProjectSecretsPermissionDelete"""
    input: ProjectSecretsPermissionDeleteInput!
  ): ProjectSecretsPermissionDeletePayload
  projectSecretsPermissionUpdate(
    """Parameters for ProjectSecretsPermissionUpdate"""
    input: ProjectSecretsPermissionUpdateInput!
  ): ProjectSecretsPermissionUpdatePayload
  projectSecurityExclusionCreate(
    """Parameters for ProjectSecurityExclusionCreate"""
    input: ProjectSecurityExclusionCreateInput!
  ): ProjectSecurityExclusionCreatePayload
  projectSecurityExclusionDelete(
    """Parameters for ProjectSecurityExclusionDelete"""
    input: ProjectSecurityExclusionDeleteInput!
  ): ProjectSecurityExclusionDeletePayload
  projectSecurityExclusionUpdate(
    """Parameters for ProjectSecurityExclusionUpdate"""
    input: ProjectSecurityExclusionUpdateInput!
  ): ProjectSecurityExclusionUpdatePayload

  """
  Assign (or unset) a compliance framework to a project. This mutation raises an
  error if the project has more than one compliance framework associated with
  it. Deprecated in GitLab 17.11: Use mutation ProjectUpdateComplianceFrameworks
  instead of this.
  """
  projectSetComplianceFramework(
    """Parameters for ProjectSetComplianceFramework"""
    input: ProjectSetComplianceFrameworkInput!
  ): ProjectSetComplianceFrameworkPayload @deprecated(reason: "Use mutation ProjectUpdateComplianceFrameworks instead of this. Deprecated in GitLab 17.11.")

  """
  Enable or disable continuous vulnerability scanning for the given project.
  Deprecated in GitLab 17.3: CVS has been enabled permanently. See [this
  epic](https://gitlab.com/groups/gitlab-org/-/epics/11474) for more information.
  """
  projectSetContinuousVulnerabilityScanning(
    """Parameters for ProjectSetContinuousVulnerabilityScanning"""
    input: ProjectSetContinuousVulnerabilityScanningInput!
  ): ProjectSetContinuousVulnerabilityScanningPayload @deprecated(reason: "CVS has been enabled permanently. See [this epic](https://gitlab.com/groups/gitlab-org/-/epics/11474) for more information. Deprecated in GitLab 17.3.")
  projectSetLocked(
    """Parameters for ProjectSetLocked"""
    input: ProjectSetLockedInput!
  ): ProjectSetLockedPayload
  projectSettingsUpdate(
    """Parameters for ProjectSettingsUpdate"""
    input: ProjectSettingsUpdateInput!
  ): ProjectSettingsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")
  projectSubscriptionCreate(
    """Parameters for ProjectSubscriptionCreate"""
    input: ProjectSubscriptionCreateInput!
  ): ProjectSubscriptionCreatePayload
  projectSubscriptionDelete(
    """Parameters for ProjectSubscriptionDelete"""
    input: ProjectSubscriptionDeleteInput!
  ): ProjectSubscriptionDeletePayload
  projectSyncFork(
    """Parameters for ProjectSyncFork"""
    input: ProjectSyncForkInput!
  ): ProjectSyncForkPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")
  projectTargetBranchRuleCreate(
    """Parameters for ProjectTargetBranchRuleCreate"""
    input: ProjectTargetBranchRuleCreateInput!
  ): ProjectTargetBranchRuleCreatePayload
  projectTargetBranchRuleDestroy(
    """Parameters for ProjectTargetBranchRuleDestroy"""
    input: ProjectTargetBranchRuleDestroyInput!
  ): ProjectTargetBranchRuleDestroyPayload
  projectTextReplace(
    """Parameters for projectTextReplace"""
    input: projectTextReplaceInput!
  ): projectTextReplacePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """Update compliance frameworks for a project."""
  projectUpdateComplianceFrameworks(
    """Parameters for ProjectUpdateComplianceFrameworks"""
    input: ProjectUpdateComplianceFrameworksInput!
  ): ProjectUpdateComplianceFrameworksPayload
  prometheusIntegrationCreate(
    """Parameters for PrometheusIntegrationCreate"""
    input: PrometheusIntegrationCreateInput!
  ): PrometheusIntegrationCreatePayload @deprecated(reason: "Use HttpIntegrationCreate. Deprecated in GitLab 18.2.")
  prometheusIntegrationResetToken(
    """Parameters for PrometheusIntegrationResetToken"""
    input: PrometheusIntegrationResetTokenInput!
  ): PrometheusIntegrationResetTokenPayload @deprecated(reason: "Use HttpIntegrationResetToken. Deprecated in GitLab 18.2.")
  prometheusIntegrationUpdate(
    """Parameters for PrometheusIntegrationUpdate"""
    input: PrometheusIntegrationUpdateInput!
  ): PrometheusIntegrationUpdatePayload @deprecated(reason: "Use HttpIntegrationUpdate. Deprecated in GitLab 18.2.")
  promoteToEpic(
    """Parameters for PromoteToEpic"""
    input: PromoteToEpicInput!
  ): PromoteToEpicPayload @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")
  refreshFindingTokenStatus(
    """Parameters for RefreshFindingTokenStatus"""
    input: RefreshFindingTokenStatusInput!
  ): RefreshFindingTokenStatusPayload
  refreshSecurityFindingTokenStatus(
    """Parameters for RefreshSecurityFindingTokenStatus"""
    input: RefreshSecurityFindingTokenStatusInput!
  ): RefreshSecurityFindingTokenStatusPayload
  refreshStandardsAdherenceChecks(
    """Parameters for RefreshStandardsAdherenceChecks"""
    input: RefreshStandardsAdherenceChecksInput!
  ): RefreshStandardsAdherenceChecksPayload
  refreshVulnerabilityFindingTokenStatus(
    """Parameters for RefreshVulnerabilityFindingTokenStatus"""
    input: RefreshVulnerabilityFindingTokenStatusInput!
  ): RefreshVulnerabilityFindingTokenStatusPayload
  releaseAssetLinkCreate(
    """Parameters for ReleaseAssetLinkCreate"""
    input: ReleaseAssetLinkCreateInput!
  ): ReleaseAssetLinkCreatePayload
  releaseAssetLinkDelete(
    """Parameters for ReleaseAssetLinkDelete"""
    input: ReleaseAssetLinkDeleteInput!
  ): ReleaseAssetLinkDeletePayload
  releaseAssetLinkUpdate(
    """Parameters for ReleaseAssetLinkUpdate"""
    input: ReleaseAssetLinkUpdateInput!
  ): ReleaseAssetLinkUpdatePayload
  releaseCreate(
    """Parameters for ReleaseCreate"""
    input: ReleaseCreateInput!
  ): ReleaseCreatePayload
  releaseDelete(
    """Parameters for ReleaseDelete"""
    input: ReleaseDeleteInput!
  ): ReleaseDeletePayload
  releaseUpdate(
    """Parameters for ReleaseUpdate"""
    input: ReleaseUpdateInput!
  ): ReleaseUpdatePayload
  removeProjectFromSecurityDashboard(
    """Parameters for RemoveProjectFromSecurityDashboard"""
    input: RemoveProjectFromSecurityDashboardInput!
  ): RemoveProjectFromSecurityDashboardPayload

  """
  Repositions a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`)
  """
  repositionImageDiffNote(
    """Parameters for RepositionImageDiffNote"""
    input: RepositionImageDiffNoteInput!
  ): RepositionImageDiffNotePayload

  """
  Restores a Pages deployment that has been scheduled for deletion. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  restorePagesDeployment(
    """Parameters for RestorePagesDeployment"""
    input: RestorePagesDeploymentInput!
  ): RestorePagesDeploymentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """
  Triggers a resynchronization of security policies linked to the given project
  or group (`full_path`) Introduced in GitLab 18.1: **Status**: Experiment.
  """
  resyncSecurityPolicies(
    """Parameters for ResyncSecurityPolicies"""
    input: ResyncSecurityPoliciesInput!
  ): ResyncSecurityPoliciesPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
  runnerAssignToProject(
    """Parameters for RunnerAssignToProject"""
    input: RunnerAssignToProjectInput!
  ): RunnerAssignToProjectPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
  runnerBulkPause(
    """Parameters for RunnerBulkPause"""
    input: RunnerBulkPauseInput!
  ): RunnerBulkPausePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
  runnerCacheClear(
    """Parameters for RunnerCacheClear"""
    input: RunnerCacheClearInput!
  ): RunnerCacheClearPayload
  runnerCreate(
    """Parameters for RunnerCreate"""
    input: RunnerCreateInput!
  ): RunnerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")
  runnerDelete(
    """Parameters for RunnerDelete"""
    input: RunnerDeleteInput!
  ): RunnerDeletePayload
  runnerUnassignFromProject(
    """Parameters for RunnerUnassignFromProject"""
    input: RunnerUnassignFromProjectInput!
  ): RunnerUnassignFromProjectPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
  runnerUpdate(
    """Parameters for RunnerUpdate"""
    input: RunnerUpdateInput!
  ): RunnerUpdatePayload
  runnersExportUsage(
    """Parameters for RunnersExportUsage"""
    input: RunnersExportUsageInput!
  ): RunnersExportUsagePayload
  runnersRegistrationTokenReset(
    """Parameters for RunnersRegistrationTokenReset"""
    input: RunnersRegistrationTokenResetInput!
  ): RunnersRegistrationTokenResetPayload @deprecated(reason: "Underlying feature was deprecated in 15.6 and will be removed in 18.0. Deprecated in GitLab 17.7.")
  safeDisablePipelineVariables(
    """Parameters for SafeDisablePipelineVariables"""
    input: SafeDisablePipelineVariablesInput!
  ): SafeDisablePipelineVariablesPayload
  savedReplyCreate(
    """Parameters for SavedReplyCreate"""
    input: SavedReplyCreateInput!
  ): SavedReplyCreatePayload
  savedReplyDestroy(
    """Parameters for SavedReplyDestroy"""
    input: SavedReplyDestroyInput!
  ): SavedReplyDestroyPayload
  savedReplyUpdate(
    """Parameters for SavedReplyUpdate"""
    input: SavedReplyUpdateInput!
  ): SavedReplyUpdatePayload

  """
  Commits the `policy_yaml` content to the assigned security policy project for the given project (`full_path`)
  """
  scanExecutionPolicyCommit(
    """Parameters for ScanExecutionPolicyCommit"""
    input: ScanExecutionPolicyCommitInput!
  ): ScanExecutionPolicyCommitPayload
  secretPermissionDelete(
    """Parameters for SecretPermissionDelete"""
    input: SecretPermissionDeleteInput!
  ): SecretPermissionDeletePayload
  secretPermissionUpdate(
    """Parameters for SecretPermissionUpdate"""
    input: SecretPermissionUpdateInput!
  ): SecretPermissionUpdatePayload
  securityAttributeCreate(
    """Parameters for SecurityAttributeCreate"""
    input: SecurityAttributeCreateInput!
  ): SecurityAttributeCreatePayload
  securityAttributeDestroy(
    """Parameters for SecurityAttributeDestroy"""
    input: SecurityAttributeDestroyInput!
  ): SecurityAttributeDestroyPayload
  securityAttributeProjectUpdate(
    """Parameters for SecurityAttributeProjectUpdate"""
    input: SecurityAttributeProjectUpdateInput!
  ): SecurityAttributeProjectUpdatePayload
  securityAttributeUpdate(
    """Parameters for SecurityAttributeUpdate"""
    input: SecurityAttributeUpdateInput!
  ): SecurityAttributeUpdatePayload
  securityCategoryCreate(
    """Parameters for SecurityCategoryCreate"""
    input: SecurityCategoryCreateInput!
  ): SecurityCategoryCreatePayload
  securityCategoryDestroy(
    """Parameters for SecurityCategoryDestroy"""
    input: SecurityCategoryDestroyInput!
  ): SecurityCategoryDestroyPayload
  securityCategoryUpdate(
    """Parameters for SecurityCategoryUpdate"""
    input: SecurityCategoryUpdateInput!
  ): SecurityCategoryUpdatePayload
  securityFindingCreateIssue(
    """Parameters for SecurityFindingCreateIssue"""
    input: SecurityFindingCreateIssueInput!
  ): SecurityFindingCreateIssuePayload
  securityFindingCreateMergeRequest(
    """Parameters for SecurityFindingCreateMergeRequest"""
    input: SecurityFindingCreateMergeRequestInput!
  ): SecurityFindingCreateMergeRequestPayload
  securityFindingCreateVulnerability(
    """Parameters for SecurityFindingCreateVulnerability"""
    input: SecurityFindingCreateVulnerabilityInput!
  ): SecurityFindingCreateVulnerabilityPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
  securityFindingDismiss(
    """Parameters for SecurityFindingDismiss"""
    input: SecurityFindingDismissInput!
  ): SecurityFindingDismissPayload
  securityFindingExternalIssueLinkCreate(
    """Parameters for SecurityFindingExternalIssueLinkCreate"""
    input: SecurityFindingExternalIssueLinkCreateInput!
  ): SecurityFindingExternalIssueLinkCreatePayload
  securityFindingJiraIssueFormUrlCreate(
    """Parameters for SecurityFindingJiraIssueFormUrlCreate"""
    input: SecurityFindingJiraIssueFormUrlCreateInput!
  ): SecurityFindingJiraIssueFormUrlCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
  securityFindingRevertToDetected(
    """Parameters for SecurityFindingRevertToDetected"""
    input: SecurityFindingRevertToDetectedInput!
  ): SecurityFindingRevertToDetectedPayload
  securityFindingSeverityOverride(
    """Parameters for SecurityFindingSeverityOverride"""
    input: SecurityFindingSeverityOverrideInput!
  ): SecurityFindingSeverityOverridePayload

  """
  Assigns the specified project(`security_policy_project_id`) as security policy
  project for the given project(`full_path`). If the project already has a
  security policy project, this reassigns the project's security policy project
  with the given `security_policy_project_id`
  """
  securityPolicyProjectAssign(
    """Parameters for SecurityPolicyProjectAssign"""
    input: SecurityPolicyProjectAssignInput!
  ): SecurityPolicyProjectAssignPayload

  """
  Creates and assigns a security policy project for the given project or group (`full_path`)
  """
  securityPolicyProjectCreate(
    """Parameters for SecurityPolicyProjectCreate"""
    input: SecurityPolicyProjectCreateInput!
  ): SecurityPolicyProjectCreatePayload

  """
  Creates and assigns a security policy project for the given project or group
  (`full_path`) async Introduced in GitLab 17.3: **Status**: Experiment.
  """
  securityPolicyProjectCreateAsync(
    """Parameters for SecurityPolicyProjectCreateAsync"""
    input: SecurityPolicyProjectCreateAsyncInput!
  ): SecurityPolicyProjectCreateAsyncPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Unassigns the security policy project for the given project (`full_path`).
  """
  securityPolicyProjectUnassign(
    """Parameters for SecurityPolicyProjectUnassign"""
    input: SecurityPolicyProjectUnassignInput!
  ): SecurityPolicyProjectUnassignPayload
  securityRefsTrack(
    """Parameters for SecurityRefsTrack"""
    input: SecurityRefsTrackInput!
  ): SecurityRefsTrackPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  securityRefsUntrack(
    """Parameters for SecurityRefsUntrack"""
    input: SecurityRefsUntrackInput!
  ): SecurityRefsUntrackPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  securityScanProfileAttach(
    """Parameters for SecurityScanProfileAttach"""
    input: SecurityScanProfileAttachInput!
  ): SecurityScanProfileAttachPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  securityScanProfileDetach(
    """Parameters for SecurityScanProfileDetach"""
    input: SecurityScanProfileDetachInput!
  ): SecurityScanProfileDetachPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  securityTrainingUpdate(
    """Parameters for SecurityTrainingUpdate"""
    input: SecurityTrainingUpdateInput!
  ): SecurityTrainingUpdatePayload

  """
  Enable/disable container scanning for registry for the given project.
  
  """
  setContainerScanningForRegistry(
    """Parameters for SetContainerScanningForRegistry"""
    input: SetContainerScanningForRegistryInput!
  ): SetContainerScanningForRegistryPayload

  """
  Enable or disable continuous vulnerability scanning for container scanning for
  the given project. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  setCvsForContainerScanning(
    """Parameters for SetCvsForContainerScanning"""
    input: SetCvsForContainerScanningInput!
  ): SetCvsForContainerScanningPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Enable or disable continuous vulnerability scanning for dependency scanning
  for the given project. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  setCvsForDependencyScanning(
    """Parameters for SetCvsForDependencyScanning"""
    input: SetCvsForDependencyScanningInput!
  ): SetCvsForDependencyScanningPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Creates or updates a custom attribute on a group. Only available to admins.
  Introduced in GitLab 18.9: **Status**: Experiment.
  """
  setGroupCustomAttribute(
    """Parameters for SetGroupCustomAttribute"""
    input: SetGroupCustomAttributeInput!
  ): SetGroupCustomAttributePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Enable or disable secret push protection for a group."""
  setGroupSecretPushProtection(
    """Parameters for SetGroupSecretPushProtection"""
    input: SetGroupSecretPushProtectionInput!
  ): SetGroupSecretPushProtectionPayload

  """Enable or disable Validity Checks for a group."""
  setGroupValidityChecks(
    """Parameters for SetGroupValidityChecks"""
    input: SetGroupValidityChecksInput!
  ): SetGroupValidityChecksPayload

  """
  Set the license information source for a given project.
  
  """
  setLicenseConfigurationSource(
    """Parameters for SetLicenseConfigurationSource"""
    input: SetLicenseConfigurationSourceInput!
  ): SetLicenseConfigurationSourcePayload

  """
  Enable/disable license scanning for CycloneDX SBOM files for the given project.
  
  """
  setLicenseScanningForCyclonedx(
    """Parameters for SetLicenseScanningForCyclonedx"""
    input: SetLicenseScanningForCyclonedxInput!
  ): SetLicenseScanningForCyclonedxPayload
  setPagesForceHttps(
    """Parameters for SetPagesForceHttps"""
    input: SetPagesForceHttpsInput!
  ): SetPagesForceHttpsPayload
  setPagesUseUniqueDomain(
    """Parameters for SetPagesUseUniqueDomain"""
    input: SetPagesUseUniqueDomainInput!
  ): SetPagesUseUniqueDomainPayload

  """
  Enable/disable secret push protection for the given project.
  
  """
  setPreReceiveSecretDetection(
    """Parameters for SetPreReceiveSecretDetection"""
    input: SetPreReceiveSecretDetectionInput!
  ): SetPreReceiveSecretDetectionPayload

  """
  Enable/disable secret push protection for the given project.
  
  """
  setSecretPushProtection(
    """Parameters for SetSecretPushProtection"""
    input: SetSecretPushProtectionInput!
  ): SetSecretPushProtectionPayload

  """
  Enable/disable secret detection validity checks for the given project.
  
  """
  setValidityChecks(
    """Parameters for SetValidityChecks"""
    input: SetValidityChecksInput!
  ): SetValidityChecksPayload
  starProject(
    """Parameters for StarProject"""
    input: StarProjectInput!
  ): StarProjectPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
  tagCreate(
    """Parameters for TagCreate"""
    input: TagCreateInput!
  ): TagCreatePayload
  tagDelete(
    """Parameters for TagDelete"""
    input: TagDeleteInput!
  ): TagDeletePayload
  terraformStateDelete(
    """Parameters for TerraformStateDelete"""
    input: TerraformStateDeleteInput!
  ): TerraformStateDeletePayload
  terraformStateLock(
    """Parameters for TerraformStateLock"""
    input: TerraformStateLockInput!
  ): TerraformStateLockPayload
  terraformStateUnlock(
    """Parameters for TerraformStateUnlock"""
    input: TerraformStateUnlockInput!
  ): TerraformStateUnlockPayload
  timelineEventCreate(
    """Parameters for TimelineEventCreate"""
    input: TimelineEventCreateInput!
  ): TimelineEventCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")
  timelineEventDestroy(
    """Parameters for TimelineEventDestroy"""
    input: TimelineEventDestroyInput!
  ): TimelineEventDestroyPayload
  timelineEventPromoteFromNote(
    """Parameters for TimelineEventPromoteFromNote"""
    input: TimelineEventPromoteFromNoteInput!
  ): TimelineEventPromoteFromNotePayload
  timelineEventTagCreate(
    """Parameters for TimelineEventTagCreate"""
    input: TimelineEventTagCreateInput!
  ): TimelineEventTagCreatePayload
  timelineEventUpdate(
    """Parameters for TimelineEventUpdate"""
    input: TimelineEventUpdateInput!
  ): TimelineEventUpdatePayload
  timelogCreate(
    """Parameters for TimelogCreate"""
    input: TimelogCreateInput!
  ): TimelogCreatePayload
  timelogDelete(
    """Parameters for TimelogDelete"""
    input: TimelogDeleteInput!
  ): TimelogDeletePayload
  todoCreate(
    """Parameters for TodoCreate"""
    input: TodoCreateInput!
  ): TodoCreatePayload
  todoDeleteAllDone(
    """Parameters for TodoDeleteAllDone"""
    input: TodoDeleteAllDoneInput!
  ): TodoDeleteAllDonePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
  todoDeleteMany(
    """Parameters for TodoDeleteMany"""
    input: TodoDeleteManyInput!
  ): TodoDeleteManyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
  todoMarkDone(
    """Parameters for TodoMarkDone"""
    input: TodoMarkDoneInput!
  ): TodoMarkDonePayload
  todoResolveMany(
    """Parameters for TodoResolveMany"""
    input: TodoResolveManyInput!
  ): TodoResolveManyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  todoRestore(
    """Parameters for TodoRestore"""
    input: TodoRestoreInput!
  ): TodoRestorePayload
  todoRestoreMany(
    """Parameters for TodoRestoreMany"""
    input: TodoRestoreManyInput!
  ): TodoRestoreManyPayload
  todoSnooze(
    """Parameters for TodoSnooze"""
    input: TodoSnoozeInput!
  ): TodoSnoozePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
  todoSnoozeMany(
    """Parameters for TodoSnoozeMany"""
    input: TodoSnoozeManyInput!
  ): TodoSnoozeManyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  todoUnSnooze(
    """Parameters for TodoUnSnooze"""
    input: TodoUnSnoozeInput!
  ): TodoUnSnoozePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
  todoUnsnoozeMany(
    """Parameters for TodoUnsnoozeMany"""
    input: TodoUnsnoozeManyInput!
  ): TodoUnsnoozeManyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  todosMarkAllDone(
    """Parameters for TodosMarkAllDone"""
    input: TodosMarkAllDoneInput!
  ): TodosMarkAllDonePayload
  unlinkProjectComplianceViolationIssue(
    """Parameters for UnlinkProjectComplianceViolationIssue"""
    input: UnlinkProjectComplianceViolationIssueInput!
  ): UnlinkProjectComplianceViolationIssuePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Updates the permission settings for an AI tool rule. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  updateAiToolRule(
    """Parameters for UpdateAiToolRule"""
    input: UpdateAiToolRuleInput!
  ): UpdateAiToolRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")
  updateAlertStatus(
    """Parameters for UpdateAlertStatus"""
    input: UpdateAlertStatusInput!
  ): UpdateAlertStatusPayload
  updateBoard(
    """Parameters for UpdateBoard"""
    input: UpdateBoardInput!
  ): UpdateBoardPayload
  updateBoardEpicUserPreferences(
    """Parameters for UpdateBoardEpicUserPreferences"""
    input: UpdateBoardEpicUserPreferencesInput!
  ): UpdateBoardEpicUserPreferencesPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")
  updateBoardList(
    """Parameters for UpdateBoardList"""
    input: UpdateBoardListInput!
  ): UpdateBoardListPayload
  updateComplianceFramework(
    """Parameters for UpdateComplianceFramework"""
    input: UpdateComplianceFrameworkInput!
  ): UpdateComplianceFrameworkPayload
  updateComplianceRequirement(
    """Parameters for UpdateComplianceRequirement"""
    input: UpdateComplianceRequirementInput!
  ): UpdateComplianceRequirementPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")
  updateComplianceRequirementsControl(
    """Parameters for UpdateComplianceRequirementsControl"""
    input: UpdateComplianceRequirementsControlInput!
  ): UpdateComplianceRequirementsControlPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  updateContainerExpirationPolicy(
    """Parameters for UpdateContainerExpirationPolicy"""
    input: UpdateContainerExpirationPolicyInput!
  ): UpdateContainerExpirationPolicyPayload

  """
  Updates a container repository protection rule that controls who can modify container images based on user roles.
  """
  updateContainerProtectionRepositoryRule(
    """Parameters for UpdateContainerProtectionRepositoryRule"""
    input: UpdateContainerProtectionRepositoryRuleInput!
  ): UpdateContainerProtectionRepositoryRulePayload

  """
  Updates a protection rule that controls which user roles can modify container
  image tags matching a specified pattern. Introduced in GitLab 17.8:
  **Status**: Experiment.
  """
  updateContainerProtectionTagRule(
    """Parameters for UpdateContainerProtectionTagRule"""
    input: UpdateContainerProtectionTagRuleInput!
  ): UpdateContainerProtectionTagRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Updates a custom dashboard. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  updateCustomDashboard(
    """Parameters for UpdateCustomDashboard"""
    input: UpdateCustomDashboardInput!
  ): UpdateCustomDashboardPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """These settings can be adjusted only by the group Owner."""
  updateDependencyProxyImageTtlGroupPolicy(
    """Parameters for UpdateDependencyProxyImageTtlGroupPolicy"""
    input: UpdateDependencyProxyImageTtlGroupPolicyInput!
  ): UpdateDependencyProxyImageTtlGroupPolicyPayload

  """
  Updates or creates dependency proxy for packages settings.
  Requires the packages and dependency proxy to be enabled in the config.
  Requires the packages feature to be enabled at the project level.
  """
  updateDependencyProxyPackagesSettings(
    """Parameters for UpdateDependencyProxyPackagesSettings"""
    input: UpdateDependencyProxyPackagesSettingsInput!
  ): UpdateDependencyProxyPackagesSettingsPayload

  """These settings can be adjusted only by the group Owner."""
  updateDependencyProxySettings(
    """Parameters for UpdateDependencyProxySettings"""
    input: UpdateDependencyProxySettingsInput!
  ): UpdateDependencyProxySettingsPayload
  updateDuoWorkflowToolCallApprovals(
    """Parameters for UpdateDuoWorkflowToolCallApprovals"""
    input: UpdateDuoWorkflowToolCallApprovalsInput!
  ): UpdateDuoWorkflowToolCallApprovalsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  updateEpic(
    """Parameters for UpdateEpic"""
    input: UpdateEpicInput!
  ): UpdateEpicPayload @deprecated(reason: "Replaced by `WorkItem` type. For more information, see [migration guide](https://docs.gitlab.com/api/graphql/epic_work_items_api_migration_guide/). Deprecated in GitLab 17.5.")
  updateEpicBoardList(
    """Parameters for UpdateEpicBoardList"""
    input: UpdateEpicBoardListInput!
  ): UpdateEpicBoardListPayload @deprecated(reason: "Replaced by WorkItem type. Deprecated in GitLab 17.5.")

  """
  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 an update, and no Note will be
  returned.
  
  
  """
  updateImageDiffNote(
    """Parameters for UpdateImageDiffNote"""
    input: UpdateImageDiffNoteInput!
  ): UpdateImageDiffNotePayload
  updateIssue(
    """Parameters for UpdateIssue"""
    input: UpdateIssueInput!
  ): UpdateIssuePayload
  updateIteration(
    """Parameters for UpdateIteration"""
    input: UpdateIterationInput!
  ): UpdateIterationPayload

  """These settings can be adjusted only by the group Owner."""
  updateNamespacePackageSettings(
    """Parameters for UpdateNamespacePackageSettings"""
    input: UpdateNamespacePackageSettingsInput!
  ): UpdateNamespacePackageSettingsPayload

  """
  Updates a Note.
  If the body of the Note contains only quick actions,
  the Note will be destroyed during an update, and no Note will be
  returned.
  
  """
  updateNote(
    """Parameters for UpdateNote"""
    input: UpdateNoteInput!
  ): UpdateNotePayload
  updatePackagesCleanupPolicy(
    """Parameters for UpdatePackagesCleanupPolicy"""
    input: UpdatePackagesCleanupPolicyInput!
  ): UpdatePackagesCleanupPolicyPayload

  """
  Updates a package protection rule to restrict access to project packages. You
  can prevent users without certain permissions from altering packages.
  """
  updatePackagesProtectionRule(
    """Parameters for UpdatePackagesProtectionRule"""
    input: UpdatePackagesProtectionRuleInput!
  ): UpdatePackagesProtectionRulePayload
  updateProjectComplianceViolation(
    """Parameters for UpdateProjectComplianceViolation"""
    input: UpdateProjectComplianceViolationInput!
  ): UpdateProjectComplianceViolationPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
  updateRequirement(
    """Parameters for UpdateRequirement"""
    input: UpdateRequirementInput!
  ): UpdateRequirementPayload
  updateSnippet(
    """Parameters for UpdateSnippet"""
    input: UpdateSnippetInput!
  ): UpdateSnippetPayload

  """
  Updates a protection rule for a Terraform state backend. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  updateTerraformStateProtectionRule(
    """Parameters for UpdateTerraformStateProtectionRule"""
    input: UpdateTerraformStateProtectionRuleInput!
  ): UpdateTerraformStateProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Updates or creates virtual registries settings for a root group. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  updateVirtualRegistriesSetting(
    """Parameters for UpdateVirtualRegistriesSetting"""
    input: UpdateVirtualRegistriesSettingInput!
  ): UpdateVirtualRegistriesSettingPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Creates an upload (uploads a file to a project or group for use in Markdown).
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  uploadCreate(
    """Parameters for UploadCreate"""
    input: UploadCreateInput!
  ): UploadCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Deletes an upload."""
  uploadDelete(
    """Parameters for UploadDelete"""
    input: UploadDeleteInput!
  ): UploadDeletePayload

  """
  Update the flat per-user budget cap for a subscription. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  upsertFlatUserCap(
    """Parameters for UpsertFlatUserCap"""
    input: UpsertFlatUserCapInput!
  ): UpsertFlatUserCapPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Bulk upsert per-user budget cap overrides. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  upsertUserBudgetCapOverrides(
    """Parameters for UpsertUserBudgetCapOverrides"""
    input: UpsertUserBudgetCapOverridesInput!
  ): UpsertUserBudgetCapOverridesPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
  userAchievementPrioritiesUpdate(
    """Parameters for UserAchievementPrioritiesUpdate"""
    input: UserAchievementPrioritiesUpdateInput!
  ): UserAchievementPrioritiesUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")
  userAchievementsDelete(
    """Parameters for UserAchievementsDelete"""
    input: UserAchievementsDeleteInput!
  ): UserAchievementsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")
  userAchievementsUpdate(
    """Parameters for UserAchievementsUpdate"""
    input: UserAchievementsUpdateInput!
  ): UserAchievementsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")
  userAddOnAssignmentBulkCreate(
    """Parameters for UserAddOnAssignmentBulkCreate"""
    input: UserAddOnAssignmentBulkCreateInput!
  ): UserAddOnAssignmentBulkCreatePayload
  userAddOnAssignmentBulkRemove(
    """Parameters for UserAddOnAssignmentBulkRemove"""
    input: UserAddOnAssignmentBulkRemoveInput!
  ): UserAddOnAssignmentBulkRemovePayload
  userAddOnAssignmentCreate(
    """Parameters for UserAddOnAssignmentCreate"""
    input: UserAddOnAssignmentCreateInput!
  ): UserAddOnAssignmentCreatePayload
  userAddOnAssignmentRemove(
    """Parameters for UserAddOnAssignmentRemove"""
    input: UserAddOnAssignmentRemoveInput!
  ): UserAddOnAssignmentRemovePayload
  userCalloutCreate(
    """Parameters for UserCalloutCreate"""
    input: UserCalloutCreateInput!
  ): UserCalloutCreatePayload

  """
  Creates or updates a custom attribute on a user. Only available to admins.
  Introduced in GitLab 18.9: **Status**: Experiment.
  """
  userCustomAttributeSet(
    """Parameters for UserCustomAttributeSet"""
    input: UserCustomAttributeSetInput!
  ): UserCustomAttributeSetPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")
  userGroupCalloutCreate(
    """Parameters for UserGroupCalloutCreate"""
    input: UserGroupCalloutCreateInput!
  ): UserGroupCalloutCreatePayload
  userPreferencesUpdate(
    """Parameters for UserPreferencesUpdate"""
    input: UserPreferencesUpdateInput!
  ): UserPreferencesUpdatePayload
  userSetNamespaceCommitEmail(
    """Parameters for UserSetNamespaceCommitEmail"""
    input: UserSetNamespaceCommitEmailInput!
  ): UserSetNamespaceCommitEmailPayload

  """
  Creates a value stream. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  valueStreamCreate(
    """Parameters for ValueStreamCreate"""
    input: ValueStreamCreateInput!
  ): ValueStreamCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Destroy a value stream. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  valueStreamDestroy(
    """Parameters for ValueStreamDestroy"""
    input: ValueStreamDestroyInput!
  ): ValueStreamDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Updates a value stream. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  valueStreamUpdate(
    """Parameters for ValueStreamUpdate"""
    input: ValueStreamUpdateInput!
  ): ValueStreamUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Create a verified namespace and mark all child catalog resources with the passed verification level info.
  """
  verifiedNamespaceCreate(
    """Parameters for VerifiedNamespaceCreate"""
    input: VerifiedNamespaceCreateInput!
  ): VerifiedNamespaceCreatePayload

  """
  Create or update virtual registries cleanup policy for a root group. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  virtualRegistriesCleanupPolicyUpsert(
    """Parameters for VirtualRegistriesCleanupPolicyUpsert"""
    input: VirtualRegistriesCleanupPolicyUpsertInput!
  ): VirtualRegistriesCleanupPolicyUpsertPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
  vulnerabilitiesArchive(
    """Parameters for VulnerabilitiesArchive"""
    input: VulnerabilitiesArchiveInput!
  ): VulnerabilitiesArchivePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
  vulnerabilitiesCreateIssue(
    """Parameters for VulnerabilitiesCreateIssue"""
    input: VulnerabilitiesCreateIssueInput!
  ): VulnerabilitiesCreateIssuePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")
  vulnerabilitiesDismiss(
    """Parameters for VulnerabilitiesDismiss"""
    input: VulnerabilitiesDismissInput!
  ): VulnerabilitiesDismissPayload

  """
  Remove all Vulnerabilities and related information from a given project.
  [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/412602) in GitLab 16.7
  """
  vulnerabilitiesRemoveAllFromProject(
    """Parameters for VulnerabilitiesRemoveAllFromProject"""
    input: VulnerabilitiesRemoveAllFromProjectInput!
  ): VulnerabilitiesRemoveAllFromProjectPayload
  vulnerabilitiesSeverityOverride(
    """Parameters for vulnerabilitiesSeverityOverride"""
    input: vulnerabilitiesSeverityOverrideInput!
  ): vulnerabilitiesSeverityOverridePayload
  vulnerabilityConfirm(
    """Parameters for VulnerabilityConfirm"""
    input: VulnerabilityConfirmInput!
  ): VulnerabilityConfirmPayload
  vulnerabilityCreate(
    """Parameters for VulnerabilityCreate"""
    input: VulnerabilityCreateInput!
  ): VulnerabilityCreatePayload
  vulnerabilityDismiss(
    """Parameters for VulnerabilityDismiss"""
    input: VulnerabilityDismissInput!
  ): VulnerabilityDismissPayload

  """
  Dismiss a vulnerability false positive flag Introduced in GitLab 18.6: **Status**: Experiment.
  """
  vulnerabilityDismissFalsePositiveFlag(
    """Parameters for VulnerabilityDismissFalsePositiveFlag"""
    input: VulnerabilityDismissFalsePositiveFlagInput!
  ): VulnerabilityDismissFalsePositiveFlagPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
  vulnerabilityExternalIssueLinkCreate(
    """Parameters for VulnerabilityExternalIssueLinkCreate"""
    input: VulnerabilityExternalIssueLinkCreateInput!
  ): VulnerabilityExternalIssueLinkCreatePayload
  vulnerabilityExternalIssueLinkDestroy(
    """Parameters for VulnerabilityExternalIssueLinkDestroy"""
    input: VulnerabilityExternalIssueLinkDestroyInput!
  ): VulnerabilityExternalIssueLinkDestroyPayload
  vulnerabilityIssueLinkCreate(
    """Parameters for VulnerabilityIssueLinkCreate"""
    input: VulnerabilityIssueLinkCreateInput!
  ): VulnerabilityIssueLinkCreatePayload

  """
  Link a merge request to a vulnerability Introduced in GitLab 18.4: **Status**: Experiment.
  """
  vulnerabilityLinkMergeRequest(
    """Parameters for VulnerabilityLinkMergeRequest"""
    input: VulnerabilityLinkMergeRequestInput!
  ): VulnerabilityLinkMergeRequestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
  vulnerabilityResolve(
    """Parameters for VulnerabilityResolve"""
    input: VulnerabilityResolveInput!
  ): VulnerabilityResolvePayload
  vulnerabilityRevertToDetected(
    """Parameters for VulnerabilityRevertToDetected"""
    input: VulnerabilityRevertToDetectedInput!
  ): VulnerabilityRevertToDetectedPayload

  """
  Unlink a merge request from a vulnerability Introduced in GitLab 18.5: **Status**: Experiment.
  """
  vulnerabilityUnlinkMergeRequest(
    """Parameters for VulnerabilityUnlinkMergeRequest"""
    input: VulnerabilityUnlinkMergeRequestInput!
  ): VulnerabilityUnlinkMergeRequestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")
  wikiPageSubscribe(
    """Parameters for WikiPageSubscribe"""
    input: WikiPageSubscribeInput!
  ): WikiPageSubscribePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Adds a closing merge request to a work item Introduced in GitLab 17.1: **Status**: Experiment.
  """
  workItemAddClosingMergeRequest(
    """Parameters for WorkItemAddClosingMergeRequest"""
    input: WorkItemAddClosingMergeRequestInput!
  ): WorkItemAddClosingMergeRequestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """
  Add linked items to the work item. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  workItemAddLinkedItems(
    """Parameters for WorkItemAddLinkedItems"""
    input: WorkItemAddLinkedItemsInput!
  ): WorkItemAddLinkedItemsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """
  Enables or disables a work item type for a namespace. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  workItemAvailabilityToggle(
    """Parameters for WorkItemAvailabilityToggle"""
    input: WorkItemAvailabilityToggleInput!
  ): WorkItemAvailabilityTogglePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Moves work items between projects or groups. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  workItemBulkMove(
    """Parameters for WorkItemBulkMove"""
    input: WorkItemBulkMoveInput!
  ): WorkItemBulkMovePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Allows updating several properties for a set of work items. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  workItemBulkUpdate(
    """Parameters for WorkItemBulkUpdate"""
    input: WorkItemBulkUpdateInput!
  ): WorkItemBulkUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Converts the work item to a new type Introduced in GitLab 15.11: **Status**: Experiment.
  """
  workItemConvert(
    """Parameters for WorkItemConvert"""
    input: WorkItemConvertInput!
  ): WorkItemConvertPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")

  """
  Creates a work item. Introduced in GitLab 15.1: **Status**: Experiment.
  """
  workItemCreate(
    """Parameters for WorkItemCreate"""
    input: WorkItemCreateInput!
  ): WorkItemCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")

  """
  Creates a work item from a task in another work item's description. Introduced in GitLab 15.1: **Status**: Experiment.
  """
  workItemCreateFromTask(
    """Parameters for WorkItemCreateFromTask"""
    input: WorkItemCreateFromTaskInput!
  ): WorkItemCreateFromTaskPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")

  """
  Deletes a work item. Introduced in GitLab 15.1: **Status**: Experiment.
  """
  workItemDelete(
    """Parameters for WorkItemDelete"""
    input: WorkItemDeleteInput!
  ): WorkItemDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")
  workItemExport(
    """Parameters for WorkItemExport"""
    input: WorkItemExportInput!
  ): WorkItemExportPayload @deprecated(reason: "Use WorkItemsCsvExport. Deprecated in GitLab 18.0.")

  """
  Adds children to a given work item's hierarchy by Global ID. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  workItemHierarchyAddChildrenItems(
    """Parameters for WorkItemHierarchyAddChildrenItems"""
    input: WorkItemHierarchyAddChildrenItemsInput!
  ): WorkItemHierarchyAddChildrenItemsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Remove items linked to the work item. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  workItemRemoveLinkedItems(
    """Parameters for WorkItemRemoveLinkedItems"""
    input: WorkItemRemoveLinkedItemsInput!
  ): WorkItemRemoveLinkedItemsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """
  Creates a saved view. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewCreate(
    """Parameters for WorkItemSavedViewCreate"""
    input: WorkItemSavedViewCreateInput!
  ): WorkItemSavedViewCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Deletes a saved view. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewDelete(
    """Parameters for WorkItemSavedViewDelete"""
    input: WorkItemSavedViewDeleteInput!
  ): WorkItemSavedViewDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Reorders a saved view for the current user. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewReorder(
    """Parameters for WorkItemSavedViewReorder"""
    input: WorkItemSavedViewReorderInput!
  ): WorkItemSavedViewReorderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Subscribes the current user to a saved view. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewSubscribe(
    """Parameters for WorkItemSavedViewSubscribe"""
    input: WorkItemSavedViewSubscribeInput!
  ): WorkItemSavedViewSubscribePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Unsubscribes the current user from a saved view. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewUnsubscribe(
    """Parameters for WorkItemSavedViewUnsubscribe"""
    input: WorkItemSavedViewUnsubscribeInput!
  ): WorkItemSavedViewUnsubscribePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Updates a saved view. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  workItemSavedViewUpdate(
    """Parameters for WorkItemSavedViewUpdate"""
    input: WorkItemSavedViewUpdateInput!
  ): WorkItemSavedViewUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Updates work item settings for a root group or organization. Omit fullPath to
  update settings for the current organization. Introduced in GitLab 19.0:
  **Status**: Experiment.
  """
  workItemSettingsUpdate(
    """Parameters for WorkItemSettingsUpdate"""
    input: WorkItemSettingsUpdateInput!
  ): WorkItemSettingsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
  workItemSubscribe(
    """Parameters for WorkItemSubscribe"""
    input: WorkItemSubscribeInput!
  ): WorkItemSubscribePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")
  workItemTypeCreate(
    """Parameters for WorkItemTypeCreate"""
    input: WorkItemTypeCreateInput!
  ): WorkItemTypeCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
  workItemTypeUpdate(
    """Parameters for WorkItemTypeUpdate"""
    input: WorkItemTypeUpdateInput!
  ): WorkItemTypeUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Updates a work item by Global ID. Introduced in GitLab 15.1: **Status**: Experiment.
  """
  workItemUpdate(
    """Parameters for WorkItemUpdate"""
    input: WorkItemUpdateInput!
  ): WorkItemUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")

  """
  Create or Update user preferences for a work item type and namespace. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  workItemUserPreferenceUpdate(
    """Parameters for WorkItemUserPreferenceUpdate"""
    input: WorkItemUserPreferenceUpdateInput!
  ): WorkItemUserPreferenceUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
  workItemsCsvExport(
    """Parameters for WorkItemsCsvExport"""
    input: WorkItemsCsvExportInput!
  ): WorkItemsCsvExportPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")
  workItemsCsvImport(
    """Parameters for WorkItemsCsvImport"""
    input: WorkItemsCsvImportInput!
  ): WorkItemsCsvImportPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Reorder a work item in the hierarchy tree. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  workItemsHierarchyReorder(
    """Parameters for workItemsHierarchyReorder"""
    input: workItemsHierarchyReorderInput!
  ): workItemsHierarchyReorderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Reorders a work item. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  workItemsReorder(
    """Parameters for workItemsReorder"""
    input: workItemsReorderInput!
  ): workItemsReorderPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
  workspaceCreate(
    """Parameters for WorkspaceCreate"""
    input: WorkspaceCreateInput!
  ): WorkspaceCreatePayload
  workspaceUpdate(
    """Parameters for WorkspaceUpdate"""
    input: WorkspaceUpdateInput!
  ): WorkspaceUpdatePayload
}

"""Different toggles for changing mutator behavior"""
enum MutationOperationMode {
  """Performs a replace operation."""
  REPLACE

  """Performs an append operation."""
  APPEND

  """Performs a removal operation."""
  REMOVE
}

type Namespace implements Todoable {
  """
  Achievements for the namespace. Returns `null` if the `achievements` feature
  flag is disabled. Introduced in GitLab 15.8: **Status**: Experiment.
  """
  achievements(
    """Filter achievements by IDs."""
    ids: [AchievementsAchievementID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.")

  """
  Path for the namespace's achievements. Returns `null` if the namespace is not
  a group, or the `achievements` feature flag is disabled. Introduced in GitLab
  17.0: **Status**: Experiment.
  """
  achievementsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """
  Size limit for repositories in the namespace in bytes. This limit only applies
  to namespaces under Project limit enforcement.
  """
  actualRepositorySizeLimit: Float

  """
  The actual storage size limit (in bytes) based on the enforcement type of
  either repository or namespace. This limit is agnostic of enforcement type.
  """
  actualSizeLimit: Float

  """
  Users in the namespace hierarchy that add-ons are applicable for. This only
  applies to root namespaces. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  addOnEligibleUsers(
    """Sort the user list."""
    sort: GitlabSubscriptionsUserSort

    """Search the user list."""
    search: String

    """Type of add on to filter the eligible users by."""
    addOnType: GitlabSubscriptionsAddOnType!

    """Global IDs of the add on purchases to find assignments for."""
    addOnPurchaseIds: [GitlabSubscriptionsAddOnPurchaseID!]!

    """Filter users list by assigned seat."""
    filterByAssignedSeat: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AddOnUserConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Additional storage purchased for the root namespace in bytes."""
  additionalPurchasedStorageSize: Float

  """
  List of allowed or denied domains for AI features. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiDomainSettings(
    """Type of domain setting to retrieve."""
    domainSettingType: AiDomainSettingType!

    """Filter domains by substring match."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): StringConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  AI settings for the namespace. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  aiSettings: AiNamespaceSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Approval Policies of the project"""
  approvalPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ApprovalPolicyConnection

  """
  Features available on the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  availableFeatures: NamespaceAvailableFeatures! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """URL to avatar image file of the namespace."""
  avatarUrl: String

  """
  Whether the current user can push the initial commit to the default branch of
  new projects in the namespace. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  canPushInitialCommit: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Namespace CI/CD settings for the namespace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  ciCdSettings: CiCdSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Compliance frameworks available to projects in this namespace."""
  complianceFrameworks(
    """Global ID of a specific compliance framework to return."""
    id: ComplianceManagementFrameworkID

    """Search framework with most similar names."""
    search: String = null

    """Sort compliance frameworks by the criteria."""
    sort: ComplianceFrameworkSort = null

    """List of Global IDs of compliance frameworks to return."""
    ids: [ComplianceManagementFrameworkID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Includes at least one project where the repository size exceeds the limit.
  This only applies to namespaces under Project limit enforcement.
  """
  containsLockedProjects: Boolean

  """
  Indicates if the cross_project_pipeline feature is available for the namespace.
  """
  crossProjectPipelineAvailable: Boolean!

  """
  Custom fields configured for the namespace. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customFields(
    """
    Filter for active fields. If `false`, excludes active fields. If `true`, returns only active fields.
    """
    active: Boolean

    """Filter for selected field type."""
    fieldType: CustomFieldType

    """Search query for custom field name."""
    search: String

    """Filter custom fields associated to the given work item type."""
    workItemTypeId: WorkItemsTypeID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomFieldConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Description of the namespace."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """
  Indicates whether the namespace is designated to centrally manage security
  policies. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  designatedAsCsp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Full name of the namespace."""
  fullName: String!

  """Full path of the namespace."""
  fullPath: ID!

  """ID of the namespace."""
  id: ID!

  """
  Import source users of the namespace. This field can only be resolved for one
  namespace in any single request. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  importSourceUsers(
    """
    Filter mapping of users on source instance to users on destination instance by status.
    """
    statuses: [ImportSourceUserStatus!]

    """
    Query to search mappings by name or username of users on source instance.
    """
    search: String

    """
    Sort mapping of users on source instance to users on destination instance by the criteria.
    """
    sort: SourceUserSort = SOURCE_NAME_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ImportSourceUserConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Indicates if Large File Storage (LFS) is enabled for namespace."""
  lfsEnabled: Boolean

  """
  Check whether a licensed feature is available. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  licensedFeatureAvailability(
    """Feature to check availability for (for example, EPICS)."""
    feature: LicensedFeature!
  ): LicensedFeatureAvailability! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Licensed features available on the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  licensedFeatures: NamespaceAvailableFeatures! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Lifecycle templates available to the namespace. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  lifecycleTemplates: [WorkItemLifecycle!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Lifecycles of work items available to the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  lifecycles(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemLifecycleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Namespace relevant paths to create links on the UI. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  linkPaths: NamespacesLinkPaths @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Namespace relevant paths to create markdown links on the UI. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  markdownPaths: MarkdownPaths @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Indicates if merge requests are enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  mergeRequestsEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Metadata information for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  metadata: NamespaceMetadata @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Name of the namespace."""
  name: String!

  """Namespace settings for the namespace."""
  namespaceSettings: NamespaceSettings

  """Package settings for the namespace."""
  packageSettings: PackageSettings

  """List of the namespaces's Pages Deployments."""
  pagesDeployments(
    """Filter by active or inactive state."""
    active: Boolean

    """Sort results."""
    sort: Sort

    """
    Filter deployments that are
    versioned or unversioned.
    """
    versioned: 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
  ): PagesDeploymentConnection

  """Path of the namespace."""
  path: String!

  """Pipeline Execution Policies of the namespace."""
  pipelineExecutionPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionPolicyConnection

  """Pipeline Execution Schedule Policies of the namespace."""
  pipelineExecutionSchedulePolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionSchedulePolicyConnection

  """
  Subscription plan associated with the namespace. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  plan: NamespacePlan @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Number of product analytics events namespace is permitted to store per cycle.
  Introduced in GitLab 16.9: **Status**: Experiment.
  """
  productAnalyticsStoredEventsLimit: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  Projects within this namespace. Returns projects from the parent group if namespace is project.
  """
  projects(
    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

    """
    Include also projects from parent group. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    includeSiblingProjects: Boolean = false

    """Include also archived projects."""
    includeArchived: Boolean = true

    """Include projects that are not aimed for deletion."""
    notAimedForDeletion: Boolean = false

    """Search project with most similar names or paths."""
    search: String = null

    """Sort projects by the criteria."""
    sort: NamespaceProjectSort = null

    """Filter projects by IDs."""
    ids: [ID!] = null

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Return only projects that use the namespace domain for pages projects."""
    withNamespaceDomainPages: Boolean

    """Return only archived projects."""
    archivedOnly: Boolean

    """Filters applied when selecting a compliance framework."""
    complianceFrameworkFilters: ComplianceFrameworkFilters

    """Returns only the projects which have code coverage."""
    hasCodeCoverage: Boolean = false

    """Returns only the projects which have vulnerabilities."""
    hasVulnerabilities: Boolean = false

    """Return only the projects related to the specified SBOM component."""
    sbomComponentId: ID = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!

  """
  Cluster agents in the namespace with remote development capabilities
  Deprecated in GitLab 17.8: Use `workspacesClusterAgents`.
  """
  remoteDevelopmentClusterAgents(
    """Filter the types of cluster agents to return."""
    filter: NamespaceClusterAgentFilter!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "Use `workspacesClusterAgents`. Deprecated in GitLab 17.8.")

  """
  Number of projects in the root namespace where the repository size exceeds the
  limit. This only applies to namespaces under Project limit enforcement.
  """
  repositorySizeExcessProjectCount: Int

  """Indicates if users can request access to namespace."""
  requestAccessEnabled: Boolean

  """Top-level namespace of the namespace."""
  rootNamespace: Namespace!

  """
  Aggregated storage statistics of the namespace. Only available for root namespaces.
  """
  rootStorageStatistics: RootStorageStatistics

  """
  Saved views associated with the namespace. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  savedViews(
    """
    ID of the saved view. Required when requesting work_items, filters, or filter_warnings fields.
    """
    id: WorkItemsSavedViewsSavedViewID

    """Search query for saved view name or description."""
    search: String

    """Whether to return only saved views subscribed to by the current user."""
    subscribedOnly: Boolean

    """Sort work items by criteria. Default is ID."""
    sort: WorkItemsSavedViewsSort = ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemSavedViewTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Scan Execution Policies of the namespace."""
  scanExecutionPolicies(
    """
    Filters policies by the action scan type. Only these scan types are
    supported: `dast`, `secret_detection`, `cluster_image_scanning`,
    `container_scanning`, `sast`, `sast_iac`, `dependency_scanning`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanExecutionPolicyConnection

  """
  Scan Result Policies of the project Deprecated in GitLab 16.9: Use `approvalPolicies`.
  """
  scanResultPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanResultPolicyConnection @deprecated(reason: "Use `approvalPolicies`. Deprecated in GitLab 16.9.")

  """
  List of security policies configured for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  securityPolicies(
    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """Filter policies by type."""
    type: PolicyType = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityPolicyTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Security policy project assigned to the namespace."""
  securityPolicyProject: Project

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting

  """
  Data needed to render the sidebar for the namespace. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  sidebar: NamespaceSidebar @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Statuses of work items available to the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  statuses(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemStatusConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  The storage limit (in bytes) included with the root namespace plan. This limit
  only applies to namespaces under namespace limit enforcement.
  """
  storageSizeLimit: Float

  """
  Maximum number of subscribed saved views allowed on the namespace. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  subscribedSavedViewLimit: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Find subscription history records. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  subscriptionHistory(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GitlabSubscriptionHistoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Targeted messages for the namespace. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  targetedMessages: [TargetedMessage!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Timelog categories for the namespace. Introduced in GitLab 15.3: **Status**: Experiment.
  """
  timelogCategories(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """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.
  This only applies to namespaces under Project limit enforcement.
  """
  totalRepositorySizeExcess: Float

  """Permissions for the current user on the resource"""
  userPermissions: NamespacePermissions!

  """Visibility of the namespace."""
  visibility: String

  """
  Vulnerability Management Policies of the project. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  vulnerabilityManagementPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityManagementPolicyConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """URL of the namespace."""
  webUrl: String

  """
  Find a work item by IID directly associated with the namespace (project or
  group) Introduced in GitLab 16.10: **Status**: Experiment.
  """
  workItem(
    """IID of the work item."""
    iid: String!
  ): WorkItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """
  Work item description templates available to the namespace. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  workItemDescriptionTemplates(
    """
    Fetches the specific DescriptionTemplate. Deprecated in GitLab 17.9: name and project ID are both required for fetching,
                           use DescriptionTemplateContentInputType instead.
    """
    name: String

    """
    Search for DescriptionTemplates by name. Deprecated in GitLab 17.8: search
    on template names is performed on the FE only.
    """
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemDescriptionTemplateConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Valid target work item types and a suggested default for moving work items of
  given source types into this namespace. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  workItemMoveTargets(
    """
    Full path of the source namespace. For example, `gitlab-org/gitlab-foss`.
    """
    sourceFullPath: String!

    """
    Global IDs of the source work item types to compute move targets for. A maximum of 50 IDs can be provided.
    """
    sourceTypeIds: [WorkItemsTypeID!]!
  ): [WorkItemMoveTarget!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Work item settings for the namespace. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  workItemSettings: WorkItemSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Counts of work items by state for the namespace (project or group). Returns
  `null` for user namespaces. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  workItemStateCounts(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]

    """
    Include work items from ancestor groups. Ignored for project namespaces.
    """
    includeAncestors: Boolean = false

    """
    Include work items from descendant groups and projects. Ignored for project namespaces.
    """
    includeDescendants: Boolean = false

    """
    Exclude work items from projects within the group. Ignored for project
    namespaces. Introduced in GitLab 17.5: **Status**: Experiment.
    """
    excludeProjects: Boolean = false

    """
    Exclude group-level work items within the group and its descendants. Ignored
    for project namespaces. Introduced in GitLab 18.4: **Status**: Experiment.
    """
    excludeGroupWorkItems: Boolean = false

    """
    Return work items from archived projects. Ignored for project namespaces.
    Introduced in GitLab 18.5: **Status**: Experiment.
    """
    includeArchived: Boolean = false

    """
    List items overlapping the given timeframe. Ignored for project namespaces.
    """
    timeframe: Timeframe
  ): WorkItemStateCountsType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Work item types available to the namespace. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  workItemTypes(
    """
    Filter work item types by the given name. Deprecated in GitLab 19.0:
    Name-based filtering is no longer supported with introduction of
    configurable work item types in 19.0.
    """
    name: IssueType

    """
    When true, returns only the available work item types for the current user.
    This experimental field will be removed in 19.0. Use canUserCreateItems and
    isFilterableListView fields from the WorkItemTypes API instead. Introduced
    in GitLab 18.6: **Status**: Experiment.
    """
    onlyAvailable: 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
  ): WorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Work items that belong to the namespace (project or group). Returns `null` for
  user namespaces. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  workItems(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]

    """
    Include work items from ancestor groups. Ignored for project namespaces.
    """
    includeAncestors: Boolean = false

    """
    Include work items from descendant groups and projects. Ignored for project namespaces.
    """
    includeDescendants: Boolean = false

    """
    Exclude work items from projects within the group. Ignored for project
    namespaces. Introduced in GitLab 17.5: **Status**: Experiment.
    """
    excludeProjects: Boolean = false

    """
    Exclude group-level work items within the group and its descendants. Ignored
    for project namespaces. Introduced in GitLab 18.4: **Status**: Experiment.
    """
    excludeGroupWorkItems: Boolean = false

    """
    Return work items from archived projects. Ignored for project namespaces.
    Introduced in GitLab 18.5: **Status**: Experiment.
    """
    includeArchived: Boolean = false

    """
    List items overlapping the given timeframe. Ignored for project namespaces.
    """
    timeframe: Timeframe

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  List of available widgets for the given work items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  workItemsWidgets(
    """
    Global ID array of work items types to fetch available widgets for. A max of 100 IDs can be provided at a time.
    """
    ids: [WorkItemsTypeID!]!

    """
    When true, returns the union of widgets across all work item types. When
    false, returns only widgets common to all work item types.
    """
    union: Boolean! = false
  ): [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Cluster agents in the namespace with workspaces capabilities Introduced in GitLab 17.8: **Status**: Experiment.
  """
  workspacesClusterAgents(
    """Filter the types of cluster agents to return."""
    filter: NamespaceClusterAgentFilter!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")
}

type NamespaceAvailableFeatures {
  """
  Whether blocked issues are enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hasBlockedIssuesFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Whether custom fields are enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hasCustomFieldsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Whether design management is enabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  hasDesignManagementFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether Duo remote flows are enabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  hasDuoRemoteFlowsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether epics are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasEpicsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether group bulk edit is enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hasGroupBulkEditFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Whether issuable health status is enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasIssuableHealthStatusFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether issue date filter is enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasIssueDateFilterFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether issue weights are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasIssueWeightsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether iterations are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasIterationsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether linked items epics are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasLinkedItemsEpicsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether OKRs are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasOkrsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether quality management is enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasQualityManagementFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether scoped labels are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasScopedLabelsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether subepics are enabled for the namespace. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  hasSubepicsFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Whether work item statuses are enabled for the namespace. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hasWorkItemStatusFeature: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
}

type NamespaceBan {
  """Global ID of the namespace ban."""
  id: GlobalID!

  """Root namespace to which the ban applies."""
  namespace: Namespace!

  """User to which the namespace ban applies."""
  user: UserCore!
}

"""Autogenerated input type of NamespaceBanDestroy"""
input NamespaceBanDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the namespace ban to remove."""
  id: NamespacesNamespaceBanID!
}

"""Autogenerated return type of NamespaceBanDestroy."""
type NamespaceBanDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Namespace Ban."""
  namespaceBan: NamespaceBan
}

type NamespaceCiCdSetting {
  """
  Indicates if stale runners directly belonging to the namespace should be periodically pruned.
  """
  allowStaleRunnerPruning: Boolean

  """Namespace the CI/CD settings belong to."""
  namespace: Namespace
}

"""Autogenerated input type of NamespaceCiCdSettingsUpdate"""
input NamespaceCiCdSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Indicates if stale runners directly belonging to the namespace should be periodically pruned.
  """
  allowStaleRunnerPruning: Boolean

  """Full path of the namespace the settings belong to."""
  fullPath: ID!
}

"""Autogenerated return type of NamespaceCiCdSettingsUpdate."""
type NamespaceCiCdSettingsUpdatePayload {
  """CI/CD settings after mutation."""
  ciCdSettings: NamespaceCiCdSetting!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
Possible filter types for remote development cluster agents in a namespace
"""
enum NamespaceClusterAgentFilter {
  """
  Cluster agents in the namespace that can be used for hosting workspaces.
  """
  AVAILABLE

  """Cluster agents that are directly mapped to the given namespace."""
  DIRECTLY_MAPPED

  """Cluster agents within a namespace that are not directly mapped to it."""
  UNMAPPED

  """
  All cluster agents in the namespace that can be used for hosting worksapces.
  """
  ALL
}

"""Represents a namespace-cluster-agent mapping."""
type NamespaceClusterAgentMapping {
  """Global ID of the cluster agent."""
  clusterAgentId: ClustersAgentID!

  """Timestamp when the namespace-cluster-agent mapping was created."""
  createdAt: Time!

  """Global ID of the creator."""
  creatorId: UserID!

  """Global ID of the namespace-cluster-agent mapping."""
  id: RemoteDevelopmentNamespaceClusterAgentMappingID!

  """Global ID of the namespace."""
  namespaceId: NamespaceID!

  """Timestamp when the namespace-cluster-agent mapping was last updated."""
  updatedAt: Time!
}

type NamespaceCommitEmail {
  """Timestamp the namespace commit email was created."""
  createdAt: Time!

  """Email."""
  email: Email!

  """Internal ID of the namespace commit email."""
  id: ID!

  """Namespace."""
  namespace: Namespace!

  """Timestamp the namespace commit email was last updated."""
  updatedAt: Time!
}

"""The connection type for NamespaceCommitEmail."""
type NamespaceCommitEmailConnection {
  """A list of edges."""
  edges: [NamespaceCommitEmailEdge]

  """A list of nodes."""
  nodes: [NamespaceCommitEmail]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type NamespaceCommitEmailEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: NamespaceCommitEmail
}

"""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!
}

"""
Autogenerated input type of NamespaceCreateRemoteDevelopmentClusterAgentMapping
"""
input NamespaceCreateRemoteDevelopmentClusterAgentMappingInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """GlobalID of the cluster agent to be associated with the namespace."""
  clusterAgentId: ClustersAgentID!

  """GlobalID of the group to be associated with the cluster agent."""
  namespaceId: GroupID!
}

"""
Autogenerated return type of NamespaceCreateRemoteDevelopmentClusterAgentMapping.
"""
type NamespaceCreateRemoteDevelopmentClusterAgentMappingPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Created namespace cluster agent mapping. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  namespaceClusterAgentMapping: NamespaceClusterAgentMapping @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
}

"""
Autogenerated input type of NamespaceDeleteRemoteDevelopmentClusterAgentMapping
"""
input NamespaceDeleteRemoteDevelopmentClusterAgentMappingInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """GlobalID of the cluster agent to be un-associated from the namespace."""
  clusterAgentId: ClustersAgentID!

  """GlobalID of the group to be un-associated from the cluster agent."""
  namespaceId: GroupID!
}

"""
Autogenerated return type of NamespaceDeleteRemoteDevelopmentClusterAgentMapping.
"""
type NamespaceDeleteRemoteDevelopmentClusterAgentMappingPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Created namespace cluster agent mapping. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  namespaceClusterAgentMapping: NamespaceClusterAgentMapping @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
}

"""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
}

"""
A `NamespaceID` is a global ID. It is encoded as a string.

An example `NamespaceID` is: `"gid://gitlab/Namespace/1"`.
"""
scalar NamespaceID

interface NamespaceMetadata {
  """
  ID of the group. Returns null for user namespaces. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  User preference for initial sort order. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  initialSort: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether issue repositioning is disabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isIssueRepositioningDisabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Maximum allowed attachment size (humanized). Introduced in GitLab 18.6: **Status**: Experiment.
  """
  maxAttachmentSize: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether to show the new work item link. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  showNewWorkItem: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Time tracking limit to hours setting. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  timeTrackingLimitToHours: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
}

type NamespacePermissions {
  """If `true`, the user can perform `admin_issue` on this resource"""
  adminIssue: Boolean!

  """If `true`, the user can perform `admin_label` on this resource"""
  adminLabel: Boolean!

  """If `true`, the user can perform `admin_project` on this resource"""
  adminProject: Boolean!

  """If `true`, the user can perform `bulk_admin_epic` on this resource"""
  bulkAdminEpic: Boolean!

  """If `true`, the user can perform `create_epic` on this resource"""
  createEpic: Boolean!

  """If `true`, the user can perform `create_projects` on this resource"""
  createProjects: Boolean!

  """If `true`, the user can perform `create_saved_view` on this resource"""
  createSavedView: Boolean!

  """If `true`, the user can perform `create_work_item` on this resource"""
  createWorkItem: Boolean!

  """
  If `true`, the user can perform `generate_description` on this resource
  """
  generateDescription: Boolean!

  """If `true`, the user can perform `import_issues` on this resource"""
  importIssues: Boolean!

  """If `true`, the user can perform `import_work_items` on this resource"""
  importWorkItems: Boolean!

  """If `true`, the user can read CRM contacts."""
  readCrmContact: Boolean!

  """If `true`, the user can read CRM organizations."""
  readCrmOrganization: Boolean!

  """If `true`, the user can perform `read_namespace` on this resource"""
  readNamespace: Boolean!

  """If `true`, the user can set work item metadata for new work items."""
  setNewWorkItemMetadata: Boolean!
}

"""Represents a subscription plan."""
type NamespacePlan {
  """True if plan is paid."""
  isPaid: Boolean

  """Name of the plan."""
  name: String

  """Title of the plan."""
  title: String
}

"""Values for sorting projects"""
enum NamespaceProjectSort {
  """Most similar to the search query."""
  SIMILARITY

  """Sort by latest activity, descending order."""
  ACTIVITY_DESC

  """Sort by total storage size, ascending order."""
  STORAGE_SIZE_ASC

  """Sort by total storage size, descending order."""
  STORAGE_SIZE_DESC

  """Sort by path, ascending order."""
  PATH_ASC

  """Sort by path, descending order."""
  PATH_DESC

  """Sort by full path, ascending order."""
  FULL_PATH_ASC

  """Sort by full path, descending order."""
  FULL_PATH_DESC

  """Sort by total repository size, ascending order."""
  REPOSITORY_SIZE_ASC

  """Sort by total repository size, descending order."""
  REPOSITORY_SIZE_DESC

  """Sort by total snippet size, ascending order."""
  SNIPPETS_SIZE_ASC

  """Sort by total snippet size, descending order."""
  SNIPPETS_SIZE_DESC

  """Sort by total build artifact size, ascending order."""
  BUILD_ARTIFACTS_SIZE_ASC

  """Sort by total build artifact size, descending order."""
  BUILD_ARTIFACTS_SIZE_DESC

  """Sort by total LFS object size, ascending order."""
  LFS_OBJECTS_SIZE_ASC

  """Sort by total LFS object size, descending order."""
  LFS_OBJECTS_SIZE_DESC

  """Sort by total package size, ascending order."""
  PACKAGES_SIZE_ASC

  """Sort by total package size, descending order."""
  PACKAGES_SIZE_DESC

  """Sort by total wiki size, ascending order."""
  WIKI_SIZE_ASC

  """Sort by total wiki size, descending order."""
  WIKI_SIZE_DESC

  """Sort by total container registry size, ascending order."""
  CONTAINER_REGISTRY_SIZE_ASC

  """Sort by total container registry size, descending order."""
  CONTAINER_REGISTRY_SIZE_DESC

  """Sort by excess repository storage size, descending order."""
  EXCESS_REPO_STORAGE_SIZE_DESC
}

type NamespaceProjectStatistics {
  """Build artifacts size of the project in bytes."""
  buildArtifactsSize: Float

  """Large File Storage (LFS) object size of the project in bytes."""
  lfsObjectsSize: Float

  """Packages size of the project in bytes."""
  packagesSize: Float

  """CI/CD Pipeline artifacts size in bytes."""
  pipelineArtifactsSize: Float

  """Repository size of the project in bytes."""
  repositorySize: Float

  """Snippets size of the project in bytes."""
  snippetsSize: Float

  """Storage size of the project in bytes."""
  storageSize: Float

  """Uploads size of the project in bytes."""
  uploadsSize: Float

  """Wiki size of the project in bytes."""
  wikiSize: Float
}

"""Autogenerated input type of NamespaceSecretsManagerEnroll"""
input NamespaceSecretsManagerEnrollInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace to enroll."""
  namespacePath: ID!
}

"""Autogenerated return type of NamespaceSecretsManagerEnroll."""
type NamespaceSecretsManagerEnrollPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Enrollment record."""
  enrollment: SecretsManagerEnrollment

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of NamespaceSecretsManagerUnenroll"""
input NamespaceSecretsManagerUnenrollInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace to unenroll."""
  namespacePath: ID!
}

"""Autogenerated return type of NamespaceSecretsManagerUnenroll."""
type NamespaceSecretsManagerUnenrollPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Enrollment record."""
  enrollment: SecretsManagerEnrollment

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Settings for the namespace"""
type NamespaceSettings {
  """OAuth provider required for step-up authentication."""
  stepUpAuthRequiredOauthProvider: String
}

"""Autogenerated input type of NamespaceSettingsUpdate"""
input NamespaceSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace the settings belong to."""
  fullPath: ID!

  """
  Indicates the default minimum role required to override pipeline variables in the namespace.
  """
  pipelineVariablesDefaultRole: PipelineVariablesDefaultRoleType
}

"""Autogenerated return type of NamespaceSettingsUpdate."""
type NamespaceSettingsUpdatePayload {
  """Namespace CI/CD settings after mutation."""
  ciCdSettings: CiCdSettings!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type NamespaceSidebar {
  """Number of open epics of the namespace."""
  openEpicsCount: Int

  """Number of open issues of the namespace."""
  openIssuesCount: Int

  """Number of open merge requests of the namespace."""
  openMergeRequestsCount: Int

  """
  Number of open work items in the namespace (limited to 10,000). Introduced in GitLab 18.11: **Status**: Experiment.
  """
  openWorkItemsCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

interface NamespacesLinkPaths {
  """
  Path for autocomplete award emojis. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  autocompleteAwardEmojisPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Calendar path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  calendarPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace contribution guide path."""
  contributionGuidePath: String

  """Help page path for emails."""
  emailsHelpPagePath: String

  """Namespace epics_list."""
  epicsList: String

  """
  Path to the epics list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  epicsListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace group_issues."""
  groupIssues: String

  """
  Full path of the group. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues_list."""
  issuesList: String

  """
  Path to the issues list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  issuesListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues settings path."""
  issuesSettings: String

  """Namespace labels_fetch."""
  labelsFetch: String

  """Namespace labels_manage."""
  labelsManage: String

  """Help page path for Markdown."""
  markdownHelpPath: String

  """
  Full path of the namespace (project.namespace.full_path or group full_path).
  Introduced in GitLab 18.6: **Status**: Experiment.
  """
  namespaceFullPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_comment_template_paths."""
  newCommentTemplate: [CommentTemplatePath!]

  """
  Path to create a new issue. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newIssuePath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_project."""
  newProject: String

  """
  New trial path for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newTrialPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Help page path for quick actions."""
  quickActionsHelpPath: String

  """Namespace register_path."""
  register: String

  """Namespace report_abuse."""
  reportAbuse: String

  """
  RSS path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rssPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace sign_in_path."""
  signIn: String

  """
  User email for export CSV. Returns `null` for user namespaces. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  userExportEmail: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
}

"""
A `NamespacesNamespaceBanID` is a global ID. It is encoded as a string.

An example `NamespacesNamespaceBanID` is: `"gid://gitlab/Namespaces::NamespaceBan/1"`.
"""
scalar NamespacesNamespaceBanID

"""
Autogenerated input type of NamespacesRegenerateNewWorkItemEmailAddress
"""
input NamespacesRegenerateNewWorkItemEmailAddressInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Full path of the namespace to regenerate the new work item email address for.
  """
  fullPath: ID!
}

"""
Autogenerated return type of NamespacesRegenerateNewWorkItemEmailAddress.
"""
type NamespacesRegenerateNewWorkItemEmailAddressPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Namespace after regenerating the new work item email address."""
  namespace: Namespace
}

"""Represents either a namespace or a reference to a deleted namespace"""
union NamespaceUnion = CiDeletedNamespace | Namespace

input NegatedBoardIssueInput {
  """Filter by label name."""
  labelName: [String]

  """Filter by author username."""
  authorUsername: String

  """
  Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
  """
  myReactionEmoji: String

  """List of IIDs of issues. For example `["1", "2"]`."""
  iids: [String!]

  """Filter by milestone title."""
  milestoneTitle: String

  """Filter by assignee username."""
  assigneeUsername: [String]

  """Filter by release tag."""
  releaseTag: String

  """Filter by the given issue types."""
  types: [IssueType!]

  """Filter by work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Filter by milestone ID wildcard."""
  milestoneWildcardId: MilestoneWildcardId

  """
  Filter by epic ID. Incompatible with epicWildcardId. Deprecated in GitLab
  17.5: This will be replaced by WorkItem hierarchyWidget.
  """
  epicId: EpicID

  """Filter by iteration title."""
  iterationTitle: String

  """Filter by weight."""
  weight: String

  """
  Filter by a list of iteration IDs. Incompatible with iterationWildcardId.
  """
  iterationId: [IterationID!]

  """Filter by iteration ID wildcard."""
  iterationWildcardId: NegatedIterationWildcardId

  """
  Health status not applied to the issue.
                      Includes issues where health status is not set.
  """
  healthStatusFilter: HealthStatus

  """
  Filter by negated custom fields. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

input NegatedComplianceFrameworkFilters {
  """ID of the compliance framework."""
  id: ComplianceManagementFrameworkID

  """IDs of the compliance framework."""
  ids: [ComplianceManagementFrameworkID!]
}

input NegatedEpicBoardIssueInput {
  """Filter by label name."""
  labelName: [String]

  """Filter by author username."""
  authorUsername: String

  """
  Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
  """
  myReactionEmoji: String

  """
  Filter by negated custom fields. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

input NegatedEpicFilterInput {
  """Filter by label name."""
  labelName: [String]

  """Filter by author username."""
  authorUsername: String

  """Filter by reaction emoji applied by the current user."""
  myReactionEmoji: String

  """
  Filter by negated custom fields. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

input NegatedIssueFilterInput {
  """ID of a user not assigned to the issues."""
  assigneeId: String

  """Usernames of users not assigned to the issue."""
  assigneeUsernames: [String!]

  """Username of a user who didn't author the issue."""
  authorUsername: [String!]

  """List of IIDs of issues to exclude. For example, `[1, 2]`."""
  iids: [String!]

  """Labels not applied to the issue."""
  labelName: [String!]

  """Milestone not applied to the issue."""
  milestoneTitle: [String!]

  """Filter by negated milestone wildcard values."""
  milestoneWildcardId: NegatedMilestoneWildcardId

  """Filter by reaction emoji applied by the current user."""
  myReactionEmoji: String

  """
  Release tag not associated with the issue's milestone. Ignored when parent is a group.
  """
  releaseTag: [String!]

  """Filters out issues by the given issue types."""
  types: [IssueType!]

  """ID of an epic not associated with the issues."""
  epicId: String

  """Weight not applied to the issue."""
  weight: String

  """List of iteration Global IDs not applied to the issue."""
  iterationId: [ID!]

  """Filter by negated iteration ID wildcard."""
  iterationWildcardId: IterationWildcardId

  """
  Health status not applied to the issue.
                      Includes issues where health status is not set.
  """
  healthStatusFilter: [HealthStatus!]

  """
  Filter by negated custom fields. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""Negated Iteration ID wildcard values"""
enum NegatedIterationWildcardId {
  """Current iteration."""
  CURRENT
}

"""Negated Milestone ID wildcard values"""
enum NegatedMilestoneWildcardId {
  """Milestone assigned is open and yet to be started (start date > today)."""
  STARTED

  """
  Milestone assigned is open but starts in the past (start date <= today). This
  differs from the behavior in the [REST API
  implementation](https://docs.gitlab.com/api/issues/#list-issues).
  """
  UPCOMING
}

input NegatedValueStreamAnalyticsIssuableFilterInput {
  """Usernames of users not assigned to the issue or merge request."""
  assigneeUsernames: [String!]

  """Username of a user who didn't author the issue or merge request."""
  authorUsername: String

  """Milestone not applied to the issue or merge request."""
  milestoneTitle: String

  """Labels not applied to the issue or merge request."""
  labelNames: [String!]

  """
  ID of an epic not associated with the issues.         Using the filter is not
  supported for stages based on merge requests.
  """
  epicId: ID

  """
  List of iteration Global IDs not applied to the issue.         Using the
  filter is not supported for stages based on merge requests.
  """
  iterationId: ID

  """
  Weight not applied to the issue.         Using the filter is not supported for stages based on merge requests.
  """
  weight: Int

  """Filter by reaction emoji applied by the current user."""
  myReactionEmoji: String
}

input NegatedWorkItemFilterInput {
  """
  Usernames of users not assigned to the work item (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """
  Username of a user who didn't author the work item (maximum is 100 usernames).
  """
  authorUsername: [String!]

  """Labels not applied to the work item (maximum is 100 labels)."""
  labelName: [String!]

  """Milestone not applied to the work item (maximum is 100 milestones)."""
  milestoneTitle: [String!]

  """Filter by negated milestone wildcard values."""
  milestoneWildcardId: NegatedMilestoneWildcardId

  """Filter by reaction emoji not applied by the current user."""
  myReactionEmoji: String

  """
  Filter work items by global IDs who don't belong to parent items (maximum is
  100 IDs). Introduced in GitLab 18.3: **Status**: Experiment.
  """
  parentIds: [WorkItemID!]

  """
  Release tag not associated with the work items's milestone (maximum is 100 tags). Ignored when parent is a group .
  """
  releaseTag: [String!]

  """Filter out work items by the given types."""
  types: [IssueType!]

  """Filter out work items by work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """
  Health status not applied to the work items.
                      Includes work items where health status is not set.
  """
  healthStatusFilter: [HealthStatus!]

  """Weight not applied to the work items."""
  weight: String

  """
  List of iteration Global IDs not applied to the work items (maximum is 100 IDs).
  """
  iterationId: [ID!]

  """Filter by negated iteration ID wildcard."""
  iterationWildcardId: IterationWildcardId

  """
  Filter by negated custom fields. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""Describes where code is deployed for a project organized by folder."""
type NestedEnvironment {
  """Latest environment in the folder."""
  environment: Environment

  """Human-readable name of the environment."""
  name: String!

  """Number of environments nested in the folder."""
  size: Int!
}

"""The connection type for NestedEnvironment."""
type NestedEnvironmentConnection {
  """A list of edges."""
  edges: [NestedEnvironmentEdge]

  """A list of nodes."""
  nodes: [NestedEnvironment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type NestedEnvironmentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: NestedEnvironment
}

type NetworkPolicyEgress {
  """IP range to allow traffic from."""
  allow: String!

  """List of IP ranges to exclude from the `allow` range."""
  except: [String!]
}

type Note implements BaseNoteInterface & ResolvableInterface {
  """User who wrote the note."""
  author: UserCore

  """Indicates whether the note author is a contributor."""
  authorIsContributor: Boolean

  """List of emoji reactions associated with the note."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """Content of the note."""
  body: String!

  """First line of the note content."""
  bodyFirstLineHtml: String!

  """GitLab Flavored Markdown rendering of the content of the note."""
  bodyHtml: String

  """Timestamp of the note creation."""
  createdAt: Time!

  """Discussion the note is a part of."""
  discussion: Discussion

  """
  Email address of non-GitLab user adding the note. For guests, the email address is obfuscated.
  """
  externalAuthor: String

  """ID of the note."""
  id: NoteID!

  """Indicates whether the note was imported."""
  imported: Boolean

  """Indicates if the note is internal."""
  internal: Boolean

  """Timestamp when note was last edited."""
  lastEditedAt: Time

  """User who last edited the note."""
  lastEditedBy: UserCore

  """Max access level of the note author in the project."""
  maxAccessLevelOfAuthor: String

  """Noteable ID which the note belongs to."""
  noteableId: Int

  """Noteable type which the note belongs to."""
  noteableType: String!

  """Position of the 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: UserCore

  """Suggested changes contained in the note."""
  suggestions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SuggestionConnection

  """Indicates whether the note was created by the system or by a user."""
  system: Boolean!

  """Name of the icon corresponding to a system note."""
  systemNoteIconName: String

  """Metadata for the given note if it is a system note."""
  systemNoteMetadata: SystemNoteMetadata

  """Timestamp of the note's last activity."""
  updatedAt: Time!

  """URL to view the note in the Web UI."""
  url: String

  """Permissions for the current user on the resource"""
  userPermissions: NotePermissions!
}

"""
A `NoteableID` is a global ID. It is encoded as a string.

An example `NoteableID` is: `"gid://gitlab/Noteable/1"`.
"""
scalar NoteableID

interface NoteableInterface {
  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """All discussions on the 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(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_NOTES

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): NoteConnection!
}

"""Represents an object that supports notes."""
union NoteableType = AlertManagementAlert | Commit | Design | Epic | Issue | MergeRequest | ProjectComplianceViolation | Snippet | Vulnerability | WikiPage

"""The connection type for Note."""
type NoteConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [NoteEdge]

  """A list of nodes."""
  nodes: [Note]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of NoteConvertToThread"""
input NoteConvertToThreadInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Note to convert."""
  id: NoteID!
}

"""Autogenerated return type of NoteConvertToThread."""
type NoteConvertToThreadPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""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
}

"""
A `NoteID` is a global ID. It is encoded as a string.

An example `NoteID` is: `"gid://gitlab/Note/1"`.
"""
scalar NoteID

type NotePermissions {
  """If `true`, the user can perform `admin_note` on this resource"""
  adminNote: Boolean!

  """If `true`, the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """If `true`, the user can perform `read_note` on this resource"""
  readNote: Boolean!

  """If `true`, the user can perform `reposition_note` on this resource"""
  repositionNote: Boolean!

  """If `true`, the user can perform `resolve_note` on this resource"""
  resolveNote: Boolean!
}

"""Work item notes collection type."""
enum NotesFilterType {
  """Show all activity"""
  ALL_NOTES

  """Show comments only"""
  ONLY_COMMENTS

  """Show history only"""
  ONLY_ACTIVITY
}

"""Nuget dependency link metadata"""
type NugetDependencyLinkMetadata {
  """ID of the metadatum."""
  id: PackagesNugetDependencyLinkMetadatumID!

  """Target framework of the dependency link package."""
  targetFramework: String!
}

"""Nuget metadata"""
type NugetMetadata {
  """Icon URL of the Nuget package."""
  iconUrl: String

  """ID of the metadatum."""
  id: PackagesNugetMetadatumID!

  """License URL of the Nuget package."""
  licenseUrl: String

  """Project URL of the Nuget package."""
  projectUrl: String
}

"""
ObservabilityLog represents a connection between an issue and a log entry
"""
type ObservabilityLog {
  """Log fingerprint of the log."""
  fingerprint: String!

  """Issue associated with the log."""
  issue: Issue!

  """Service name of the log."""
  serviceName: String!

  """Severity number of the log."""
  severityNumber: Int!

  """Timestamp of the log."""
  timestamp: ISO8601DateTime!

  """Trace identifier of the log."""
  traceIdentifier: String!
}

"""The connection type for ObservabilityLog."""
type ObservabilityLogConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ObservabilityLogEdge]

  """A list of nodes."""
  nodes: [ObservabilityLog]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ObservabilityLogEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ObservabilityLog
}

"""
ObservabilityMetric represents a connection between an issue and a metric
"""
type ObservabilityMetric {
  """Issues that the metric is attributed to."""
  issue: Issue

  """Name of the metric."""
  name: String!

  """OpenTelemetry metric type of the metric."""
  type: String!
}

"""The connection type for ObservabilityMetric."""
type ObservabilityMetricConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ObservabilityMetricEdge]

  """A list of nodes."""
  nodes: [ObservabilityMetric]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ObservabilityMetricEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ObservabilityMetric
}

"""
ObservabilityTrace represents a connection between an issue and a trace
"""
type ObservabilityTrace {
  """Issue associated with the trace."""
  issue: Issue!

  """Identifier of the trace."""
  traceIdentifier: String!
}

"""The connection type for ObservabilityTrace."""
type ObservabilityTraceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ObservabilityTraceEdge]

  """A list of nodes."""
  nodes: [ObservabilityTrace]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ObservabilityTraceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ObservabilityTrace
}

"""The rotation participant and color palette"""
type OncallParticipantType {
  """Color palette to assign to the on-call user. For example "blue"."""
  colorPalette: String

  """
  Color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user.
  """
  colorWeight: String

  """ID of the on-call participant."""
  id: IncidentManagementOncallParticipantID!

  """User who is participating."""
  user: UserCore!
}

"""The connection type for OncallParticipantType."""
type OncallParticipantTypeConnection {
  """A list of edges."""
  edges: [OncallParticipantTypeEdge]

  """A list of nodes."""
  nodes: [OncallParticipantType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type OncallParticipantTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: OncallParticipantType
}

"""Active period time range for on-call rotation"""
input OncallRotationActivePeriodInputType {
  """
  Start of the rotation active period in 24 hour format. For example, "18:30".
  """
  startTime: String!

  """
  End of the rotation active period in 24 hour format. For example, "18:30".
  """
  endTime: String!
}

"""Active period time range for on-call rotation"""
type OncallRotationActivePeriodType {
  """End of the rotation active period."""
  endTime: String

  """Start of the rotation active period."""
  startTime: String
}

"""Autogenerated input type of OncallRotationCreate"""
input OncallRotationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the on-call schedule in."""
  projectPath: ID!

  """IID of the on-call schedule to create the on-call rotation in."""
  scheduleIid: String!

  """Name of the on-call rotation."""
  name: String!

  """
  Start date and time of the on-call rotation, in the timezone of the on-call schedule.
  """
  startsAt: OncallRotationDateInputType!

  """
  End date and time of the on-call rotation, in the timezone of the on-call schedule.
  """
  endsAt: OncallRotationDateInputType

  """Rotation length of the on-call rotation."""
  rotationLength: OncallRotationLengthInputType!

  """Active period of time that the on-call rotation should take place."""
  activePeriod: OncallRotationActivePeriodInputType

  """
  Usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies.
  """
  participants: [OncallUserInputType!]!
}

"""Autogenerated return type of OncallRotationCreate."""
type OncallRotationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call rotation."""
  oncallRotation: IncidentManagementOncallRotation
}

"""Date input type for on-call rotation"""
input OncallRotationDateInputType {
  """Date component of the date in YYYY-MM-DD format."""
  date: String!

  """Time component of the date in 24hr HH:MM format."""
  time: String!
}

"""Autogenerated input type of OncallRotationDestroy"""
input OncallRotationDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to remove the on-call schedule from."""
  projectPath: ID!

  """IID of the on-call schedule to the on-call rotation belongs to."""
  scheduleIid: String!

  """ID of the on-call rotation to remove."""
  id: IncidentManagementOncallRotationID!
}

"""Autogenerated return type of OncallRotationDestroy."""
type OncallRotationDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call rotation."""
  oncallRotation: IncidentManagementOncallRotation
}

"""The rotation length of the on-call rotation"""
input OncallRotationLengthInputType {
  """Rotation length of the on-call rotation."""
  length: Int!

  """Unit of the rotation length of the on-call rotation."""
  unit: OncallRotationUnitEnum!
}

"""Rotation length unit of an on-call rotation"""
enum OncallRotationUnitEnum {
  """Hours"""
  HOURS

  """Days"""
  DAYS

  """Weeks"""
  WEEKS
}

"""Autogenerated input type of OncallRotationUpdate"""
input OncallRotationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the on-call schedule to create the on-call rotation in."""
  id: IncidentManagementOncallRotationID!

  """Name of the on-call rotation."""
  name: String

  """
  Start date and time of the on-call rotation, in the timezone of the on-call schedule.
  """
  startsAt: OncallRotationDateInputType

  """
  End date and time of the on-call rotation, in the timezone of the on-call schedule.
  """
  endsAt: OncallRotationDateInputType

  """Rotation length of the on-call rotation."""
  rotationLength: OncallRotationLengthInputType

  """Active period of time that the on-call rotation should take place."""
  activePeriod: OncallRotationActivePeriodInputType

  """
  Usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies.
  """
  participants: [OncallUserInputType!]
}

"""Autogenerated return type of OncallRotationUpdate."""
type OncallRotationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call rotation."""
  oncallRotation: IncidentManagementOncallRotation
}

"""Autogenerated input type of OncallScheduleCreate"""
input OncallScheduleCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the on-call schedule in."""
  projectPath: ID!

  """Name of the on-call schedule."""
  name: String!

  """Description of the on-call schedule."""
  description: String

  """Timezone of the on-call schedule."""
  timezone: String!
}

"""Autogenerated return type of OncallScheduleCreate."""
type OncallScheduleCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call schedule."""
  oncallSchedule: IncidentManagementOncallSchedule
}

"""Autogenerated input type of OncallScheduleDestroy"""
input OncallScheduleDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to remove the on-call schedule from."""
  projectPath: ID!

  """On-call schedule internal ID to remove."""
  iid: String!
}

"""Autogenerated return type of OncallScheduleDestroy."""
type OncallScheduleDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call schedule."""
  oncallSchedule: IncidentManagementOncallSchedule
}

"""Autogenerated input type of OncallScheduleUpdate"""
input OncallScheduleUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to update the on-call schedule in."""
  projectPath: ID!

  """On-call schedule internal ID to update."""
  iid: String!

  """Name of the on-call schedule."""
  name: String

  """Description of the on-call schedule."""
  description: String

  """Timezone of the on-call schedule."""
  timezone: String
}

"""Autogenerated return type of OncallScheduleUpdate."""
type OncallScheduleUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """On-call schedule."""
  oncallSchedule: IncidentManagementOncallSchedule
}

"""The rotation user and color palette"""
input OncallUserInputType {
  """
  Username of the user to participate in the on-call rotation. For example, `"user_one"`.
  """
  username: String!

  """
  Value of DataVisualizationColorEnum. The color from the palette to assign to the on-call user.
  """
  colorPalette: DataVisualizationColorEnum

  """
  Color weight to assign to for the on-call user. To view on-call schedules in
  GitLab, do not provide a value below 500. A value between 500 and 950 ensures
  sufficient contrast.
  """
  colorWeight: DataVisualizationWeightEnum
}

"""Enum defining the type of OpenTelemetry metric"""
enum OpenTelemetryMetricType {
  """Gauge Type type."""
  GAUGE_TYPE

  """Sum Type type."""
  SUM_TYPE

  """Histogram Type type."""
  HISTOGRAM_TYPE

  """Exponential Histogram Type type."""
  EXPONENTIAL_HISTOGRAM_TYPE
}

"""
A `OperationsFeatureFlagID` is a global ID. It is encoded as a string.

An example `OperationsFeatureFlagID` is: `"gid://gitlab/Operations::FeatureFlag/1"`.
"""
scalar OperationsFeatureFlagID

"""Autogenerated input type of OrbitUpdate"""
input OrbitUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group to update."""
  groupPath: ID!

  """Whether to enable or disable the Knowledge Graph for the group."""
  enabled: Boolean!
}

"""Autogenerated return type of OrbitUpdate."""
type OrbitUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Group after mutation."""
  group: Group
}

interface OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

type Organization {
  """
  Avatar URL of the organization. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  avatarUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """
  Continuous deployment application in the organization. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  cdApplication(
    """Global ID of the application."""
    id: CdApplicationID!
  ): CdApplication @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")

  """
  Continuous deployment applications in the organization. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  cdApplications(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CdApplicationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Continuous deployment environments in the organization. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  cdEnvironments(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CdEnvironmentConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Description of the organization. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """
  GitLab Flavored Markdown rendering of `description` Introduced in GitLab 16.7: **Status**: Experiment.
  """
  descriptionHtml: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """
  Groups within this organization that the user has access to. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  groups(
    """Filter groups by IDs."""
    ids: [ID!]

    """Only include top-level groups."""
    topLevelOnly: Boolean = false

    """Only include groups where the current user has an owner role."""
    ownedOnly: Boolean = false

    """Search query for group name or group full path."""
    search: String

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc`
    """
    sort: String = "name_asc"

    """Full path of the parent group."""
    parentPath: ID

    """
    When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
    Unauthenticated requests always return all public groups. The `owned_only` argument takes precedence.
    
    """
    allAvailable: Boolean = true

    """Date when the group was marked for deletion."""
    markedForDeletionOn: Date

    """
    When `nil` (default value), returns all groups. When `true`, returns only
    groups that are not pending deletion. When `false`, only returns groups that
    are pending deletion.
    """
    active: Boolean = null

    """
    Return only groups with Knowledge Graph enabled. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    withKnowledgeGraphEnabled: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  ID of the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Name of the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Users with access to the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  organizationUsers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): OrganizationUserConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Path of the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  path: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Projects within this organization that the user has access to. Introduced in GitLab 16.8: **Status**: Experiment.
  """
  projects(
    """Return only projects that the current user is a member of."""
    membership: Boolean

    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """Include namespace in project search."""
    searchNamespaces: Boolean

    """Filter projects by topics."""
    topics: [String!]

    """Return only personal projects."""
    personal: Boolean

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example:
    `id_desc` or `name_asc`. Defaults to `id_desc`, or `similarity` if search used.
    """
    sort: String = null

    """Filter projects by their namespace's full path (group or user)."""
    namespacePath: ID

    """Filter projects by IDs."""
    ids: [ID!]

    """
    Filter projects by full paths. You cannot provide more than 50 full paths.
    """
    fullPaths: [String!]

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Filter projects by archived status."""
    archived: ProjectArchived

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """
    Return only projects that are trending. Deprecated in GitLab 18.8: No longer
    functional. Underlying feature was removed in 19.0.
    """
    trending: Boolean

    """Return only projects marked for deletion."""
    aimedForDeletion: Boolean

    """Exclude projects that are marked for deletion."""
    notAimedForDeletion: Boolean

    """Date when the project was marked for deletion."""
    markedForDeletionOn: Date

    """Filters by projects that are not archived and not marked for deletion."""
    active: Boolean

    """Filter projects by visibility level."""
    visibilityLevel: VisibilityLevelsEnum

    """
    Return only projects where the last repository check failed. Only available for administrators.
    """
    lastRepositoryCheckFailed: Boolean

    """Include hidden projects."""
    includeHidden: Boolean

    """
    Include only projects eligible for the specified GitLab Duo licensed
    feature. Results are automatically filtered to projects where the user has
    the Maintainer or Owner role. Introduced in GitLab 18.11: **Status**: Experiment.
    """
    duoLicensedFeature: DuoLicensedFeature

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")

  """
  Root path in the context of the organization. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  rootPath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Timestamp when the organization was soft-deleted.Visible to admins and
  organization owners only. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  softDeletedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  State of the organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  state: OrganizationState! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Visibility of the organization."""
  visibility: OrganizationVisibility

  """
  Web path of the organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  webPath: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Web URL of the organization. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  webUrl: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Work item settings for the organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  workItemSettings: WorkItemSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Work item types available to the organization. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  workItemTypes(
    """
    Filter work item types by the given name. Deprecated in GitLab 19.0:
    Name-based filtering is no longer supported with introduction of
    configurable work item types in 19.0.
    """
    name: IssueType

    """
    When true, returns only the available work item types for the current user.
    This experimental field will be removed in 19.0. Use canUserCreateItems and
    isFilterableListView fields from the WorkItemTypes API instead. Introduced
    in GitLab 18.6: **Status**: Experiment.
    """
    onlyAvailable: 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
  ): WorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Cluster agents in the organization with workspaces capabilities Introduced in GitLab 17.10: **Status**: Experiment.
  """
  workspacesClusterAgents(
    """Filter the types of cluster agents to return."""
    filter: OrganizationClusterAgentFilter!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")
}

"""
Possible filter types for remote development cluster agents in an organization
"""
enum OrganizationClusterAgentFilter {
  """Cluster agents that are directly mapped to the given organization."""
  DIRECTLY_MAPPED

  """
  All cluster agents in the organization that can be used for hosting workspaces.
  """
  ALL
}

"""The connection type for Organization."""
type OrganizationConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [OrganizationEdge]

  """A list of nodes."""
  nodes: [Organization]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of OrganizationCreateClusterAgentMapping"""
input OrganizationCreateClusterAgentMappingInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """GlobalID of the cluster agent to be associated with the organization."""
  clusterAgentId: ClustersAgentID!

  """GlobalID of the organization to be associated with the cluster agent."""
  organizationId: OrganizationsOrganizationID!
}

"""Autogenerated return type of OrganizationCreateClusterAgentMapping."""
type OrganizationCreateClusterAgentMappingPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of OrganizationCreate"""
input OrganizationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the organization."""
  description: String

  """Avatar for the organization."""
  avatar: Upload

  """Name for the organization."""
  name: String!

  """Path for the organization."""
  path: String!

  """Visibility for the organization."""
  visibility: OrganizationVisibility
}

"""Autogenerated return type of OrganizationCreate."""
type OrganizationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Organization after mutation."""
  organization: Organization
}

"""Autogenerated input type of OrganizationDeleteClusterAgentMapping"""
input OrganizationDeleteClusterAgentMappingInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """GlobalID of the cluster agent to be dissociated with the organization."""
  clusterAgentId: ClustersAgentID!

  """GlobalID of the organization to be dissociated with the cluster agent."""
  organizationId: OrganizationsOrganizationID!
}

"""Autogenerated return type of OrganizationDeleteClusterAgentMapping."""
type OrganizationDeleteClusterAgentMappingPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of OrganizationDelete"""
input OrganizationDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the organization."""
  description: String

  """Avatar for the organization."""
  avatar: Upload

  """ID of the organization to soft-delete."""
  id: OrganizationsOrganizationID!
}

"""Autogenerated return type of OrganizationDelete."""
type OrganizationDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Soft-deleted organization."""
  organization: Organization
}

"""
Represents the Geo replication and verification state of an `organization_detail_upload`
"""
type OrganizationDetailUploadRegistry {
  """
  Indicate if the checksums of the OrganizationDetailUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the OrganizationDetailUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this OrganizationDetailUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the OrganizationDetailUploadRegistry"""
  id: ID!

  """Error message during sync of the OrganizationDetailUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the OrganizationDetailUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the OrganizationDetailUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the OrganizationDetailUploadRegistry's model record."""
  modelRecordId: Int

  """ID of the Organization Detail Upload."""
  organizationDetailUploadId: ID!

  """Timestamp after which the OrganizationDetailUploadRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the OrganizationDetailUploadRegistry
  """
  retryCount: Int

  """Sync state of the OrganizationDetailUploadRegistry"""
  state: RegistryState

  """The local checksum of the OrganizationDetailUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the OrganizationDetailUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the OrganizationDetailUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the OrganizationDetailUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the OrganizationDetailUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of OrganizationDetailUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the OrganizationDetailUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the OrganizationDetailUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for OrganizationDetailUploadRegistry."""
type OrganizationDetailUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [OrganizationDetailUploadRegistryEdge]

  """A list of nodes."""
  nodes: [OrganizationDetailUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type OrganizationDetailUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: OrganizationDetailUploadRegistry
}

"""An edge in a connection."""
type OrganizationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Organization
}

"""Default list view for organization groups and projects."""
enum OrganizationGroupProjectDisplay {
  """
  Display organization projects list. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  PROJECTS @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Display organization groups list. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  GROUPS @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
}

"""Values for sorting organization groups and projects."""
enum OrganizationGroupProjectSort {
  """
  Name descending order. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  NAME_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Name ascending order. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  NAME_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""
A `OrganizationsOrganizationID` is a global ID. It is encoded as a string.

An example `OrganizationsOrganizationID` is: `"gid://gitlab/Organizations::Organization/1"`.
"""
scalar OrganizationsOrganizationID

"""
A `OrganizationsOrganizationUserID` is a global ID. It is encoded as a string.

An example `OrganizationsOrganizationUserID` is: `"gid://gitlab/Organizations::OrganizationUser/1"`.
"""
scalar OrganizationsOrganizationUserID

"""Values for sorting organizations"""
enum OrganizationSort {
  """Name in ascending order."""
  NAME_ASC

  """Name in descending order."""
  NAME_DESC

  """Description in ascending order."""
  DESCRIPTION_ASC

  """Description in descending order."""
  DESCRIPTION_DESC

  """Default Rate in ascending order."""
  DEFAULT_RATE_ASC

  """Default Rate in descending order."""
  DEFAULT_RATE_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""State of an organization."""
enum OrganizationState {
  """
  Unconfirmed organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  UNCONFIRMED @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Soft Deleted organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  SOFT_DELETED @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Deletion In Progress organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  DELETION_IN_PROGRESS @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Confirmed organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  CONFIRMED @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Active organization. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  ACTIVE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Read Only Initialization organization. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  READ_ONLY_INITIALIZATION @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")

  """
  Read Only organization. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  READ_ONLY @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")
}

"""
Represents the total number of organizations for the represented states.
"""
type OrganizationStateCounts {
  """Number of organizations with state `ACTIVE`"""
  active: Int

  """Number of organizations with state `ALL`"""
  all: Int

  """Number of organizations with state `INACTIVE`"""
  inactive: Int
}

"""Autogenerated input type of OrganizationUpdate"""
input OrganizationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the organization."""
  description: String

  """Avatar for the organization."""
  avatar: Upload

  """ID of the organization to mutate."""
  id: OrganizationsOrganizationID!

  """Name for the organization."""
  name: String

  """Path for the organization."""
  path: String
}

"""Autogenerated return type of OrganizationUpdate."""
type OrganizationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Organization after mutation."""
  organization: Organization
}

"""A user with access to the organization."""
type OrganizationUser {
  """
  Access level of the user in the organization. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  accessLevel: OrganizationUserAccess! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Badges describing the user within the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  badges: [OrganizationUserBadge!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  ID of the organization user. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Whether the user is the last owner of the organization. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  isLastOwner: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  User that is associated with the organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  user: UserCore! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """Permissions for the current user on the resource"""
  userPermissions: OrganizationUserPermissions!
}

"""
Represents the access level of a relationship between a User and Organization that it is related to
"""
type OrganizationUserAccess {
  """
  Integer representation of access level. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  integerValue: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  String representation of access level. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  stringValue: OrganizationUserAccessLevel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
}

"""Access level of an organization user"""
enum OrganizationUserAccessLevel {
  """Guest access. Introduced in GitLab 16.11: **Status**: Experiment."""
  DEFAULT @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """Owner access. Introduced in GitLab 16.11: **Status**: Experiment."""
  OWNER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")
}

"""An organization user badge."""
type OrganizationUserBadge {
  """Badge text."""
  text: String!

  """Badge variant."""
  variant: String!
}

"""The connection type for OrganizationUser."""
type OrganizationUserConnection {
  """A list of edges."""
  edges: [OrganizationUserEdge]

  """A list of nodes."""
  nodes: [OrganizationUser]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type OrganizationUserEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: OrganizationUser
}

type OrganizationUserPermissions {
  """If `true`, the user can perform `admin_organization` on this resource"""
  adminOrganization: Boolean!

  """If `true`, the user can perform `delete_user` on this resource"""
  deleteUser: Boolean!

  """If `true`, the user can perform `remove_user` on this resource"""
  removeUser: Boolean!
}

"""Autogenerated input type of OrganizationUserUpdate"""
input OrganizationUserUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Access level to update the organization user to."""
  accessLevel: OrganizationUserAccessLevel!

  """ID of the organization user to mutate."""
  id: OrganizationsOrganizationUserID!
}

"""Autogenerated return type of OrganizationUserUpdate."""
type OrganizationUserUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Organization user after mutation. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  organizationUser: OrganizationUser @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
}

"""Visibilities available to an organization."""
enum OrganizationVisibility {
  """Private visibility."""
  private

  """Public visibility."""
  public
}

"""Represents a package with pipelines in the package registry"""
type Package {
  """Map of links to perform actions on the package."""
  _links: PackageLinks!

  """Date of creation."""
  createdAt: Time!

  """ID of the package."""
  id: PackagesPackageID!

  """Package metadata."""
  metadata: PackageMetadata

  """Name of the package."""
  name: String!

  """Package type."""
  packageType: PackageTypeEnum!

  """
                Pipelines that built the package. Max page size 20.
  
  """
  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
  ): PipelineConnection

  """Project where the package is stored."""
  project: Project!

  """Whether any matching package protection rule exists for the package."""
  protectionRuleExists: Boolean!

  """Package status."""
  status: PackageStatus!

  """Status message."""
  statusMessage: String

  """Package tags."""
  tags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageTagConnection

  """Date of most recent update."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: PackagePermissions!

  """Version string."""
  version: String
}

"""Represents a package in the package registry"""
type PackageBase {
  """Map of links to perform actions on the package."""
  _links: PackageLinks!

  """Date of creation."""
  createdAt: Time!

  """ID of the package."""
  id: PackagesPackageID!

  """Package metadata."""
  metadata: PackageMetadata

  """Name of the package."""
  name: String!

  """Package type."""
  packageType: PackageTypeEnum!

  """Project where the package is stored."""
  project: Project!

  """Whether any matching package protection rule exists for the package."""
  protectionRuleExists: Boolean!

  """Package status."""
  status: PackageStatus!

  """Status message."""
  statusMessage: String

  """Package tags."""
  tags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageTagConnection

  """Date of most recent update."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: PackagePermissions!

  """Version string."""
  version: String
}

"""The connection type for PackageBase."""
type PackageBaseConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PackageBaseEdge]

  """A list of nodes."""
  nodes: [PackageBase]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageBaseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageBase
}

"""Represents a composer JSON file"""
type PackageComposerJsonType {
  """License set in the Composer JSON file."""
  license: String

  """Name set in the Composer JSON file."""
  name: String

  """Type set in the Composer JSON file."""
  type: String

  """Version set in the Composer JSON file."""
  version: String
}

"""The connection type for Package."""
type PackageConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PackageEdge]

  """A list of nodes."""
  nodes: [Package]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents a package dependency."""
type PackageDependency {
  """ID of the dependency."""
  id: PackagesDependencyID!

  """Name of the dependency."""
  name: String!

  """Version pattern of the dependency."""
  versionPattern: String!
}

"""Represents a package dependency link"""
type PackageDependencyLink {
  """Dependency."""
  dependency: PackageDependency

  """Dependency type."""
  dependencyType: PackageDependencyType!

  """ID of the dependency link."""
  id: PackagesDependencyLinkID!

  """Dependency link metadata."""
  metadata: DependencyLinkMetadata
}

"""The connection type for PackageDependencyLink."""
type PackageDependencyLinkConnection {
  """A list of edges."""
  edges: [PackageDependencyLinkEdge]

  """A list of nodes."""
  nodes: [PackageDependencyLink]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageDependencyLinkEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageDependencyLink
}

enum PackageDependencyType {
  """dependencies dependency type"""
  DEPENDENCIES

  """devDependencies dependency type"""
  DEV_DEPENDENCIES

  """bundleDependencies dependency type"""
  BUNDLE_DEPENDENCIES

  """peerDependencies dependency type"""
  PEER_DEPENDENCIES
}

"""Represents a package details in the Package Registry"""
type PackageDetailsType {
  """Map of links to perform actions on the package."""
  _links: PackageLinks!

  """Url of the Composer setup endpoint."""
  composerConfigRepositoryUrl: String

  """Url of the Composer endpoint."""
  composerUrl: String

  """Url of the Conan project endpoint."""
  conanUrl: String

  """Date of creation."""
  createdAt: Time!

  """Dependency link."""
  dependencyLinks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageDependencyLinkConnection

  """ID of the package."""
  id: PackagesPackageID!

  """Last time that a file of the package was downloaded."""
  lastDownloadedAt: Time

  """Url of the Maven project endpoint."""
  mavenUrl: String

  """Package metadata."""
  metadata: PackageMetadata

  """Name of the package."""
  name: String!

  """Url of the NPM project endpoint."""
  npmUrl: String

  """Url of the Nuget project endpoint."""
  nugetUrl: String

  """Package files."""
  packageFiles(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageFileConnection

  """Package type."""
  packageType: PackageTypeEnum!

  """
                Pipelines that built the package. Max page size 20.
  
  """
  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
  ): PipelineConnection

  """Project where the package is stored."""
  project: Project!

  """Whether any matching package protection rule exists for the package."""
  protectionRuleExists: Boolean!

  """Indicates if there is public access to the package."""
  publicPackage: Boolean

  """Url of the PyPi project setup endpoint."""
  pypiSetupUrl: String

  """Url of the PyPi project endpoint."""
  pypiUrl: String

  """Package status."""
  status: PackageStatus!

  """Status message."""
  statusMessage: String

  """Package tags."""
  tags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageTagConnection

  """Date of most recent update."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: PackagePermissions!

  """Version string."""
  version: String

  """Other versions of the package."""
  versions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): PackageBaseConnection
}

"""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 a package file"""
type PackageFile {
  """Created date."""
  createdAt: Time!

  """Download path of the package file."""
  downloadPath: String!

  """Md5 of the package file."""
  fileMd5: String

  """File metadata."""
  fileMetadata: PackageFileMetadata

  """Name of the package file."""
  fileName: String!

  """Sha1 of the package file."""
  fileSha1: String

  """Sha256 of the package file."""
  fileSha256: String

  """ID of the file."""
  id: PackagesPackageFileID!

  """Size of the package file."""
  size: String!

  """Updated date."""
  updatedAt: Time!
}

"""The connection type for PackageFile."""
type PackageFileConnection {
  """A list of edges."""
  edges: [PackageFileEdge]

  """A list of nodes."""
  nodes: [PackageFile]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageFileEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageFile
}

"""Represents metadata associated with a Package file"""
interface PackageFileMetadata {
  """Date of creation."""
  createdAt: Time!

  """Date of most recent update."""
  updatedAt: Time!
}

"""Represents the Geo sync and verification state of a package file"""
type PackageFileRegistry {
  """
  Indicate if the checksums of the PackageFileRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PackageFileRegistry was created"""
  createdAt: Time

  """Path to the data management view for this PackageFileRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """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

  """Indicate if the PackageFileRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the PackageFileRegistry's model record."""
  modelRecordId: Int

  """ID of the PackageFile."""
  packageFileId: ID!

  """Timestamp after which the PackageFileRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the PackageFileRegistry"""
  retryCount: Int

  """Sync state of the PackageFileRegistry"""
  state: RegistryState

  """The local checksum of the PackageFileRegistry"""
  verificationChecksum: String

  """The expected checksum of the PackageFileRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the PackageFileRegistry"""
  verificationFailure: String

  """Timestamp after which the PackageFileRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PackageFileRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of PackageFileRegistry started"""
  verificationStartedAt: Time

  """Verification state of the PackageFileRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PackageFileRegistry
  """
  verifiedAt: Time
}

"""The connection type for PackageFileRegistry."""
type PackageFileRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """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
}

"""Values for sorting group packages"""
enum PackageGroupSort {
  """Ordered by project path in descending order."""
  PROJECT_PATH_DESC

  """Ordered by project path in ascending order."""
  PROJECT_PATH_ASC

  """Ordered by created_at in descending order."""
  CREATED_DESC

  """Ordered by created_at in ascending order."""
  CREATED_ASC

  """Ordered by name in descending order."""
  NAME_DESC

  """Ordered by name in ascending order."""
  NAME_ASC

  """Ordered by version in descending order."""
  VERSION_DESC

  """Ordered by version in ascending order."""
  VERSION_ASC

  """Ordered by type in descending order."""
  TYPE_DESC

  """Ordered by type in ascending order."""
  TYPE_ASC
}

"""Represents a Helm dependency"""
type PackageHelmDependencyType {
  """Alias of the dependency."""
  alias: String

  """Condition of the dependency."""
  condition: String

  """Indicates the dependency is enabled."""
  enabled: Boolean

  """Import-values of the dependency."""
  importValues: [JSON!]

  """Name of the dependency."""
  name: String

  """Repository of the dependency."""
  repository: String

  """Tags of the dependency."""
  tags: [String!]

  """Version of the dependency."""
  version: String
}

"""Represents a Helm maintainer"""
type PackageHelmMaintainerType {
  """Email of the maintainer."""
  email: String

  """Name of the maintainer."""
  name: String

  """URL of the maintainer."""
  url: String
}

"""Represents the contents of a Helm Chart.yml file"""
type PackageHelmMetadataType {
  """Annotations for the chart."""
  annotations: JSON

  """API version of the chart."""
  apiVersion: String!

  """App version of the chart."""
  appVersion: String

  """Condition for the chart."""
  condition: String

  """Dependencies of the chart."""
  dependencies: [PackageHelmDependencyType!]

  """Indicates if the chart is deprecated."""
  deprecated: Boolean

  """Description of the chart."""
  description: String

  """URL of the home page."""
  home: String

  """URL to an SVG or PNG image for the chart."""
  icon: String

  """Keywords for the chart."""
  keywords: [String!]

  """Kubernetes versions for the chart."""
  kubeVersion: String

  """Maintainers of the chart."""
  maintainers: [PackageHelmMaintainerType!]

  """Name of the chart."""
  name: String!

  """URLs of the source code for the chart."""
  sources: [String!]

  """Tags for the chart."""
  tags: String

  """Type of the chart."""
  type: String

  """Version of the chart."""
  version: String!
}

"""Represents links to perform actions on the package"""
type PackageLinks {
  """Path to the package details page."""
  webPath: String
}

"""Values for package manager"""
enum PackageManager {
  """Package manager: bundler."""
  BUNDLER

  """Package manager: yarn."""
  YARN

  """Package manager: npm."""
  NPM

  """Package manager: pnpm."""
  PNPM

  """Package manager: maven."""
  MAVEN

  """Package manager: composer."""
  COMPOSER

  """Package manager: pip."""
  PIP

  """Package manager: conan."""
  CONAN

  """Package manager: go."""
  GO

  """Package manager: nuget."""
  NUGET

  """Package manager: sbt."""
  SBT

  """Package manager: gradle."""
  GRADLE

  """Package manager: pipenv."""
  PIPENV

  """Package manager: poetry."""
  POETRY

  """Package manager: setuptools."""
  SETUPTOOLS

  """Package manager: apk."""
  APK

  """Package manager: conda."""
  CONDA

  """Package manager: pub."""
  PUB

  """Package manager: cargo."""
  CARGO
}

"""Represents metadata associated with a Package"""
union PackageMetadata = ComposerMetadata | ConanMetadata | MavenMetadata | NugetMetadata | PypiMetadata | TerraformModuleMetadata

"""Represents a security advisory from package metadata sources."""
type PackageMetadataAdvisory {
  """External ID of the advisory."""
  advisoryXid: String!

  """Timestamp when the advisory was created."""
  createdAt: Time!

  """CVE identifier if applicable."""
  cve: String

  """CVSS v2 vector string."""
  cvssV2: String

  """CVSS v3 vector string."""
  cvssV3: String

  """Description of the advisory."""
  description: String

  """ID of the advisory."""
  id: ID!

  """Additional identifiers for the advisory."""
  identifiers: [PackageMetadataAdvisoryIdentifier!]!

  """Date when the advisory was published."""
  publishedDate: Date!

  """Source of the advisory."""
  sourceXid: PackageMetadataAdvisorySource!

  """Title of the advisory."""
  title: String

  """Timestamp when the advisory was last updated."""
  updatedAt: Time!

  """Related URLs for the advisory."""
  urls: [String!]
}

"""The connection type for PackageMetadataAdvisory."""
type PackageMetadataAdvisoryConnection {
  """A list of edges."""
  edges: [PackageMetadataAdvisoryEdge]

  """A list of nodes."""
  nodes: [PackageMetadataAdvisory]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageMetadataAdvisoryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageMetadataAdvisory
}

"""
A `PackageMetadataAdvisoryID` is a global ID. It is encoded as a string.

An example `PackageMetadataAdvisoryID` is: `"gid://gitlab/PackageMetadata::Advisory/1"`.
"""
scalar PackageMetadataAdvisoryID

"""Represents an identifier for a package metadata advisory."""
type PackageMetadataAdvisoryIdentifier {
  """Human-readable name of the identifier."""
  name: String!

  """Type of identifier (for example, CVE, CWE, OSVDB, USN)."""
  type: String!

  """URL of the identifier's documentation."""
  url: String

  """Value of the identifier, for matching purposes."""
  value: String!
}

"""Source of the package metadata advisory."""
enum PackageMetadataAdvisorySource {
  """Advisory from glad"""
  GLAD

  """Advisory from trivy-db"""
  TRIVY_DB
}

type PackagePermissions {
  """If `true`, the user can perform `destroy_package` on this resource"""
  destroyPackage: Boolean!
}

enum PackagesCleanupKeepDuplicatedPackageFilesEnum {
  """Value to keep all package files"""
  ALL_PACKAGE_FILES

  """Value to keep 1 package files"""
  ONE_PACKAGE_FILE

  """Value to keep 10 package files"""
  TEN_PACKAGE_FILES

  """Value to keep 20 package files"""
  TWENTY_PACKAGE_FILES

  """Value to keep 30 package files"""
  THIRTY_PACKAGE_FILES

  """Value to keep 40 package files"""
  FORTY_PACKAGE_FILES

  """Value to keep 50 package files"""
  FIFTY_PACKAGE_FILES
}

"""
A packages cleanup policy designed to keep only packages and packages assets that matter most
"""
type PackagesCleanupPolicy {
  """Number of duplicated package files to retain."""
  keepNDuplicatedPackageFiles: PackagesCleanupKeepDuplicatedPackageFilesEnum!

  """Next time that the packages cleanup policy will be executed."""
  nextRunAt: Time
}

"""
A `PackagesConanFileMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesConanFileMetadatumID` is: `"gid://gitlab/Packages::Conan::FileMetadatum/1"`.
"""
scalar PackagesConanFileMetadatumID

"""
A `PackagesConanMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesConanMetadatumID` is: `"gid://gitlab/Packages::Conan::Metadatum/1"`.
"""
scalar PackagesConanMetadatumID

"""
Represents the Geo replication and verification state of a packages_debian_project_component_file
"""
type PackagesDebianProjectComponentFileRegistry {
  """
  Indicate if the checksums of the PackagesDebianProjectComponentFileRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """
  Timestamp when the PackagesDebianProjectComponentFileRegistry was created
  """
  createdAt: Time

  """
  Path to the data management view for this PackagesDebianProjectComponentFileRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PackagesDebianProjectComponentFileRegistry"""
  id: ID!

  """
  Error message during sync of the PackagesDebianProjectComponentFileRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PackagesDebianProjectComponentFileRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the PackagesDebianProjectComponentFileRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the PackagesDebianProjectComponentFileRegistry's model record."""
  modelRecordId: Int

  """ID of the Packages::Debian::ProjectComponentFile."""
  packagesDebianProjectComponentFileId: ID!

  """
  Timestamp after which the PackagesDebianProjectComponentFileRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PackagesDebianProjectComponentFileRegistry
  """
  retryCount: Int

  """Sync state of the PackagesDebianProjectComponentFileRegistry"""
  state: RegistryState

  """The local checksum of the PackagesDebianProjectComponentFileRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PackagesDebianProjectComponentFileRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the PackagesDebianProjectComponentFileRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the PackagesDebianProjectComponentFileRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PackagesDebianProjectComponentFileRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of PackagesDebianProjectComponentFileRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the PackagesDebianProjectComponentFileRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PackagesDebianProjectComponentFileRegistry
  """
  verifiedAt: Time
}

"""The connection type for PackagesDebianProjectComponentFileRegistry."""
type PackagesDebianProjectComponentFileRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PackagesDebianProjectComponentFileRegistryEdge]

  """A list of nodes."""
  nodes: [PackagesDebianProjectComponentFileRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackagesDebianProjectComponentFileRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackagesDebianProjectComponentFileRegistry
}

"""
A `PackagesDependencyID` is a global ID. It is encoded as a string.

An example `PackagesDependencyID` is: `"gid://gitlab/Packages::Dependency/1"`.
"""
scalar PackagesDependencyID

"""
A `PackagesDependencyLinkID` is a global ID. It is encoded as a string.

An example `PackagesDependencyLinkID` is: `"gid://gitlab/Packages::DependencyLink/1"`.
"""
scalar PackagesDependencyLinkID

"""Namespace-level Package Registry settings"""
type PackageSettings {
  """
  Indicates whether audit events are created when publishing or deleting a
  package in the namespace (Premium and Ultimate only).
  """
  auditEventsEnabled: Boolean!

  """
  When generic_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect.
  """
  genericDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate generic packages are allowed for the namespace.
  """
  genericDuplicatesAllowed: Boolean!

  """
  Indicates whether Maven package forwarding is locked for all descendent namespaces.
  """
  lockMavenPackageRequestsForwarding: Boolean!

  """
  Indicates whether npm package forwarding is locked for all descendent namespaces.
  """
  lockNpmPackageRequestsForwarding: Boolean!

  """
  Indicates whether PyPI package forwarding is locked for all descendent namespaces.
  """
  lockPypiPackageRequestsForwarding: Boolean!

  """
  When maven_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect.
  """
  mavenDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate Maven packages are allowed for the namespace.
  """
  mavenDuplicatesAllowed: Boolean!

  """
  Indicates whether Maven package forwarding is allowed for the namespace.
  """
  mavenPackageRequestsForwarding: Boolean

  """
  Indicates whether Maven package forwarding settings are locked by a parent namespace.
  """
  mavenPackageRequestsForwardingLocked: Boolean!

  """Indicates whether npm package forwarding is allowed for the namespace."""
  npmPackageRequestsForwarding: Boolean

  """
  Indicates whether npm package forwarding settings are locked by a parent namespace.
  """
  npmPackageRequestsForwardingLocked: Boolean!

  """
  When nuget_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect. 
  """
  nugetDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate NuGet packages are allowed for the namespace.
  """
  nugetDuplicatesAllowed: Boolean!

  """
  Indicates whether the NuGet symbol server is enabled for the namespace.
  """
  nugetSymbolServerEnabled: Boolean!

  """
  Indicates whether PyPI package forwarding is allowed for the namespace.
  """
  pypiPackageRequestsForwarding: Boolean

  """
  Indicates whether PyPI package forwarding settings are locked by a parent namespace.
  """
  pypiPackageRequestsForwardingLocked: Boolean!

  """
  When terraform_module_duplicates_allowed is false, you can publish duplicate
  packages with names that match this regex. Otherwise, this setting has no effect.
  """
  terraformModuleDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate Terraform packages are allowed for the namespace.
  """
  terraformModuleDuplicatesAllowed: Boolean!
}

"""
Represents the Geo replication and verification state of a packages_helm_metadata_cache.
"""
type PackagesHelmMetadataCacheRegistry {
  """
  Indicate if the checksums of the PackagesHelmMetadataCacheRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PackagesHelmMetadataCacheRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this PackagesHelmMetadataCacheRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PackagesHelmMetadataCacheRegistry"""
  id: ID!

  """Error message during sync of the PackagesHelmMetadataCacheRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PackagesHelmMetadataCacheRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the PackagesHelmMetadataCacheRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the PackagesHelmMetadataCacheRegistry's model record."""
  modelRecordId: Int

  """ID of the Helm Metadata Cache."""
  packagesHelmMetadataCacheId: ID!

  """
  Timestamp after which the PackagesHelmMetadataCacheRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PackagesHelmMetadataCacheRegistry
  """
  retryCount: Int

  """Sync state of the PackagesHelmMetadataCacheRegistry"""
  state: RegistryState

  """The local checksum of the PackagesHelmMetadataCacheRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PackagesHelmMetadataCacheRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the PackagesHelmMetadataCacheRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the PackagesHelmMetadataCacheRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PackagesHelmMetadataCacheRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of PackagesHelmMetadataCacheRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the PackagesHelmMetadataCacheRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PackagesHelmMetadataCacheRegistry
  """
  verifiedAt: Time
}

"""The connection type for PackagesHelmMetadataCacheRegistry."""
type PackagesHelmMetadataCacheRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PackagesHelmMetadataCacheRegistryEdge]

  """A list of nodes."""
  nodes: [PackagesHelmMetadataCacheRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackagesHelmMetadataCacheRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackagesHelmMetadataCacheRegistry
}

"""
A `PackagesMavenMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesMavenMetadatumID` is: `"gid://gitlab/Packages::Maven::Metadatum/1"`.
"""
scalar PackagesMavenMetadatumID

"""
A `PackagesNugetDependencyLinkMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesNugetDependencyLinkMetadatumID` is: `"gid://gitlab/Packages::Nuget::DependencyLinkMetadatum/1"`.
"""
scalar PackagesNugetDependencyLinkMetadatumID

"""
A `PackagesNugetMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesNugetMetadatumID` is: `"gid://gitlab/Packages::Nuget::Metadatum/1"`.
"""
scalar PackagesNugetMetadatumID

"""
Represents the Geo replication and verification state of a packages_nuget_symbol
"""
type PackagesNugetSymbolRegistry {
  """
  Indicate if the checksums of the PackagesNugetSymbolRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PackagesNugetSymbolRegistry was created"""
  createdAt: Time

  """Path to the data management view for this PackagesNugetSymbolRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PackagesNugetSymbolRegistry"""
  id: ID!

  """Error message during sync of the PackagesNugetSymbolRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PackagesNugetSymbolRegistry
  """
  lastSyncedAt: Time

  """Indicate if the PackagesNugetSymbolRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the PackagesNugetSymbolRegistry's model record."""
  modelRecordId: Int

  """ID of the Packages::Nuget::Symbol."""
  packagesNugetSymbolId: ID!

  """Timestamp after which the PackagesNugetSymbolRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PackagesNugetSymbolRegistry
  """
  retryCount: Int

  """Sync state of the PackagesNugetSymbolRegistry"""
  state: RegistryState

  """The local checksum of the PackagesNugetSymbolRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PackagesNugetSymbolRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the PackagesNugetSymbolRegistry"""
  verificationFailure: String

  """Timestamp after which the PackagesNugetSymbolRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PackagesNugetSymbolRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of PackagesNugetSymbolRegistry started"""
  verificationStartedAt: Time

  """Verification state of the PackagesNugetSymbolRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PackagesNugetSymbolRegistry
  """
  verifiedAt: Time
}

"""The connection type for PackagesNugetSymbolRegistry."""
type PackagesNugetSymbolRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PackagesNugetSymbolRegistryEdge]

  """A list of nodes."""
  nodes: [PackagesNugetSymbolRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackagesNugetSymbolRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackagesNugetSymbolRegistry
}

"""Values for sorting package"""
enum PackageSort {
  """Ordered by created_at in descending order."""
  CREATED_DESC

  """Ordered by created_at in ascending order."""
  CREATED_ASC

  """Ordered by name in descending order."""
  NAME_DESC

  """Ordered by name in ascending order."""
  NAME_ASC

  """Ordered by version in descending order."""
  VERSION_DESC

  """Ordered by version in ascending order."""
  VERSION_ASC

  """Ordered by type in descending order."""
  TYPE_DESC

  """Ordered by type in ascending order."""
  TYPE_ASC
}

"""
A `PackagesPackageFileID` is a global ID. It is encoded as a string.

An example `PackagesPackageFileID` is: `"gid://gitlab/Packages::PackageFile/1"`.
"""
scalar PackagesPackageFileID

"""
A `PackagesPackageID` is a global ID. It is encoded as a string.

An example `PackagesPackageID` is: `"gid://gitlab/Packages::Package/1"`.
"""
scalar PackagesPackageID

"""
A packages protection rule designed to protect packages from being pushed by users with a certain access level.
"""
type PackagesProtectionRule {
  """Global ID of the package protection rule."""
  id: PackagesProtectionRuleID!

  """
  Minimum GitLab access required to delete packages from the package registry.
  Valid values include `OWNER` or `ADMIN`. If the value is `nil`, the default
  minimum access level is `MAINTAINER`. Available only when feature flag
  `packages_protected_packages_delete` is enabled. Introduced in GitLab 17.10:
  **Status**: Experiment.
  """
  minimumAccessLevelForDelete: PackagesProtectionRuleAccessLevelForDelete @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Minimum GitLab access required to push packages to the package registry. Valid
  values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the value is `nil`, the
  default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: PackagesProtectionRuleAccessLevel

  """
  Package name protected by the protection rule. For example, `@my-scope/my-package-*`. Wildcard character `*` allowed.
  """
  packageNamePattern: String!

  """
  Package type protected by the protection rule. For example, `NPM`, `PYPI`.
  """
  packageType: PackagesProtectionRulePackageType!
}

"""Access level of a package protection rule resource"""
enum PackagesProtectionRuleAccessLevel {
  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER

  """Admin access."""
  ADMIN
}

"""Access level for the deletion of a package protection rule resource."""
enum PackagesProtectionRuleAccessLevelForDelete {
  """
  Owner access. Available only when feature flag `packages_protected_packages_delete` is enabled.
  """
  OWNER

  """
  Admin access. Available only when feature flag `packages_protected_packages_delete` is enabled.
  """
  ADMIN
}

"""The connection type for PackagesProtectionRule."""
type PackagesProtectionRuleConnection {
  """A list of edges."""
  edges: [PackagesProtectionRuleEdge]

  """A list of nodes."""
  nodes: [PackagesProtectionRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackagesProtectionRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackagesProtectionRule
}

"""
A `PackagesProtectionRuleID` is a global ID. It is encoded as a string.

An example `PackagesProtectionRuleID` is: `"gid://gitlab/Packages::Protection::Rule/1"`.
"""
scalar PackagesProtectionRuleID

"""Package type of a package protection rule resource"""
enum PackagesProtectionRulePackageType {
  """Packages of the Conan format."""
  CONAN

  """Packages of the Helm format."""
  HELM

  """Packages of the Generic format."""
  GENERIC

  """Packages of the Maven format."""
  MAVEN

  """Packages of the npm format."""
  NPM

  """Packages of the NuGet format."""
  NUGET

  """Packages of the PyPI format."""
  PYPI

  """Packages of the Terraform module format."""
  TERRAFORM_MODULE
}

"""
A `PackagesPypiMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesPypiMetadatumID` is: `"gid://gitlab/Packages::Pypi::Metadatum/1"`.
"""
scalar PackagesPypiMetadatumID

enum PackageStatus {
  """Packages with a default status"""
  DEFAULT

  """Packages with a hidden status"""
  HIDDEN

  """Packages with a processing status"""
  PROCESSING

  """Packages with a error status"""
  ERROR

  """Packages with a pending_destruction status"""
  PENDING_DESTRUCTION

  """Packages with a deprecated status"""
  DEPRECATED
}

"""
A `PackagesTerraformModuleMetadatumID` is a global ID. It is encoded as a string.

An example `PackagesTerraformModuleMetadatumID` is: `"gid://gitlab/Packages::TerraformModule::Metadatum/1"`.
"""
scalar PackagesTerraformModuleMetadatumID

"""Represents a package tag"""
type PackageTag {
  """Created date."""
  createdAt: Time!

  """ID of the tag."""
  id: ID!

  """Name of the tag."""
  name: String!

  """Updated date."""
  updatedAt: Time!
}

"""The connection type for PackageTag."""
type PackageTagConnection {
  """A list of edges."""
  edges: [PackageTagEdge]

  """A list of nodes."""
  nodes: [PackageTag]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageTagEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageTag
}

enum PackageTypeEnum {
  """Packages from the Maven package manager"""
  MAVEN

  """Packages from the npm package manager"""
  NPM

  """Packages from the Conan package manager"""
  CONAN

  """Packages from the Nuget package manager"""
  NUGET

  """Packages from the PyPI package manager"""
  PYPI

  """Packages from the Composer package manager"""
  COMPOSER

  """Packages from the Generic package manager"""
  GENERIC

  """Packages from the Golang package manager"""
  GOLANG

  """Packages from the Debian package manager"""
  DEBIAN

  """Packages from the Rubygems package manager"""
  RUBYGEMS

  """Packages from the Helm package manager"""
  HELM

  """Packages from the Terraform Module package manager"""
  TERRAFORM_MODULE

  """Packages from the Rpm package manager"""
  RPM

  """Packages from the Ml_model package manager"""
  ML_MODEL

  """Packages from the Cargo package manager"""
  CARGO
}

"""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
}

"""Represents a pages deployment."""
type PagesDeployment {
  """Whether the deployment is currently active."""
  active: Boolean!

  """ID of the CI build that created the deployment."""
  ciBuildId: ID

  """Time the deployment was created."""
  createdAt: ISO8601DateTime!

  """Time the deployment was deleted."""
  deletedAt: ISO8601DateTime

  """Time the deployment will expire."""
  expiresAt: ISO8601DateTime

  """Number of files that were published with the deployment."""
  fileCount: Int

  """ID of the Pages Deployment."""
  id: ID!

  """URL path Prefix that points to the deployment."""
  pathPrefix: String

  """Project the deployment belongs to."""
  project: Project!

  """
  Path within the build assets that functions as the root directory for Pages sites.
  """
  rootDirectory: String

  """Size of the storage used."""
  size: Int

  """Time the deployment was last updated."""
  updatedAt: ISO8601DateTime!

  """Publicly accessible URL of the deployment."""
  url: String!
}

"""The connection type for PagesDeployment."""
type PagesDeploymentConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PagesDeploymentEdge]

  """A list of nodes."""
  nodes: [PagesDeployment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PagesDeploymentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PagesDeployment
}

"""
A `PagesDeploymentID` is a global ID. It is encoded as a string.

An example `PagesDeploymentID` is: `"gid://gitlab/PagesDeployment/1"`.
"""
scalar PagesDeploymentID

"""
Represents the Geo replication and verification state of a pages_deployment
"""
type PagesDeploymentRegistry {
  """
  Indicate if the checksums of the PagesDeploymentRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PagesDeploymentRegistry was created"""
  createdAt: Time

  """Path to the data management view for this PagesDeploymentRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PagesDeploymentRegistry"""
  id: ID!

  """Error message during sync of the PagesDeploymentRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PagesDeploymentRegistry
  """
  lastSyncedAt: Time

  """Indicate if the PagesDeploymentRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the PagesDeploymentRegistry's model record."""
  modelRecordId: Int

  """ID of the Pages Deployment."""
  pagesDeploymentId: ID!

  """Timestamp after which the PagesDeploymentRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PagesDeploymentRegistry
  """
  retryCount: Int

  """Sync state of the PagesDeploymentRegistry"""
  state: RegistryState

  """The local checksum of the PagesDeploymentRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PagesDeploymentRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the PagesDeploymentRegistry"""
  verificationFailure: String

  """Timestamp after which the PagesDeploymentRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PagesDeploymentRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of PagesDeploymentRegistry started"""
  verificationStartedAt: Time

  """Verification state of the PagesDeploymentRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PagesDeploymentRegistry
  """
  verifiedAt: Time
}

"""The connection type for PagesDeploymentRegistry."""
type PagesDeploymentRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PagesDeploymentRegistryEdge]

  """A list of nodes."""
  nodes: [PagesDeploymentRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PagesDeploymentRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PagesDeploymentRegistry
}

"""Autogenerated input type of PagesMarkOnboardingComplete"""
input PagesMarkOnboardingCompleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!
}

"""Autogenerated return type of PagesMarkOnboardingComplete."""
type PagesMarkOnboardingCompletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Indicates the new onboarding_complete state of the project's Pages metadata.
  """
  onboardingComplete: Boolean!
}

"""
Represents a file or directory in the project repository that has been locked.
"""
type PathLock {
  """ID of the path lock."""
  id: PathLockID!

  """Locked path."""
  path: String

  """User that has locked the path."""
  user: UserCore

  """Permissions for the current user on the resource"""
  userPermissions: PathLockPermissions!
}

"""The connection type for PathLock."""
type PathLockConnection {
  """A list of edges."""
  edges: [PathLockEdge]

  """A list of nodes."""
  nodes: [PathLock]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PathLockEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PathLock
}

"""
A `PathLockID` is a global ID. It is encoded as a string.

An example `PathLockID` is: `"gid://gitlab/PathLock/1"`.
"""
scalar PathLockID

type PathLockPermissions {
  """If `true`, the user can perform `destroy_path_lock` on this resource"""
  destroyPathLock: Boolean!
}

"""String or integer."""
scalar PayloadAlertFieldPathSegment

"""Represents a Pending Group Membership"""
type PendingGroupMember implements MemberInterface & PendingMemberInterface {
  """GitLab::Access level."""
  accessLevel: AccessLevel

  """Whether the pending member has been approved."""
  approved: Boolean

  """URL to avatar image file of the pending member."""
  avatarUrl: String

  """Date and time the membership was created."""
  createdAt: Time

  """User that authorized membership."""
  createdBy: UserCore

  """Public email of the pending member."""
  email: String

  """Date and time the membership expires."""
  expiresAt: Time

  """ID of the member."""
  id: ID!

  """Whether the pending member has been invited."""
  invited: Boolean

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """Name of the pending member."""
  name: String

  """Date and time the membership was last updated."""
  updatedAt: Time

  """User that is associated with the member object."""
  user: UserCore

  """Username of the pending member."""
  username: String

  """Web URL of the pending member."""
  webUrl: String
}

interface PendingMemberInterface {
  """GitLab::Access level."""
  accessLevel: AccessLevel

  """Whether the pending member has been approved."""
  approved: Boolean

  """URL to avatar image file of the pending member."""
  avatarUrl: String

  """Date and time the membership was created."""
  createdAt: Time

  """User that authorized membership."""
  createdBy: UserCore

  """Public email of the pending member."""
  email: String

  """Date and time the membership expires."""
  expiresAt: Time

  """ID of the member."""
  id: ID!

  """Whether the pending member has been invited."""
  invited: Boolean

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """Name of the pending member."""
  name: String

  """Date and time the membership was last updated."""
  updatedAt: Time

  """User that is associated with the member object."""
  user: UserCore

  """Username of the pending member."""
  username: String

  """Web URL of the pending member."""
  webUrl: String
}

"""The connection type for PendingMemberInterface."""
type PendingMemberInterfaceConnection {
  """A list of edges."""
  edges: [PendingMemberInterfaceEdge]

  """A list of nodes."""
  nodes: [PendingMemberInterface]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PendingMemberInterfaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PendingMemberInterface
}

"""Represents a Pending Project Membership"""
type PendingProjectMember implements MemberInterface & PendingMemberInterface {
  """GitLab::Access level."""
  accessLevel: AccessLevel

  """Whether the pending member has been approved."""
  approved: Boolean

  """URL to avatar image file of the pending member."""
  avatarUrl: String

  """Date and time the membership was created."""
  createdAt: Time

  """User that authorized membership."""
  createdBy: UserCore

  """Public email of the pending member."""
  email: String

  """Date and time the membership expires."""
  expiresAt: Time

  """ID of the member."""
  id: ID!

  """Whether the pending member has been invited."""
  invited: Boolean

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """Name of the pending member."""
  name: String

  """Date and time the membership was last updated."""
  updatedAt: Time

  """User that is associated with the member object."""
  user: UserCore

  """Username of the pending member."""
  username: String

  """Web URL of the pending member."""
  webUrl: String
}

"""Type of resource that the permission can be applied to."""
enum PermissionBoundary {
  """Group."""
  GROUP

  """Project."""
  PROJECT

  """User."""
  USER

  """Instance."""
  INSTANCE
}

"""Personal access token."""
type PersonalAccessToken {
  """Whether the personal access token is active."""
  active: Boolean!

  """Timestamp of when the personal access token was created."""
  createdAt: Time!

  """Description of the personal access token."""
  description: String

  """Date of when the personal access token expires."""
  expiresAt: Date

  """Whether the personal access token is granular."""
  granular: Boolean!

  """ID of the personal access token."""
  id: ID!

  """Timestamp of when the personal access token was last used."""
  lastUsedAt: Time

  """IP addresses where the personal access token was recently used."""
  lastUsedIps: [String!]!

  """Name of the personal access token."""
  name: String!

  """Whether the personal access token has been revoked."""
  revoked: Boolean!

  """List of scopes applied to a personal access token."""
  scopes: [PersonalAccessTokenScope!]!
}

"""The connection type for PersonalAccessToken."""
type PersonalAccessTokenConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PersonalAccessTokenEdge]

  """A list of nodes."""
  nodes: [PersonalAccessToken]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of PersonalAccessTokenCreate"""
input PersonalAccessTokenCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the token."""
  name: String!

  """Description of the token."""
  description: String

  """Expiration date of the token."""
  expiresAt: ISO8601Date

  """List of granular scopes to assign to the token."""
  granularScopes: [GranularScopeInput!]!
}

"""Autogenerated return type of PersonalAccessTokenCreate."""
type PersonalAccessTokenCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created personal access token."""
  token: String
}

"""An edge in a connection."""
type PersonalAccessTokenEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PersonalAccessToken
}

"""
A `PersonalAccessTokenID` is a global ID. It is encoded as a string.

An example `PersonalAccessTokenID` is: `"gid://gitlab/PersonalAccessToken/1"`.
"""
scalar PersonalAccessTokenID

"""Autogenerated input type of PersonalAccessTokenRevoke"""
input PersonalAccessTokenRevokeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the personal access token that will be revoked."""
  id: PersonalAccessTokenID!
}

"""Autogenerated return type of PersonalAccessTokenRevoke."""
type PersonalAccessTokenRevokePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of PersonalAccessTokenRotate"""
input PersonalAccessTokenRotateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the personal access token that will be rotated."""
  id: PersonalAccessTokenID!

  """Expiration date of the token."""
  expiresAt: ISO8601Date
}

"""Autogenerated return type of PersonalAccessTokenRotate."""
type PersonalAccessTokenRotatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created personal access token."""
  token: String
}

"""Scope applied to a personal access token."""
union PersonalAccessTokenScope = AccessTokenGranularScope | AccessTokenLegacyScope

"""
Represents the Geo replication and verification state of a personal_snippet_upload
"""
type PersonalSnippetUploadRegistry {
  """
  Indicate if the checksums of the PersonalSnippetUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PersonalSnippetUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this PersonalSnippetUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PersonalSnippetUploadRegistry"""
  id: ID!

  """Error message during sync of the PersonalSnippetUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PersonalSnippetUploadRegistry
  """
  lastSyncedAt: Time

  """Indicate if the PersonalSnippetUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the PersonalSnippetUploadRegistry's model record."""
  modelRecordId: Int

  """ID of the Personal Snippet Upload."""
  personalSnippetUploadId: ID!

  """Timestamp after which the PersonalSnippetUploadRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PersonalSnippetUploadRegistry
  """
  retryCount: Int

  """Sync state of the PersonalSnippetUploadRegistry"""
  state: RegistryState

  """The local checksum of the PersonalSnippetUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PersonalSnippetUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the PersonalSnippetUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the PersonalSnippetUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PersonalSnippetUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of PersonalSnippetUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the PersonalSnippetUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PersonalSnippetUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for PersonalSnippetUploadRegistry."""
type PersonalSnippetUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PersonalSnippetUploadRegistryEdge]

  """A list of nodes."""
  nodes: [PersonalSnippetUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PersonalSnippetUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PersonalSnippetUploadRegistry
}

type Pipeline implements PipelineInterface {
  """Indicates if the pipeline is active."""
  active: Boolean!

  """Base SHA of the source branch."""
  beforeSha: String

  """Specifies if a pipeline can be canceled."""
  cancelable: Boolean!

  """If the pipeline is a child or not."""
  child: Boolean!

  """Code Quality report summary for a pipeline."""
  codeQualityReportSummary: CodeQualityReportSummary

  """Code Quality degradations reported on the pipeline."""
  codeQualityReports(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CodeQualityDegradationConnection

  """Git commit of the pipeline."""
  commit: Commit

  """Path to the commit that triggered the pipeline."""
  commitPath: String

  """Timestamp of the pipeline's commit."""
  committedAt: Time

  """Indicates if a pipeline is complete."""
  complete: Boolean!

  """Total minutes consumed by the pipeline."""
  computeMinutes: Float

  """
  Configuration source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE,
  AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE,
  BRIDGE_SOURCE, PARAMETER_SOURCE, COMPLIANCE_SOURCE,
  SECURITY_POLICIES_DEFAULT_SOURCE, PIPELINE_EXECUTION_POLICY_FORCED,
  SECURITY_SCAN_PROFILES_SOURCE)
  """
  configSource: PipelineConfigSourceEnum

  """Coverage percentage."""
  coverage: Float

  """Timestamp of the pipeline's creation."""
  createdAt: Time!

  """DAST profile associated with the pipeline."""
  dastProfile: DastProfile

  """Detailed status of the pipeline."""
  detailedStatus: DetailedStatus!

  """
  Latest pipelines triggered by the pipeline. Pipelines from trigger jobs that have since been retried are excluded.
  """
  downstream(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineConnection

  """Duration of the pipeline in seconds."""
  duration: Int

  """
  Partial scans present in the pipeline and its descendents for each report type
  Introduced in GitLab 18.3: **Status**: Experiment.
  """
  enabledPartialSecurityScans: EnabledSecurityScans! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Security scans present in the pipeline and its descendents for each report
  type Introduced in GitLab 18.3: **Status**: Experiment.
  """
  enabledSecurityScans: EnabledSecurityScans! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """Pipeline error messages."""
  errorMessages(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineMessageConnection

  """
  Number of failed jobs in the pipeline, including trigger jobs and external jobs.
  """
  failedJobsCount: Int!

  """Reason why the pipeline failed."""
  failureReason: String

  """Timestamp of the pipeline's completion."""
  finishedAt: Time

  """Indicates if the pipeline has manual actions."""
  hasManualActions: Boolean!

  """Indicates if the pipeline has scheduled actions."""
  hasScheduledActions: Boolean!

  """ID of the pipeline."""
  id: ID!

  """Internal ID of the pipeline."""
  iid: String!

  """Specific job in the pipeline, either by name or ID."""
  job(
    """ID of the job."""
    id: JobID

    """Name of the job."""
    name: String
  ): CiJob

  """Job artifacts of the pipeline."""
  jobArtifacts: [CiJobArtifact!]

  """Jobs belonging to the pipeline."""
  jobs(
    """Filter jobs by kind."""
    jobKind: CiJobKind

    """Filter jobs by retry-status."""
    retried: Boolean

    """Filter jobs by the type of security report they produce."""
    securityReportTypes: [SecurityReportTypeEnum!]

    """Filter jobs by status."""
    statuses: [CiJobStatus!]

    """Filter jobs by when they are executed."""
    whenExecuted: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """If the pipeline is the latest one or not."""
  latest: Boolean!

  """CI/CD variables added to a manual pipeline."""
  manualVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineManualVariableConnection

  """MR which the Pipeline is attached to."""
  mergeRequest: MergeRequest

  """Event type of the pipeline associated with a merge request."""
  mergeRequestEventType: PipelineMergeRequestEventType

  """Name of the pipeline."""
  name: String

  """Relative path to the pipeline's page."""
  path: String

  """Pipeline schedule that triggered the pipeline."""
  pipelineSchedule: PipelineSchedule

  """Project the pipeline belongs to."""
  project: Project

  """How long the pipeline was queued before starting."""
  queuedDuration: Duration

  """Reference to the branch from which the pipeline was triggered."""
  ref: String

  """Reference path to the branch from which the pipeline was triggered."""
  refPath: String

  """Reference text from the presenter."""
  refText: String!

  """Specifies if a pipeline's jobs can be retried."""
  retryable: Boolean!

  """Vulnerability finding reported on the pipeline."""
  securityReportFinding(
    """UUID of the security report finding."""
    uuid: String!
  ): PipelineSecurityReportFinding

  """
  Vulnerability findings reported on the pipeline. By default all the states except dismissed are included in the response.
  """
  securityReportFindings(
    """Filter vulnerability findings by report type."""
    reportType: [String!]

    """Filter vulnerability findings by severity."""
    severity: [String!]

    """Filter vulnerability findings by Scanner.externalId."""
    scanner: [String!]

    """Filter vulnerability findings by state."""
    state: [VulnerabilityState!]

    """List vulnerability findings by sort order."""
    sort: PipelineSecurityReportFindingSort = severity_desc

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineSecurityReportFindingConnection

  """
  Vulnerability and scanned resource counts for each security scanner of the pipeline.
  """
  securityReportSummary: SecurityReportSummary

  """SHA of the pipeline's commit."""
  sha(
    """Format of the SHA."""
    format: ShaFormat
  ): String

  """Source of the pipeline."""
  source: String

  """Job where pipeline was triggered from."""
  sourceJob: CiJob

  """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,
  WAITING_FOR_CALLBACK, PENDING, RUNNING, FAILED, SUCCESS, CANCELED, CANCELING,
  SKIPPED, MANUAL, SCHEDULED)
  """
  status: PipelineStatusEnum!

  """If the pipeline is stuck."""
  stuck: Boolean!

  """Summary of the test report generated by the pipeline."""
  testReportSummary: TestReportSummary!

  """A specific test suite in a pipeline test report."""
  testSuite(
    """IDs of the builds used to run the test suite."""
    buildIds: [ID!]!
  ): TestSuite

  """Total number of jobs in the pipeline."""
  totalJobs: Int!

  """If the pipeline was created by a Trigger request."""
  trigger: Boolean!

  """Path that triggered the pipeline."""
  triggeredByPath: String

  """If the user can troubleshoot jobs of a pipeline."""
  troubleshootJobWithAi: Boolean!

  """Type of the pipeline."""
  type: String!

  """Timestamp of the pipeline's last activity."""
  updatedAt: Time!

  """Pipeline that triggered the pipeline."""
  upstream: Pipeline

  """Pipeline user."""
  user: UserCore

  """Permissions for the current user on the resource"""
  userPermissions: PipelinePermissions!

  """Indicates if the pipeline has jobs with `needs` dependencies."""
  usesNeeds: Boolean

  """Pipeline warning messages."""
  warningMessages(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineMessageConnection

  """Indicates if a pipeline has warnings."""
  warnings: Boolean!

  """Pipeline YAML errors."""
  yamlErrorMessages: String

  """If the pipeline has YAML errors."""
  yamlErrors: Boolean!
}

type PipelineAnalytics {
  """
  Pipeline analytics for the specified filter. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  aggregate: PipelineAnalyticsPeriod @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Labels for the monthly pipeline count. Only available for projects."""
  monthPipelinesLabels: [String!]

  """Total monthly successful pipeline count. Only available for projects."""
  monthPipelinesSuccessful: [Int!]

  """Total monthly pipeline count. Only available for projects."""
  monthPipelinesTotals: [Int!]

  """Pipeline times labels. Only available for projects."""
  pipelineTimesLabels: [String!]

  """Pipeline times. Only available for projects."""
  pipelineTimesValues: [Int!]

  """
  Pipeline analytics shown over time based on the specified filter. Data is
  aggregated in UTC, with adaptive resolution: hourly for 7-day windows or less,
  daily for longer periods. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  timeSeries(
    """Periodicity of aggregated data."""
    period: AnalyticsAggregationPeriod!
  ): [PipelineAnalyticsPeriod!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Labels for the weekly pipeline count. Only available for projects."""
  weekPipelinesLabels: [String!]

  """Total weekly successful pipeline count. Only available for projects."""
  weekPipelinesSuccessful: [Int!]

  """Total weekly pipeline count. Only available for projects."""
  weekPipelinesTotals: [Int!]

  """Labels for the yearly pipeline count. Only available for projects."""
  yearPipelinesLabels: [String!]

  """Total yearly successful pipeline count. Only available for projects."""
  yearPipelinesSuccessful: [Int!]

  """Total yearly pipeline count. Only available for projects."""
  yearPipelinesTotals: [Int!]
}

enum PipelineAnalyticsJobStatus {
  """Jobs with any status."""
  ANY

  """Job that failed."""
  FAILED

  """Job that succeeded."""
  SUCCESS

  """Job that was canceled or skipped."""
  OTHER
}

type PipelineAnalyticsPeriod {
  """
  Pipeline count, optionally filtered by status. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  count(
    """
    Filter pipeline totals by status. If not specified, totals for all pipeline statuses are returned.
    """
    status: PipelineAnalyticsJobStatus! = ANY
  ): BigInt @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  Pipeline duration statistics. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  durationStatistics: CiDurationStatistics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  Data point label (UTC time). Introduced in GitLab 17.5: **Status**: Experiment.
  """
  label: Date @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")
}

"""Represents the Geo sync and verification state of a pipeline artifact"""
type PipelineArtifactRegistry {
  """
  Indicate if the checksums of the PipelineArtifactRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the PipelineArtifactRegistry was created"""
  createdAt: Time

  """Path to the data management view for this PipelineArtifactRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the PipelineArtifactRegistry"""
  id: ID!

  """Error message during sync of the PipelineArtifactRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PipelineArtifactRegistry
  """
  lastSyncedAt: Time

  """Indicate if the PipelineArtifactRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the PipelineArtifactRegistry's model record."""
  modelRecordId: Int

  """ID of the pipeline artifact."""
  pipelineArtifactId: ID!

  """Timestamp after which the PipelineArtifactRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PipelineArtifactRegistry
  """
  retryCount: Int

  """Sync state of the PipelineArtifactRegistry"""
  state: RegistryState

  """The local checksum of the PipelineArtifactRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the PipelineArtifactRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the PipelineArtifactRegistry"""
  verificationFailure: String

  """Timestamp after which the PipelineArtifactRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the PipelineArtifactRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of PipelineArtifactRegistry started"""
  verificationStartedAt: Time

  """Verification state of the PipelineArtifactRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the PipelineArtifactRegistry
  """
  verifiedAt: Time
}

"""The connection type for PipelineArtifactRegistry."""
type PipelineArtifactRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [PipelineArtifactRegistryEdge]

  """A list of nodes."""
  nodes: [PipelineArtifactRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineArtifactRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineArtifactRegistry
}

"""Autogenerated input type of PipelineCancel"""
input PipelineCancelInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 the mutation."""
  errors: [String!]!

  """Pipeline after mutation."""
  pipeline: Pipeline
}

enum PipelineConfigSourceEnum {
  """Unknown source."""
  UNKNOWN_SOURCE

  """Repository source."""
  REPOSITORY_SOURCE

  """Auto DevOps source."""
  AUTO_DEVOPS_SOURCE

  """Webide source."""
  WEBIDE_SOURCE

  """Remote source."""
  REMOTE_SOURCE

  """External project source."""
  EXTERNAL_PROJECT_SOURCE

  """Bridge source."""
  BRIDGE_SOURCE

  """Parameter source."""
  PARAMETER_SOURCE

  """Compliance source."""
  COMPLIANCE_SOURCE

  """Security policies default source."""
  SECURITY_POLICIES_DEFAULT_SOURCE

  """Pipeline execution policy forced."""
  PIPELINE_EXECUTION_POLICY_FORCED

  """Security scan profiles source."""
  SECURITY_SCAN_PROFILES_SOURCE
}

"""The connection type for Pipeline."""
type PipelineConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PipelineEdge]

  """A list of nodes."""
  nodes: [Pipeline]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents pipeline counts for the project"""
type PipelineCounts {
  """Total number of pipelines for the project."""
  all: Int

  """Number of pipelines with scope FINISHED for the project"""
  finished: Int

  """Number of pipelines with scope PENDING for the project"""
  pending: Int

  """Number of pipelines with scope RUNNING for the project"""
  running: Int
}

"""Autogenerated input type of PipelineCreate"""
input PipelineCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  When `true`, the request does not wait for the pipeline to be created, and
  returns a unique identifier that can be used to check the creation status.
  Introduced in GitLab 17.8: **Status**: Experiment.
  """
  async: Boolean

  """Full path of the project that is triggering the pipeline."""
  projectPath: ID!

  """
  Ref on which to run the pipeline. Ignored when `mergeRequestIid` is provided; the merge request ref path is used instead.
  """
  ref: String!

  """Variables for the pipeline."""
  variables: [CiVariableInput!]

  """
  Inputs for the pipeline. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  inputs: [CiInputsInput!]

  """IID of the merge request to create pipeline for."""
  mergeRequestIid: String
}

"""Autogenerated return type of PipelineCreate."""
type PipelineCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Pipeline created after mutation. Null if `async: true`."""
  pipeline: Pipeline

  """
  ID for checking the pipeline creation status. Null if `async: false`. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  requestId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")
}

"""Autogenerated input type of PipelineDestroy"""
input PipelineDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 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
}

"""Represents the pipeline execution policy"""
type PipelineExecutionPolicy implements OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """Path to the policy file in the project."""
  policyBlobFilePath: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """Warnings associated with the policy."""
  warnings: [String!]!

  """YAML definition of the policy."""
  yaml: String!
}

"""Represents policy fields related to the pipeline execution policy."""
type PipelineExecutionPolicyAttributesType {
  """Path to the policy file in the project."""
  policyBlobFilePath: String!

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Warnings associated with the policy."""
  warnings: [String!]!
}

"""The connection type for PipelineExecutionPolicy."""
type PipelineExecutionPolicyConnection {
  """A list of edges."""
  edges: [PipelineExecutionPolicyEdge]

  """A list of nodes."""
  nodes: [PipelineExecutionPolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineExecutionPolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineExecutionPolicy
}

"""Represents a project schedule for a pipeline execution policy."""
type PipelineExecutionProjectSchedule {
  """Cron expression for the schedule."""
  cron: String!

  """Timezone for the cron schedule."""
  cronTimezone: String!

  """ID of the schedule record."""
  id: SecurityPipelineExecutionProjectScheduleID!

  """Timestamp of the next scheduled run."""
  nextRunAt: Time

  """Project the scheduled pipeline will run for."""
  project: Project!

  """Timestamp until which the schedule is snoozed."""
  snoozedUntil: Time

  """Time window in seconds for distributing pipeline runs."""
  timeWindowSeconds: Int!
}

"""The connection type for PipelineExecutionProjectSchedule."""
type PipelineExecutionProjectScheduleConnection {
  """A list of edges."""
  edges: [PipelineExecutionProjectScheduleEdge]

  """A list of nodes."""
  nodes: [PipelineExecutionProjectSchedule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineExecutionProjectScheduleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineExecutionProjectSchedule
}

"""
Represents policy fields related to the pipeline execution scheduled policy.
"""
type PipelineExecutionScheduledPolicyAttributesType {
  """Path to the policy file in the project."""
  policyBlobFilePath: String!

  """
  Time window in seconds from the first schedule of the policy. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  scheduleTimeWindowSeconds: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Warnings associated with the policy."""
  warnings: [String!]!
}

"""Represents the pipeline execution schedule policy"""
type PipelineExecutionSchedulePolicy implements OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """Path to the policy file in the project."""
  policyBlobFilePath: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """
  Pipelines created by this scheduled policy. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  schedulePipelines(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PolicySchedulePipelineConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Time window in seconds from the first schedule of the policy. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  scheduleTimeWindowSeconds: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """
  Upcoming scheduled runs for this policy. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  upcomingSchedules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionProjectScheduleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """Warnings associated with the policy."""
  warnings: [String!]!

  """YAML definition of the policy."""
  yaml: String!
}

"""The connection type for PipelineExecutionSchedulePolicy."""
type PipelineExecutionSchedulePolicyConnection {
  """A list of edges."""
  edges: [PipelineExecutionSchedulePolicyEdge]

  """A list of nodes."""
  nodes: [PipelineExecutionSchedulePolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineExecutionSchedulePolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineExecutionSchedulePolicy
}

"""Autogenerated input type of PipelineExecutionSchedulePolicyTestRun"""
input PipelineExecutionSchedulePolicyTestRunInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the pipeline execution schedule policy to test."""
  policyId: SecurityPolicyID!

  """Full path of the project to run the test on."""
  projectPath: ID!
}

"""Autogenerated return type of PipelineExecutionSchedulePolicyTestRun."""
type PipelineExecutionSchedulePolicyTestRunPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Test-run record created."""
  testRun: PolicyScheduleTestRun
}

interface PipelineInterface {
  """Git commit of the pipeline."""
  commit: Commit

  """ID of the pipeline."""
  id: ID

  """Internal ID of the pipeline."""
  iid: String

  """Relative path to the pipeline's page."""
  path: String

  """Project the pipeline belongs to."""
  project: ProjectInterface

  """Pipeline user."""
  user: UserCore
}

"""CI/CD variables added to a manual pipeline."""
type PipelineManualVariable {
  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Value of the variable."""
  value: String
}

"""The connection type for PipelineManualVariable."""
type PipelineManualVariableConnection {
  """A list of edges."""
  edges: [PipelineManualVariableEdge]

  """A list of nodes."""
  nodes: [PipelineManualVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineManualVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineManualVariable
}

"""Event type of the pipeline associated with a merge request"""
enum PipelineMergeRequestEventType {
  """
  Pipeline run on the changes from the source branch combined with the target branch.
  """
  MERGED_RESULT

  """Pipeline run on the changes in the merge request source branch."""
  DETACHED

  """Pipeline ran as part of a merge train."""
  MERGE_TRAIN
}

type PipelineMessage {
  """Content of the pipeline message."""
  content: String!

  """ID of the pipeline message."""
  id: ID!
}

"""The connection type for PipelineMessage."""
type PipelineMessageConnection {
  """A list of edges."""
  edges: [PipelineMessageEdge]

  """A list of nodes."""
  nodes: [PipelineMessage]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineMessageEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineMessage
}

type PipelineMinimalAccess implements PipelineInterface {
  """Git commit of the pipeline."""
  commit: Commit

  """ID of the pipeline."""
  id: ID!

  """Internal ID of the pipeline."""
  iid: String

  """Relative path to the pipeline's page."""
  path: String

  """Project the pipeline belongs to."""
  project: ProjectInterface

  """Pipeline user."""
  user: UserCore
}

type PipelinePermissions {
  """If `true`, the user can perform `admin_pipeline` on this resource"""
  adminPipeline: Boolean!

  """If `true`, the user can perform `cancel_pipeline` on this resource"""
  cancelPipeline: Boolean!

  """If `true`, the user can perform `destroy_pipeline` on this resource"""
  destroyPipeline: Boolean!

  """If `true`, 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

  """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 the mutation."""
  errors: [String!]!

  """Pipeline after mutation."""
  pipeline: Pipeline
}

"""Represents a pipeline schedule"""
type PipelineSchedule {
  """Indicates if the pipeline schedule is active."""
  active: Boolean!

  """Timestamp of when the pipeline schedule was created."""
  createdAt: Time!

  """Cron notation for the schedule."""
  cron: String!

  """Timezone for the pipeline schedule."""
  cronTimezone: String!

  """Description of the pipeline schedule."""
  description: String

  """Edit path of the pipeline schedule."""
  editPath: String

  """Indicates if a pipelines schedule belongs to a tag."""
  forTag: Boolean!

  """ID of the pipeline schedule."""
  id: ID!

  """
  Inputs configured for the pipeline schedule. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  inputs(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiInputsFieldConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Last pipeline object."""
  lastPipeline: Pipeline

  """Time when the next pipeline will run."""
  nextRunAt: Time

  """Owner of the pipeline schedule."""
  owner: UserCore

  """Project of the pipeline schedule."""
  project: Project

  """Time when the next pipeline will run."""
  realNextRun: Time

  """Ref of the pipeline schedule."""
  ref: String

  """Git ref for the pipeline schedule."""
  refForDisplay: String

  """Path to the ref that triggered the pipeline."""
  refPath: String

  """Timestamp of when the pipeline schedule was last updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: PipelineSchedulePermissions!

  """Pipeline schedule 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
  ): PipelineScheduleVariableConnection
}

"""The connection type for PipelineSchedule."""
type PipelineScheduleConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PipelineScheduleEdge]

  """A list of nodes."""
  nodes: [PipelineSchedule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of PipelineScheduleCreate"""
input PipelineScheduleCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project the pipeline schedule is associated with."""
  projectPath: ID!

  """Description of the pipeline schedule."""
  description: String!

  """Cron expression of the pipeline schedule."""
  cron: String!

  """
                      Cron time zone supported by `ActiveSupport::TimeZone`.
                      For example: `Pacific Time (US & Canada)` (default: `UTC`).
  
  """
  cronTimezone: String

  """Ref of the pipeline schedule."""
  ref: String!

  """Indicates if the pipeline schedule should be active or not."""
  active: Boolean

  """Variables for the pipeline schedule."""
  variables: [PipelineScheduleVariableInput!]

  """
  Inputs for the pipeline schedule. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  inputs: [CiInputsInput!]
}

"""Autogenerated return type of PipelineScheduleCreate."""
type PipelineScheduleCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created pipeline schedule."""
  pipelineSchedule: PipelineSchedule
}

"""Autogenerated input type of PipelineScheduleDelete"""
input PipelineScheduleDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline schedule to mutate."""
  id: CiPipelineScheduleID!
}

"""Autogenerated return type of PipelineScheduleDelete."""
type PipelineScheduleDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type PipelineScheduleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineSchedule
}

type PipelineSchedulePermissions {
  """
  If `true`, the user can perform `admin_pipeline_schedule` on this resource
  """
  adminPipelineSchedule: Boolean!

  """
  If `true`, the user can perform `play_pipeline_schedule` on this resource
  """
  playPipelineSchedule: Boolean!

  """
  If `true`, the user can perform `take_ownership_pipeline_schedule` on this
  resource Deprecated in GitLab 15.9: Use admin_pipeline_schedule permission to
  determine if the user can take ownership of a pipeline schedule.
  """
  takeOwnershipPipelineSchedule: Boolean! @deprecated(reason: "Use admin_pipeline_schedule permission to determine if the user can take ownership of a pipeline schedule. Deprecated in GitLab 15.9.")

  """
  If `true`, the user can perform `update_pipeline_schedule` on this resource
  """
  updatePipelineSchedule: Boolean!
}

"""Autogenerated input type of PipelineSchedulePlay"""
input PipelineSchedulePlayInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline schedule to mutate."""
  id: CiPipelineScheduleID!
}

"""Autogenerated return type of PipelineSchedulePlay."""
type PipelineSchedulePlayPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Pipeline schedule after mutation."""
  pipelineSchedule: PipelineSchedule
}

"""Values for sorting pipeline schedules."""
enum PipelineScheduleSort {
  """Sort pipeline schedules by ID in descending order."""
  ID_DESC

  """Sort pipeline schedules by ID in ascending order."""
  ID_ASC

  """Sort pipeline schedules by description in descending order."""
  DESCRIPTION_DESC

  """Sort pipeline schedules by description in ascending order."""
  DESCRIPTION_ASC

  """Sort pipeline schedules by target in descending order."""
  REF_DESC

  """Sort pipeline schedules by target in ascending order."""
  REF_ASC

  """Sort pipeline schedules by next run in descending order."""
  NEXT_RUN_AT_DESC

  """Sort pipeline schedules by next run in ascending order."""
  NEXT_RUN_AT_ASC

  """Sort pipeline schedules by created date in descending order."""
  CREATED_AT_DESC

  """Sort pipeline schedules by created date in ascending order."""
  CREATED_AT_ASC

  """Sort pipeline schedules by updated date in descending order."""
  UPDATED_AT_DESC

  """Sort pipeline schedules by updated date in ascending order."""
  UPDATED_AT_ASC
}

enum PipelineScheduleStatus {
  """Active pipeline schedules."""
  ACTIVE

  """Inactive pipeline schedules."""
  INACTIVE
}

"""Counts of pipeline schedules by status"""
type PipelineScheduleStatusCount {
  """Number of active pipeline schedules."""
  active: Int!

  """Number of inactive pipeline schedules."""
  inactive: Int!

  """Total number of pipeline schedules."""
  total: Int!
}

"""Autogenerated input type of PipelineScheduleTakeOwnership"""
input PipelineScheduleTakeOwnershipInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline schedule to mutate."""
  id: CiPipelineScheduleID!
}

"""Autogenerated return type of PipelineScheduleTakeOwnership."""
type PipelineScheduleTakeOwnershipPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated pipeline schedule ownership."""
  pipelineSchedule: PipelineSchedule
}

"""Autogenerated input type of PipelineScheduleUpdate"""
input PipelineScheduleUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline schedule to mutate."""
  id: CiPipelineScheduleID!

  """Description of the pipeline schedule."""
  description: String

  """Cron expression of the pipeline schedule."""
  cron: String

  """
                      Cron time zone supported by `ActiveSupport::TimeZone`.
                      For example: `Pacific Time (US & Canada)` (default: `UTC`).
  
  """
  cronTimezone: String

  """Ref of the pipeline schedule."""
  ref: String

  """Indicates if the pipeline schedule should be active or not."""
  active: Boolean

  """Variables for the pipeline schedule."""
  variables: [PipelineScheduleVariableInput!]

  """
  Inputs for the pipeline schedule. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  inputs: [CiInputsInput!]
}

"""Autogenerated return type of PipelineScheduleUpdate."""
type PipelineScheduleUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated pipeline schedule."""
  pipelineSchedule: PipelineSchedule
}

type PipelineScheduleVariable implements CiVariable {
  """ID of the variable."""
  id: ID!

  """Name of the variable."""
  key: String

  """Indicates whether the variable is raw."""
  raw: Boolean

  """Value of the variable."""
  value: String

  """Type of the variable."""
  variableType: CiVariableType
}

"""The connection type for PipelineScheduleVariable."""
type PipelineScheduleVariableConnection {
  """A list of edges."""
  edges: [PipelineScheduleVariableEdge]

  """A list of nodes."""
  nodes: [PipelineScheduleVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineScheduleVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineScheduleVariable
}

"""Attributes for the pipeline schedule variable."""
input PipelineScheduleVariableInput {
  """ID of the variable to mutate."""
  id: CiPipelineScheduleVariableID

  """Name of the variable."""
  key: String!

  """Value of the variable."""
  value: String!

  """Type of the variable."""
  variableType: CiVariableType!

  """Boolean option to destroy the variable."""
  destroy: Boolean
}

enum PipelineScopeEnum {
  """Pipeline is running."""
  RUNNING

  """Pipeline has not started running yet."""
  PENDING

  """Pipeline has completed."""
  FINISHED

  """Branches."""
  BRANCHES

  """Tags."""
  TAGS
}

"""Represents vulnerability finding of a security report on the pipeline."""
type PipelineSecurityReportFinding {
  """Indicates whether the type of finding can be resolved with AI."""
  aiResolutionAvailable: Boolean

  """Indicates whether the specific finding can be resolved with AI."""
  aiResolutionEnabled: Boolean

  """List of assets associated with the vulnerability."""
  assets: [AssetType!]

  """Description of the vulnerability finding."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Details of the security finding."""
  details: [VulnerabilityDetail!]!

  """Reason for the dismissal of the security report finding."""
  dismissalReason: VulnerabilityDismissalReason

  """Time of the dismissal of the security report finding."""
  dismissedAt: Time

  """User who dismissed the security report finding."""
  dismissedBy: UserCore

  """Evidence for the vulnerability."""
  evidence: VulnerabilityEvidence

  """Indicates whether the vulnerability is a false positive."""
  falsePositive: Boolean

  """Status of the secret token associated with this finding."""
  findingTokenStatus: VulnerabilityFindingTokenStatus

  """Identifiers of the vulnerability finding."""
  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
  ): VulnerabilityIssueLinkConnection

  """List of links associated with the vulnerability."""
  links: [VulnerabilityLink!]

  """
  Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability.
  """
  location: VulnerabilityLocation

  """Merge request that fixes the vulnerability."""
  mergeRequest: MergeRequest

  """Severity of the vulnerability finding before any overrides."""
  originalSeverity: VulnerabilitySeverity

  """Project on which the vulnerability finding was found."""
  project: Project

  """Remediations of the security report finding."""
  remediations: [VulnerabilityRemediationType!]

  """Type of the security report that found the vulnerability finding."""
  reportType: VulnerabilityReportType

  """Scanner metadata for the vulnerability."""
  scanner: VulnerabilityScanner

  """Severity of the vulnerability finding."""
  severity: VulnerabilitySeverity

  """List of severity changes for the vulnerability finding."""
  severityOverrides(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SeverityOverrideConnection

  """Solution for resolving the security report finding."""
  solution: String

  """GitLab Flavored Markdown rendering of `solution`"""
  solutionHtml: String

  """Finding status."""
  state: VulnerabilityState

  """Comment for the state of the security report finding."""
  stateComment: String

  """Title of the vulnerability finding."""
  title: String

  """
  Indicates whether the finding was detected without an identified source (untrusted input).
  """
  unverified: Boolean!

  """Permissions for the current user on the resource"""
  userPermissions: PipelineSecurityReportFindingPermissions!

  """
  UUIDv5 digest based on the vulnerability's report type, primary identifier, location, fingerprint, project identifier.
  """
  uuid: String

  """Vulnerability related to the security report finding."""
  vulnerability: Vulnerability
}

"""The connection type for PipelineSecurityReportFinding."""
type PipelineSecurityReportFindingConnection {
  """A list of edges."""
  edges: [PipelineSecurityReportFindingEdge]

  """A list of nodes."""
  nodes: [PipelineSecurityReportFinding]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PipelineSecurityReportFindingEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineSecurityReportFinding
}

"""Check permissions for the current user on a vulnerability finding."""
type PipelineSecurityReportFindingPermissions {
  """If `true`, the user can perform `admin_vulnerability` on this resource"""
  adminVulnerability: Boolean!

  """If `true`, the user can perform `create_issue` on this resource"""
  createIssue: Boolean!
}

"""Pipeline security report finding sort values"""
enum PipelineSecurityReportFindingSort {
  """Severity in descending order."""
  severity_desc

  """Severity in ascending order."""
  severity_asc
}

enum PipelineStatusEnum {
  """Pipeline has been created."""
  CREATED

  """
  A resource (for example, a runner) that the pipeline requires to run is unavailable.
  """
  WAITING_FOR_RESOURCE

  """Pipeline is preparing to run."""
  PREPARING

  """Pipeline is waiting for an external action."""
  WAITING_FOR_CALLBACK

  """Pipeline has not started running yet."""
  PENDING

  """Pipeline is running."""
  RUNNING

  """At least one stage of the pipeline failed."""
  FAILED

  """Pipeline completed successfully."""
  SUCCESS

  """Pipeline is in the process of canceling."""
  CANCELING

  """Pipeline was canceled before completion."""
  CANCELED

  """Pipeline was skipped."""
  SKIPPED

  """Pipeline needs to be manually started."""
  MANUAL

  """Pipeline is scheduled to run."""
  SCHEDULED
}

type PipelineTrigger {
  """Indicates if the pipeline trigger token has access to the project."""
  canAccessProject: Boolean!

  """Description of the pipeline trigger token."""
  description: String

  """Timestamp of when the pipeline trigger token expires."""
  expiresAt: Time

  """Indicates if the token is exposed."""
  hasTokenExposed: Boolean!

  """ID of the pipeline trigger token."""
  id: ID!

  """Timestamp of the last usage of the pipeline trigger token."""
  lastUsed: Time

  """Owner of the pipeline trigger token."""
  owner: UserCore!

  """Value of the pipeline trigger token."""
  token: String!
}

"""The connection type for PipelineTrigger."""
type PipelineTriggerConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [PipelineTriggerEdge]

  """A list of nodes."""
  nodes: [PipelineTrigger]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of PipelineTriggerCreate"""
input PipelineTriggerCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Full path of the project that the pipeline trigger token to mutate is in.
  """
  projectPath: ID!

  """Description of the pipeline trigger token."""
  description: String!

  """Timestamp of when the pipeline trigger token expires."""
  expiresAt: Time
}

"""Autogenerated return type of PipelineTriggerCreate."""
type PipelineTriggerCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Mutated pipeline trigger token."""
  pipelineTrigger: PipelineTrigger
}

"""Autogenerated input type of PipelineTriggerDelete"""
input PipelineTriggerDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline trigger token to delete."""
  id: CiTriggerID!
}

"""Autogenerated return type of PipelineTriggerDelete."""
type PipelineTriggerDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type PipelineTriggerEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PipelineTrigger
}

"""Autogenerated input type of PipelineTriggerUpdate"""
input PipelineTriggerUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the pipeline trigger token to update."""
  id: CiTriggerID!

  """Description of the pipeline trigger token."""
  description: String!
}

"""Autogenerated return type of PipelineTriggerUpdate."""
type PipelineTriggerUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Mutated pipeline trigger token."""
  pipelineTrigger: PipelineTrigger
}

"""Pipeline variables minimum override roles."""
enum PipelineVariablesDefaultRoleType {
  """No one allowed"""
  NO_ONE_ALLOWED

  """Developer"""
  DEVELOPER

  """Maintainer"""
  MAINTAINER

  """Owner"""
  OWNER
}

"""
Security policy state synchronization update. Returns `null` if the
`security_policy_sync_propagation_tracking` feature flag is disabled.
"""
type PoliciesSyncUpdated {
  """IDs of failed projects."""
  failedProjects: [String!]

  """Whether security policies are currently being synchronized."""
  inProgress: Boolean

  """Percentage of merge requests synced."""
  mergeRequestsProgress: Float

  """Total number of merge requests synced."""
  mergeRequestsTotal: Int

  """Percentage of projects synced."""
  projectsProgress: Float

  """Total number of projects synced."""
  projectsTotal: Int
}

"""Represents policy violation for `any_merge_request` report_type"""
type PolicyAnyMergeRequestViolation {
  """
  List of unsigned commits causing the violation. If policy targets any commits, it returns `true`.
  """
  commits: JSON

  """Represents the policy name."""
  name: String!
}

type PolicyApprovalGroup {
  """Avatar URL of the group."""
  avatarUrl: String

  """Full path of the namespace."""
  fullPath: ID!

  """ID of the namespace."""
  id: ID!

  """Web URL of the group."""
  webUrl: String!
}

"""
Represents the approval settings of merge request overridden by a policy.
"""
type PolicyApprovalSettingsOverride {
  """
  Path to edit the policy. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  editPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """Policy name. Introduced in GitLab 17.8: **Status**: Experiment."""
  name: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """Overridden project approval settings."""
  settings: JSON!
}

"""Multiple approvers action"""
type PolicyApproversType {
  """
  All potential approvers of the group type, including groups inaccessible to the user.
  """
  allGroups: [PolicyApprovalGroup!]

  """
  Approvers of the custom role type. Users belonging to these role(s) alone will be approvers.
  """
  customRoles: [MemberRole!]

  """
  Approvers of the role type. Users belonging to these role(s) alone will be approvers.
  """
  roles: [MemberAccessLevelName!]

  """Approvers of the user type."""
  users: [UserCore!]
}

"""
Represents specific policy types. Its fields depend on the policy type.
"""
union PolicyAttributesUnion = ApprovalPolicyAttributesType | DependencyFirewallPolicyAttributesType | PipelineExecutionPolicyAttributesType | PipelineExecutionScheduledPolicyAttributesType | ScanExecutionPolicyAttributesType | VulnerabilityManagementPolicyAttributesType

"""Represents bypass status of a merge request for a security policy"""
type PolicyBypassStatus {
  """Indicates if bypass is allowed for the policy."""
  allowBypass: Boolean!

  """Indicates if the policy has been bypassed."""
  bypassed: Boolean!

  """ID of the security policy."""
  id: ID!

  """Name of the security policy."""
  name: String!
}

"""
Represents the source and target pipelines used for comparison in the policy evaluation.
"""
type PolicyComparisonPipeline {
  """Represents the report_type for which the pipeline IDs were evaluated."""
  reportType: ApprovalReportType!

  """Represents the list of pipeline GIDs for the source branch."""
  source: [CiPipelineID!]

  """Represents the list of pipeline GIDs for the target branch."""
  target: [CiPipelineID!]
}

"""
Represents a policy dismissal for a security finding or license occurrence
"""
type PolicyDismissal {
  """ID of the policy dismissal."""
  id: ID!

  """Security policy associated with the dismissal."""
  securityPolicy: SecurityPolicy
}

enum PolicyEnforcementType {
  """Represents an enforced policy type."""
  ENFORCE

  """Represents a warn mode policy type."""
  WARN
}

"""Represents an error that can occur during policy evaluation."""
type PolicyError {
  """Represents the error-specific data."""
  data: JSON

  """Represents error code."""
  error: PolicyViolationErrorType!

  """Represents the error message."""
  message: String!

  """Represents the report type."""
  reportType: ApprovalReportType!
}

"""Represents policy violation for `license_scanning` report_type"""
type PolicyLicenseScanningViolation {
  """List of dependencies using the violated license."""
  dependencies: [String!]!

  """License name."""
  license: String!

  """URL of the license."""
  url: String
}

"""Response of security policy creation."""
type PolicyProjectCreated {
  """
  Error messages in case status is :error. Deprecated in GitLab 17.5: Use errors instead.
  """
  errorMessage: String @deprecated(reason: "Use errors instead. Deprecated in GitLab 17.5.")

  """Error messages in case status is :error."""
  errors: [String!]

  """Security Policy Project that was created."""
  project: Project

  """Status of the creation of the security policy project."""
  status: PolicyProjectCreatedStatus
}

"""Types of security policy project created status."""
enum PolicyProjectCreatedStatus {
  """Creating the security policy project was successful."""
  SUCCESS

  """Creating the security policy project failed."""
  ERROR
}

"""Represents policy violation for `scan_finding` report_type"""
type PolicyScanFindingViolation {
  """Location of the finding determined by the scanner."""
  location: JSON

  """Represents the name of the finding."""
  name: String

  """Represents the URL path to the finding."""
  path: String

  """Represents the report type."""
  reportType: VulnerabilityReportType!

  """Severity of the finding."""
  severity: VulnerabilitySeverity
}

"""Represents a pipeline created by a scheduled security policy."""
type PolicySchedulePipeline {
  """Timestamp when the pipeline was triggered by the schedule."""
  createdAt: Time!

  """ID of the policy schedule pipeline record."""
  id: SecurityPolicySchedulePipelineID!

  """Pipeline created by the scheduled policy."""
  pipeline: Pipeline!

  """Project the pipeline was created for."""
  project: Project!
}

"""The connection type for PolicySchedulePipeline."""
type PolicySchedulePipelineConnection {
  """A list of edges."""
  edges: [PolicySchedulePipelineEdge]

  """A list of nodes."""
  nodes: [PolicySchedulePipeline]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PolicySchedulePipelineEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PolicySchedulePipeline
}

"""Represents a test run for a scheduled pipeline execution policy."""
type PolicyScheduleTestRun {
  """Whether the test run has completed."""
  completed: Boolean!

  """Timestamp when the test run was created."""
  createdAt: Time!

  """Duration of the test run in seconds."""
  duration: Int

  """Error message if the test run failed."""
  errorMessage: String

  """Timestamp when the test run finished."""
  finishedAt: Time

  """ID of the test run."""
  id: SecurityScheduledPipelineExecutionPolicyTestRunID!

  """Pipeline created by the test run."""
  pipeline: Pipeline

  """Project the test run was executed on."""
  project: Project!

  """Timestamp when the test run started."""
  startedAt: Time

  """State of the test run."""
  state: PolicyScheduleTestRunState!
}

"""The connection type for PolicyScheduleTestRun."""
type PolicyScheduleTestRunConnection {
  """A list of edges."""
  edges: [PolicyScheduleTestRunEdge]

  """A list of nodes."""
  nodes: [PolicyScheduleTestRun]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PolicyScheduleTestRunEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PolicyScheduleTestRun
}

"""State of a policy schedule test run."""
enum PolicyScheduleTestRunState {
  """Test run is pending and waiting for pipeline creation."""
  PENDING

  """Test run is in progress."""
  RUNNING

  """Test run completed successfully."""
  COMPLETE

  """Test run failed."""
  FAILED
}

type PolicyScope {
  """Compliance Frameworks linked to the policy."""
  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!

  """
  Application security attributes that the policy does not apply to. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  excludingApplicationAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Boolean indicating whether archived projects are excluded from the policy.
  """
  excludingArchivedProjects: Boolean!

  """
  Business Impact security attributes that the policy does not apply to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  excludingBusinessImpactAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Business Unit security attributes that the policy does not apply to. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  excludingBusinessUnitAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Exposure security attributes that the policy does not apply to. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  excludingExposureAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Groups to which the policy should not be applied."""
  excludingGroups(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection!

  """
  Boolean indicating whether personal projects are excluded from the policy.
  """
  excludingPersonalProjects: Boolean!

  """Projects to which the policy should not be applied."""
  excludingProjects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!

  """
  Application security attributes that the policy applies to. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  includingApplicationAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Business Impact security attributes that the policy applies to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  includingBusinessImpactAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Business Unit security attributes that the policy applies to. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  includingBusinessUnitAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Exposure security attributes that the policy applies to. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  includingExposureAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Groups to which the policy should be applied."""
  includingGroups(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection!

  """Projects to which the policy should be applied."""
  includingProjects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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!

  """
  Specifies how multiple policy scope conditions are combined. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  matchMode: PolicyScopeMatchMode! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")
}

"""Specifies how multiple policy scope conditions are combined."""
enum PolicyScopeMatchMode {
  """
  All specified conditions must match (AND logic). This is the default behavior.
  """
  ALL

  """At least one specified condition must match (OR logic)."""
  ANY
}

"""Lists the status of a virtual registry cleanup policy"""
enum PolicyStatus {
  """Cleanup policy status scheduled."""
  SCHEDULED

  """Cleanup policy status running."""
  RUNNING

  """Cleanup policy status failed."""
  FAILED
}

enum PolicyType {
  """Approval policy."""
  APPROVAL_POLICY

  """Scan execution policy."""
  SCAN_EXECUTION_POLICY

  """Pipeline execution policy."""
  PIPELINE_EXECUTION_POLICY

  """Pipeline execution schedule policy."""
  PIPELINE_EXECUTION_SCHEDULE_POLICY

  """Vulnerability management policy."""
  VULNERABILITY_MANAGEMENT_POLICY

  """
  Dependency firewall policy. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  DEPENDENCY_FIREWALL_POLICY @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
}

"""Represents the details of merge request approval policy violations."""
type PolicyViolationDetails {
  """Represents the violations of `any_merge_request` rules."""
  anyMergeRequest: [PolicyAnyMergeRequestViolation!]!

  """Represents the pipelines used for comparison in the policy evaluation."""
  comparisonPipelines: [PolicyComparisonPipeline!]!

  """Represents the policy errors."""
  errors: [PolicyError!]!

  """Represents the violations of `license_scanning` rules."""
  licenseScanning: [PolicyLicenseScanningViolation!]!

  """Represents the newly detected violations of `scan_finding` rules."""
  newScanFinding: [PolicyScanFindingViolation!]!

  """Information about policies that were violated."""
  policies: [PolicyViolationInfo!]!

  """
  Represents the violations of `scan_finding` rules for previously existing vulnerabilities.
  """
  previousScanFinding: [PolicyScanFindingViolation!]!

  """Total count of violations."""
  violationsCount: Int!
}

enum PolicyViolationErrorType {
  """
  Represents mismatch between the scans of the source and target pipelines.
  """
  SCAN_REMOVED

  """
  Represents error which occurs when pipeline is misconfigured and does not
  include necessary artifacts to evaluate a policy.
  """
  ARTIFACTS_MISSING

  """
  Represents error which occurs when a security scan job did not complete
  successfully (e.g., was canceled or failed), preventing policy evaluation.
  """
  SCAN_NOT_SUCCEEDED

  """Represents unknown error."""
  UNKNOWN
}

"""Represents generic policy violation information."""
type PolicyViolationInfo {
  """Represents if a warn mode policy violation was dismissed."""
  dismissed: Boolean!

  """Represents the enforcement type of the violated policy."""
  enforcementType: PolicyEnforcementType!

  """Represents the name of the violated policy."""
  name: String!

  """Represents the report type."""
  reportType: ApprovalReportType!

  """Represents the violated security policy id."""
  securityPolicyId: ID

  """Represents the status of the violated policy."""
  status: PolicyViolationStatus
}

enum PolicyViolations {
  """Dismissed in Merge request bypass reason."""
  DISMISSED_IN_MR
}

enum PolicyViolationStatus {
  """Represents a failed policy violation."""
  FAILED

  """Represents a running policy violation."""
  RUNNING

  """Represents a policy violation warning."""
  WARNING

  """Represents a skipped policy violation."""
  SKIPPED
}

type PreviewBillableUserChange {
  """Total number of billable users after change."""
  newBillableUserCount: Int

  """Number of seats in subscription."""
  seatsInSubscription: Int

  """ If the group will have an increased overage after change."""
  willIncreaseOverage: Boolean
}

"""
Representation of who is provided access to. For eg: User/Role/MemberRole/Group.
"""
type Principal {
  """Group who is provided access to."""
  group: Group

  """ID of the principal (User, MemberRole, Role, Group)."""
  id: ID!

  """Name of the principal (User, MemberRole, Role, Group)."""
  type: PrincipalType!

  """User who is provided access to."""
  user: UserCore

  """RoleID of the user."""
  userRoleId: String
}

"""
Representation of who is provided access to. For eg: User/Role/MemberRole/Group.
"""
input PrincipalInput {
  """
  ID of the principal. Required unless group_path is provided for Group type.
  """
  id: Int

  """Full path of the group principal. Only used when type is GROUP."""
  groupPath: ID

  """Type of the principal."""
  type: PrincipalType!
}

"""Types of principal that can have secrets permissions"""
enum PrincipalType {
  """user."""
  USER

  """group."""
  GROUP

  """member role."""
  MEMBER_ROLE

  """predefined role."""
  ROLE
}

"""Autogenerated input type of ProcessUserBillablePromotionRequest"""
input ProcessUserBillablePromotionRequestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of user to be promoted."""
  userId: UserID!

  """Status for the member approval request (approved, denied, pending)."""
  status: MemberApprovalStatusType!
}

"""Autogenerated return type of ProcessUserBillablePromotionRequest."""
type ProcessUserBillablePromotionRequestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Status of the user promotion process (success, partial_success, failed).
  """
  result: UserPromotionStatusType
}

type Project implements ProjectInterface & Todoable {
  """Size limit for the repository in bytes."""
  actualRepositorySizeLimit: Float

  """Admin path for editing project. Only available to admins."""
  adminEditPath: String

  """Admin path of the project. Only available to admins."""
  adminShowPath: String

  """Agent configurations defined by the project"""
  agentConfigurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AgentConfigurationConnection

  """
  AI Catalog item of the project. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  aiCatalogItem(
    """Global ID of the catalog item to find."""
    id: AiCatalogItemID!

    """
    Whether to show the item if it has been soft-deleted. Defaults to `false`.
    """
    showSoftDeleted: Boolean = false
  ): AiCatalogItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  AI Catalog item configuration for the given item in the project. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiCatalogItemConsumerForItem(
    """Global ID of the catalog item to return the configuration of."""
    id: AiCatalogItemID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  AI Catalog items of the project. This field can be resolved for only one
  project in any single request. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  aiCatalogItems(
    """Types of items to retrieve."""
    itemTypes: [AiCatalogItemType!]

    """Include only items that are enabled or disabled in the project."""
    enabled: Boolean

    """Include public items from the AI Catalog."""
    allAvailable: Boolean

    """Search items by name and description."""
    search: String

    """Sort order of items."""
    sort: AiCatalogItemsSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogItemConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  AI flow triggers of the project. This field can only be resolved for one
  project per request. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  aiFlowTriggers(
    """Filter AI flow triggers by IDs."""
    ids: [AiFlowTriggerID!] = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiFlowTriggerTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  AI-related metrics. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  aiMetrics(
    """Date range to start from. Default is the beginning of current month."""
    startDate: Date

    """Date range to end at. Default is the end of current month."""
    endDate: Date
  ): AiMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  AI-related metrics with three months of data retention. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  aiMetricsBasic(
    """Date range to start from. Default is the beginning of current month."""
    startDate: Date

    """Date range to end at. Default is the end of current month."""
    endDate: Date
  ): AiMetricsBasic @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """AI-related data. Introduced in GitLab 17.5: **Status**: Experiment."""
  aiUsageData: AiUsageData @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  AI-related user metrics. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  aiUserMetrics(
    """
    Date range to start from. Default is the beginning of current month.
               ClickHouse needs to be enabled when passing this param.
    """
    startDate: Date

    """
    Date range to end at. Default is the end of current month.
               ClickHouse needs to be enabled when passing this param.
    """
    endDate: Date

    """Sort AI user metrics."""
    sort: AiUserMetricsSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiUserMetricsConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """
  X-ray reports of the project. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  aiXrayReports(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiXrayReportConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """A single Alert Management alert of the project."""
  alertManagementAlert(
    """IID of the alert. For example, "1"."""
    iid: String

    """Alerts with the specified statues. For example, `[TRIGGERED]`."""
    statuses: [AlertManagementStatus!]

    """Sort alerts by the criteria."""
    sort: AlertManagementAlertSort

    """Filter query for given domain."""
    domain: AlertManagementDomainFilter! = operations

    """Search query for title, description, service, or monitoring_tool."""
    search: String

    """Username of a user assigned to the issue."""
    assigneeUsername: String
  ): AlertManagementAlert

  """Counts of alerts by status for the project."""
  alertManagementAlertStatusCounts(
    """Search query for title, description, service, or monitoring_tool."""
    search: String

    """Username of a user assigned to the issue."""
    assigneeUsername: String
  ): AlertManagementAlertStatusCountsType

  """Alert Management alerts of the project."""
  alertManagementAlerts(
    """IID of the alert. For example, "1"."""
    iid: String

    """Alerts with the specified statues. For example, `[TRIGGERED]`."""
    statuses: [AlertManagementStatus!]

    """Sort alerts by the criteria."""
    sort: AlertManagementAlertSort

    """Filter query for given domain."""
    domain: AlertManagementDomainFilter! = operations

    """Search query for title, description, service, or monitoring_tool."""
    search: String

    """Username of a user assigned to the issue."""
    assigneeUsername: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementAlertConnection

  """HTTP Integrations which can receive alerts for the project."""
  alertManagementHttpIntegrations(
    """ID of the integration."""
    id: AlertManagementHttpIntegrationID

    """Types of integrations to return. Default is `[HTTP]`."""
    types: [AlertManagementIntegrationType!] = [HTTP]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementHttpIntegrationConnection

  """
  Integrations which can receive alerts for the project. Deprecated in GitLab 18.2: Use `alertManagementHttpIntegrations`.
  """
  alertManagementIntegrations(
    """ID of the integration."""
    id: GlobalID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AlertManagementIntegrationConnection @deprecated(reason: "Use `alertManagementHttpIntegrations`. Deprecated in GitLab 18.2.")

  """Extract alert fields from payload for custom mapping."""
  alertManagementPayloadFields(
    """Sample payload for extracting alert fields for custom mappings."""
    payloadExample: String!
  ): [AlertManagementPayloadAlertField!]

  """
  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

  """Project allows assigning multiple users to a merge request."""
  allowsMultipleMergeRequestAssignees: Boolean!

  """Project allows assigning multiple reviewers to a merge request."""
  allowsMultipleMergeRequestReviewers: Boolean!

  """
  Project analytics aggregation endpoints. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  analytics: Analytics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Status for all analyzers in the project."""
  analyzerStatuses: [AnalyzerProjectStatusType!]

  """API fuzzing configuration for the project. """
  apiFuzzingCiConfiguration: ApiFuzzingCiConfiguration

  """Approval Policies of the project"""
  approvalPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ApprovalPolicyConnection

  """Indicates if the project or any ancestor is archived."""
  archived: Boolean

  """
  ASCP business components in the project. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  ascpComponents(
    """Filter by component title (case-insensitive partial match)."""
    title: String

    """Filter by exact sub-directory path."""
    subDirectory: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AscpComponentConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  ASCP security scans for this project. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  ascpScans(
    """Filter by scan type."""
    scanType: AscpScanType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AscpScanConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Indicates if issues referenced by merge requests and commits within the default branch are closed automatically.
  """
  autocloseReferencedIssues: Boolean

  """Search users for autocompletion"""
  autocompleteUsers(
    """Query to search users by name, username, or public email."""
    search: String
  ): [AutocompletedUser!]

  """List of available deploy keys"""
  availableDeployKeys(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

    """Term by which to search deploy key titles."""
    titleQuery: String
  ): AccessLevelDeployKeyConnection

  """Avatar URL of the project."""
  avatarUrl: String

  """A single board of the project."""
  board(
    """ID of the board."""
    id: BoardID!
  ): Board

  """Boards of the project."""
  boards(
    """Find a board by its ID."""
    id: BoardID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): BoardConnection

  """Branch rules configured for the project."""
  branchRules(
    """Return unpersisted custom branch rules."""
    buildMissing: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """Returns the first _n_ elements from the list."""
    first: Int
  ): BranchRuleConnection

  """Authorized cluster agents for the project through ci_access keyword."""
  ciAccessAuthorizedAgents(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ClusterAgentAuthorizationCiAccessConnection

  """CI/CD settings for the project."""
  ciCdSettings: ProjectCiCdSetting

  """Path of the CI configuration file."""
  ciConfigPathOrDefault: String!

  """
  CI/CD config variable. Introduced in GitLab 15.3: **Status**: Experiment.
  """
  ciConfigVariables(
    """Whether to throw an error if cache is not ready."""
    failOnCacheMiss: Boolean = false

    """Ref."""
    ref: String!
  ): [CiConfigVariable!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """
  Pipeline subscriptions where this project is the upstream project.When this
  project's pipeline completes, a pipeline is triggered in the downstream
  project. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciDownstreamProjectSubscriptions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiProjectSubscriptionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  The CI Job Tokens authorization logs. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenAuthLogs(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobTokenAuthLogConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """The CI Job Tokens scope of access."""
  ciJobTokenScope: CiJobTokenScopeType

  """
  List of CI job token scopes where the project is the source. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciJobTokenScopeAllowlist: CiJobTokenScopeAllowlist @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Inputs to create a pipeline. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  ciPipelineCreationInputs(
    """Whether to throw an error for a cache miss."""
    failOnCacheMiss: Boolean = false

    """Ref where to create the pipeline."""
    ref: String!
  ): [CiInputsSpec!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Get information about an asynchronous pipeline creation request. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  ciPipelineCreationRequest(
    """ID of the pipeline creation request."""
    requestId: String!
  ): CiPipelineCreationRequest @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Pipeline subscriptions for projects subscribed to the project. Deprecated in
  GitLab 17.6: Use `ciDownstreamProjectSubscriptions`.
  """
  ciSubscribedProjects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiSubscriptionsProjectConnection @deprecated(reason: "Use `ciDownstreamProjectSubscriptions`. Deprecated in GitLab 17.6.")

  """
  Pipeline subscriptions for the project. Deprecated in GitLab 17.6: Use `ciUpstreamProjectSubscriptions`.
  """
  ciSubscriptionsProjects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiSubscriptionsProjectConnection @deprecated(reason: "Use `ciUpstreamProjectSubscriptions`. Deprecated in GitLab 17.6.")

  """Find a single CI/CD template by name."""
  ciTemplate(
    """
    Name of the CI/CD template to search for. Template must be formatted as `Name.gitlab-ci.yml`.
    """
    name: String!
  ): CiTemplate

  """
  Pipeline subscriptions where this project is the downstream project.When an
  upstream project's pipeline completes, a pipeline is triggered in the
  downstream project (this project). Introduced in GitLab 17.6: **Status**: Experiment.
  """
  ciUpstreamProjectSubscriptions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiProjectSubscriptionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """List of the project's CI/CD variables."""
  ciVariables(
    """Sort order of results."""
    sort: CiVariableSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiProjectVariableConnection

  """Find a single cluster agent by name."""
  clusterAgent(
    """Returns only cluster agents which have vulnerabilities."""
    hasVulnerabilities: Boolean

    """
    Returns only cluster agents which have an associated remote development
    agent config. Deprecated in GitLab 17.10: Use has_workspaces_agent_config
    filter instead.
    """
    hasRemoteDevelopmentAgentConfig: Boolean

    """
    Returns only cluster agents which have an associated workspaces agent config.
    """
    hasWorkspacesAgentConfig: Boolean

    """
    Returns only cluster agents which have been enabled with the remote development feature.
    """
    hasRemoteDevelopmentEnabled: Boolean

    """Name of the cluster agent."""
    name: String!
  ): ClusterAgent

  """Cluster agents associated with the project."""
  clusterAgents(
    """Returns only cluster agents which have vulnerabilities."""
    hasVulnerabilities: Boolean

    """
    Returns only cluster agents which have an associated remote development
    agent config. Deprecated in GitLab 17.10: Use has_workspaces_agent_config
    filter instead.
    """
    hasRemoteDevelopmentAgentConfig: Boolean

    """
    Returns only cluster agents which have an associated workspaces agent config.
    """
    hasWorkspacesAgentConfig: Boolean

    """
    Returns only cluster agents which have been enabled with the remote development feature.
    """
    hasRemoteDevelopmentEnabled: 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
  ): ClusterAgentConnection

  """Code coverage summary associated with the project."""
  codeCoverageSummary: CodeCoverageSummary

  """
  Get tag names containing a given commit. Introduced in GitLab 16.0: **Status**: Experiment.
  """
  commitReferences(
    """
    Project commit SHA identifier. For example, `287774414568010855642518513f085491644061`.
    """
    commitSha: String!
  ): CommitReferences @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.0.")

  """
  Compliance control statuses for a project. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  complianceControlStatus(
    """
    Filters applied when retrieving compliance control statuses for the project.
    """
    filters: ProjectComplianceControlStatusInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectComplianceControlStatusTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """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

    """Sort compliance frameworks by the criteria."""
    sort: ComplianceFrameworkSort
  ): ComplianceFrameworkConnection

  """
  Compliance requirement statuses for a project. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  complianceRequirementStatuses(
    """Filters applied when retrieving compliance requirement statuses."""
    filters: ProjectRequirementComplianceStatusInput = {}

    """Field used to sort compliance requirement statuses."""
    orderBy: ProjectComplianceRequirementStatusOrderBy

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectComplianceRequirementStatusConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """Compliance standards adherence for the project."""
  complianceStandardsAdherence(
    """Filters applied when retrieving compliance standards adherence."""
    filters: ComplianceStandardsProjectAdherenceInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceStandardsAdherenceConnection

  """Component(s) used by the project."""
  componentUsages(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiCatalogResourceComponentUsageConnection

  """
  Find software dependency versions by component name. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  componentVersions(
    """Name of the SBoM component."""
    componentName: String!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComponentVersionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Find software dependencies by name. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  components(
    """Entire name or part of the name."""
    name: String
  ): [Component!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Container expiration policy of the project. Deprecated in GitLab 17.5: Use `container_tags_expiration_policy`.
  """
  containerExpirationPolicy: ContainerExpirationPolicy @deprecated(reason: "Use `container_tags_expiration_policy`. Deprecated in GitLab 17.5.")

  """Container protection rules for the project."""
  containerProtectionRepositoryRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerProtectionRepositoryRuleConnection

  """Container repository tag protection rules for the project."""
  containerProtectionTagRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerProtectionTagRuleConnection

  """Indicates if Container registry is enabled for the current user"""
  containerRegistryEnabled: Boolean

  """Container repositories of the project."""
  containerRepositories(
    """Filter the container repositories by their name."""
    name: String

    """Sort container repositories by the criteria."""
    sort: ContainerRepositorySort = created_desc

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ContainerRepositoryConnection

  """Number of container repositories in the project."""
  containerRepositoriesCount: Int!

  """
  Indicates whether container scanning for registry is enabled or not for the project. Returns `null` if unauthorized.
  """
  containerScanningForRegistryEnabled: Boolean

  """Container tags expiration policy of the project."""
  containerTagsExpirationPolicy: ContainerTagsExpirationPolicy

  """Find corpuses of the project."""
  corpuses(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CoverageFuzzingCorpusConnection

  """Timestamp of the project creation."""
  createdAt: Time

  """Custom attributes of the project. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """
  Visualizations of the project or associated configuration project. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  customizableDashboardVisualizations(
    """Slug of the visualization to return."""
    slug: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableDashboardVisualizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """
  Customizable dashboards for the project. Introduced in GitLab 15.6: **Status**: Experiment.
  """
  customizableDashboards(
    """Find by dashboard slug."""
    slug: String

    """Find by dashboard type."""
    category: CustomizableDashboardCategory = ANALYTICS

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableDashboardConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")

  """DAST Profile associated with the project."""
  dastProfile(
    """Filter DAST Profiles by whether or not they have a schedule."""
    hasDastProfileSchedule: Boolean

    """ID of the DAST Profile."""
    id: DastProfileID!
  ): DastProfile

  """DAST Profiles associated with the project."""
  dastProfiles(
    """Filter DAST Profiles by whether or not they have a schedule."""
    hasDastProfileSchedule: 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
  ): DastProfileConnection

  """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

  """DAST Site Validations associated with the project."""
  dastSiteValidations(
    """Normalized URL of the target to be scanned."""
    normalizedTargetUrls: [String!]

    """Status of the site validation."""
    status: DastSiteValidationStatusEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DastSiteValidationConnection

  """
  Data transfer data point for a specific period. This is mocked data under a development feature flag.
  """
  dataTransfer(
    """
    Retain egress data for one year. Data for the current month will increase dynamically as egress occurs.
    """
    from: Date

    """End date for the data."""
    to: Date
  ): ProjectDataTransfer

  """Software dependencies used by the project."""
  dependencies(
    """Sort dependencies by given criteria."""
    sort: DependencySort

    """Filter dependencies by package managers."""
    packageManagers: [PackageManager!]

    """Filter dependencies by component names."""
    componentNames: [String!]

    """Filter dependencies by component IDs."""
    componentIds: [SbomComponentID!]

    """Filter dependencies by source type."""
    sourceTypes: [SbomSourceType!] = [DEPENDENCY_SCANNING, CONTAINER_SCANNING, NIL_SOURCE]

    """Filter dependencies by component versions."""
    componentVersions: [String!]

    """
    Filter dependencies to exclude the specified component versions. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    notComponentVersions: [String!]

    """
    Filter by security policy violations. Introduced in GitLab 18.7: **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter dependencies by tracked ref IDs. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter dependencies by tracked ref scope. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter dependencies by malware status. Work in progress and gated with
    feature flag `malicious_packages_dependency_list_filtering`. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    malware: 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
  ): DependencyConnection

  """
  Ancestor dependency paths for a dependency used by the project. \
            Returns `null` if `dependency_graph_graphql` feature flag is
  disabled. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  dependencyPaths(
    """Dependency path for occurrence."""
    occurrence: SbomOccurrenceID!

    """Fetch paths after the cursor."""
    after: String

    """Fetch paths before the cursor."""
    before: String

    """Number of paths to fetch."""
    limit: Int
  ): DependencyPathPage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Packages Dependency Proxy settings for the project. Requires the packages and
  dependency proxy to be enabled in the config. Requires the packages feature to
  be enabled at the project level. 
  """
  dependencyProxyPackagesSetting: DependencyProxyPackagesSetting

  """Details of the deployment of the project."""
  deployment(
    """Project-level internal ID of the Deployment."""
    iid: ID!
  ): Deployment

  """Short description of the project."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Detailed import status of the project."""
  detailedImportStatus: DetailedImportStatus

  """Project's DORA metrics."""
  dora: Dora

  """
  User access to Duo agentic Chat feature. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  duoAgenticChatAvailable: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Settings for excluding files from Duo context. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  duoContextExclusionSettings: DuoContextExclusionSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Indicates whether GitLab Duo features are enabled for the project. Introduced in GitLab 16.9: **Status**: Experiment.
  """
  duoFeaturesEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  Checkpoints for GitLab Duo Agent Platform flows, for all users (remote flows only).
  """
  duoWorkflowEvents(
    """Array of request IDs to fetch."""
    workflowId: AiDuoWorkflowsWorkflowID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowEventConnection

  """
  Duo Agent Platform session artifacts for the project. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  duoWorkflowSessionArtifacts(
    """Filter by workflow definition."""
    workflowDefinition: String

    """Return sessions created after the timestamp."""
    workflowCreatedAfter: Time

    """Return sessions created before the timestamp."""
    workflowCreatedBefore: Time

    """Negated filter conditions."""
    not: DuoWorkflowSessionArtifactNegatedFilterInput

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowSessionArtifactConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Indicates whether Duo Agent Platform is enabled for the project. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  duoWorkflowStatusCheck: DuoWorkflowEnablement @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """
  GitLab Duo Agent Platform flows for a project, for all users (remote flows only).
  """
  duoWorkflowWorkflows(
    """Full path of the project that contains the flows."""
    projectPath: ID

    """
    Type of flow to filter by (for example, software_development or foundational_chat_agents).
    """
    type: String

    """
    Types of flows to exclude (for example, ["software_development", "chat"]).
    """
    excludeTypes: [String!]

    """Sort flows by the criteria."""
    sort: DuoWorkflowsWorkflowSort = created_desc

    """Environment, for example, IDE or web."""
    environment: WorkflowEnvironment

    """Flow ID to filter by."""
    workflowId: AiDuoWorkflowsWorkflowID

    """Filter flows by a list of IDs."""
    ids: [AiDuoWorkflowsWorkflowID!]

    """Flow title or goal to search for."""
    search: String

    """Status group to filter flow sessions by."""
    statusGroup: DuoWorkflowStatusGroup

    """Filters flows updated after a given date."""
    updatedAfter: ISO8601DateTime

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowConnection

  """Path for editing project."""
  editPath: 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!]

    """Search query for environment type."""
    type: String
  ): Environment

  """
  Environments of the project. This field can only be resolved for one project in any single request.
  """
  environments(
    """Name of the environment."""
    name: String

    """Search query for environment name."""
    search: String

    """States of environments that should be included in result."""
    states: [String!]

    """Search query for environment type."""
    type: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EnvironmentConnection

  """
  Path to the project catalog resource. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  exploreCatalogPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Flow metrics for value stream analytics. Introduced in GitLab 15.10: **Status**: Experiment.
  """
  flowMetrics: ProjectValueStreamAnalyticsFlowMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """
  Details of the fork project compared to its upstream project. Introduced in GitLab 15.7: **Status**: Experiment.
  """
  forkDetails(
    """Ref of the fork. Default value is HEAD."""
    ref: String
  ): ForkDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.")

  """Namespaces in which the current user can fork the project into."""
  forkTargets(
    """Search query for path or name."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Project the project was forked from."""
  forkedFrom: Project

  """Access level required for forking access."""
  forkingAccessLevel: ProjectFeatureAccess

  """Number of times the project has been forked."""
  forksCount: Int!

  """Full path of the project."""
  fullPath: ID!

  """Preview Billable User Changes"""
  gitlabSubscriptionsPreviewBillableUserChange(
    """Group ID to add."""
    addGroupId: Int

    """User emails to add."""
    addUserEmails: [String!]

    """User IDs to add."""
    addUserIds: [Int!]

    """Custom role assigned to the users."""
    memberRoleId: Int

    """Role of users being added to group."""
    role: GitlabSubscriptionsUserRole!
  ): PreviewBillableUserChange

  """
  Google Artifact Registry repository. Returns `null` if the GitLab instance is
  not a SaaS instance. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  googleCloudArtifactRegistryRepository: GoogleCloudArtifactRegistryRepository @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """
  Grafana integration details for the project. Deprecated in GitLab 18.3: Feature was removed in 16.0. Always returns null.
  """
  grafanaIntegration: GrafanaIntegration @deprecated(reason: "Feature was removed in 16.0. Always returns null. Deprecated in GitLab 18.3.")

  """Group of the project."""
  group: Group

  """Indicates whether Jira issue creation from vulnerabilities is enabled."""
  hasJiraVulnerabilityIssueCreationEnabled: Boolean!

  """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

  """Incident Management escalation policies of the project."""
  incidentManagementEscalationPolicies(
    """Fuzzy search by escalation policy name."""
    name: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EscalationPolicyTypeConnection

  """Incident Management escalation policy of the project."""
  incidentManagementEscalationPolicy(
    """Fuzzy search by escalation policy name."""
    name: String

    """ID of the escalation policy."""
    id: IncidentManagementEscalationPolicyID!
  ): EscalationPolicyType

  """Incident Management On-call schedules of the project."""
  incidentManagementOncallSchedules(
    """IIDs of on-call schedules."""
    iids: [ID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IncidentManagementOncallScheduleConnection

  """Incident Management Timeline event associated with the incident."""
  incidentManagementTimelineEvent(
    """ID of the incident."""
    incidentId: IssueID!

    """ID of the timeline event."""
    id: IncidentManagementTimelineEventID!
  ): TimelineEventType

  """Timeline event tags for the project."""
  incidentManagementTimelineEventTags: [TimelineEventTagType!]

  """Incident Management Timeline events associated with the incident."""
  incidentManagementTimelineEvents(
    """ID of the incident."""
    incidentId: IssueID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelineEventTypeConnection

  """
  List of CI/CD variables the project inherited from its parent group and ancestors.
  """
  inheritedCiVariables(
    """Sort variables by the criteria."""
    sort: CiGroupVariablesSort = CREATED_DESC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): InheritedCiVariableConnection

  """
  Indicates if a project is a catalog resource. Introduced in GitLab 15.11: **Status**: Experiment.
  """
  isCatalogResource: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")

  """Project is forked."""
  isForked: Boolean!

  """
  Indicates if a project's catalog resource is published. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isPublished: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates if the project is archived. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isSelfArchived: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates if project deletion is in progress. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  isSelfDeletionInProgress: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Indicates if project deletion is scheduled. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  isSelfDeletionScheduled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """A single issue of the project."""
  issue(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """
    Username of a user assigned to the issue. Deprecated in GitLab 13.11: Use `assigneeUsernames`.
    """
    assigneeUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author of the issue."""
    authorUsername: String

    """Issues closed after the date."""
    closedAfter: Time

    """Issues closed before the date."""
    closedBefore: Time

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Issues created after the date."""
    createdAfter: Time

    """Issues created before the date."""
    createdBefore: Time

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Return issues due on or after the given time."""
    dueAfter: Time

    """Return issues due on or before the given time."""
    dueBefore: Time

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to the issue."""
    labelName: [String]

    """Milestone applied to the issue."""
    milestoneTitle: [String]

    """Filter issues by milestone ID wildcard."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
    """
    myReactionEmoji: String

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedIssueFilterInput

    """Issues the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """Issues updated after the date."""
    updatedAfter: Time

    """Issues updated before the date."""
    updatedBefore: Time

    """Filter issues by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Filter by epic ID wildcard. Incompatible with epicId."""
    epicWildcardId: EpicWildcardId

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration title."""
    iterationTitle: String

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs."""
    iterationCadenceId: [IterationsCadenceID!]

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """Sort issues by the criteria."""
    sort: IssueSort = created_desc

    """Current state of the issue."""
    state: IssuableState

    """
    Health status of the issue. Deprecated in GitLab 15.4: Use `healthStatusFilter`.
    """
    healthStatus: HealthStatus

    """Release tag associated with the issue's milestone."""
    releaseTag: [String!]

    """Filter issues by release tag ID wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId
  ): Issue

  """Counts of issues by status for the project."""
  issueStatusCounts(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """
    Username of a user assigned to the issue. Deprecated in GitLab 13.11: Use `assigneeUsernames`.
    """
    assigneeUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author of the issue."""
    authorUsername: String

    """Issues closed after the date."""
    closedAfter: Time

    """Issues closed before the date."""
    closedBefore: Time

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Issues created after the date."""
    createdAfter: Time

    """Issues created before the date."""
    createdBefore: Time

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Return issues due on or after the given time."""
    dueAfter: Time

    """Return issues due on or before the given time."""
    dueBefore: Time

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to the issue."""
    labelName: [String]

    """Milestone applied to the issue."""
    milestoneTitle: [String]

    """Filter issues by milestone ID wildcard."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
    """
    myReactionEmoji: String

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedIssueFilterInput

    """Issues the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """Issues updated after the date."""
    updatedAfter: Time

    """Issues updated before the date."""
    updatedBefore: Time

    """Filter issues by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Filter by epic ID wildcard. Incompatible with epicId."""
    epicWildcardId: EpicWildcardId

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration title."""
    iterationTitle: String

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs."""
    iterationCadenceId: [IterationsCadenceID!]

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """Release tag associated with the issue's milestone."""
    releaseTag: [String!]

    """Filter issues by release tag ID wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId
  ): IssueStatusCountsType

  """Issues of the project."""
  issues(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """
    Username of a user assigned to the issue. Deprecated in GitLab 13.11: Use `assigneeUsernames`.
    """
    assigneeUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author of the issue."""
    authorUsername: String

    """Issues closed after the date."""
    closedAfter: Time

    """Issues closed before the date."""
    closedBefore: Time

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Issues created after the date."""
    createdAfter: Time

    """Issues created before the date."""
    createdBefore: Time

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Return issues due on or after the given time."""
    dueAfter: Time

    """Return issues due on or before the given time."""
    dueBefore: Time

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to the issue."""
    labelName: [String]

    """Milestone applied to the issue."""
    milestoneTitle: [String]

    """Filter issues by milestone ID wildcard."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
    """
    myReactionEmoji: String

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedIssueFilterInput

    """Issues the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """Issues updated after the date."""
    updatedAfter: Time

    """Issues updated before the date."""
    updatedBefore: Time

    """Filter issues by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Filter by epic ID wildcard. Incompatible with epicId."""
    epicWildcardId: EpicWildcardId

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration title."""
    iterationTitle: String

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs."""
    iterationCadenceId: [IterationsCadenceID!]

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """Sort issues by the criteria."""
    sort: IssueSort = created_desc

    """Current state of the issue."""
    state: IssuableState

    """
    Health status of the issue. Deprecated in GitLab 15.4: Use `healthStatusFilter`.
    """
    healthStatus: HealthStatus

    """Release tag associated with the issue's milestone."""
    releaseTag: [String!]

    """Filter issues by release tag ID wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssueConnection

  """Access level required for issues access."""
  issuesAccessLevel: ProjectFeatureAccess

  """Indicates if Issues are enabled for the current user"""
  issuesEnabled: Boolean

  """Find iteration cadences."""
  iterationCadences(
    """Global ID of the iteration cadence to look up."""
    id: IterationsCadenceID

    """Fuzzy search by title."""
    title: String

    """Duration in weeks of the iterations within the cadence."""
    durationInWeeks: Int

    """
    Whether the iteration cadence should automatically generate upcoming iterations.
    """
    automatic: Boolean

    """Whether the iteration cadence is active."""
    active: Boolean

    """Whether to include ancestor groups to search iterations cadences in."""
    includeAncestorGroups: 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
  ): IterationCadenceConnection

  """Find iterations."""
  iterations(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Filter iterations by state."""
    state: IterationState

    """
    Fuzzy search by title. Deprecated in GitLab 15.4: The argument will be
    removed in 15.4. Please use `search` and `in` fields instead.
    """
    title: String

    """
    Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty.
    """
    search: String

    """
    Fields in which the fuzzy-search should be performed with the query given in
    the argument `search`. Defaults to `[title]`.
    """
    in: [IterationSearchableField!]

    """Global ID of the Iteration to look up."""
    id: ID

    """Internal ID of the Iteration to look up."""
    iid: ID

    """Whether to include ancestor iterations. Defaults to true."""
    includeAncestors: Boolean

    """Whether to include descendant iterations."""
    includeDescendants: Boolean

    """Global iteration cadence IDs by which to look up the iterations."""
    iterationCadenceIds: [IterationsCadenceID!]

    """
    List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used.
    """
    sort: IterationSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): 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

  """One job belonging to the project, selected by ID."""
  job(
    """ID of the job."""
    id: JobID!
  ): CiJob

  """
  CI/CD job analytics for the project. Returns an error if ClickHouse is not
  configured. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  jobAnalytics(
    """Search by name of the pipeline jobs. Supports partial matches."""
    nameSearch: String

    """Sort order for the results."""
    sort: CiJobAnalyticsSort

    """Source of the pipeline."""
    source: CiPipelineSources

    """Branch that triggered the pipeline."""
    ref: String

    """
    Start of the requested time (in UTC). Defaults to the pipelines started in
    the past week. Cannot be earlier than 180 days ago.
    """
    fromTime: Time

    """
    End of the requested time (in UTC). Defaults to the pipelines started before the current date.
    """
    toTime: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobAnalyticsConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Jobs of a project. This field can only be resolved for one project in any single request.
  """
  jobs(
    """Filter jobs by status."""
    statuses: [CiJobStatus!]

    """Filter by artifacts presence."""
    withArtifacts: Boolean

    """
    Filter jobs by name. Introduced in GitLab 17.11: **Status**: Experiment.
    """
    name: String

    """
    Filter jobs by source. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    sources: [CiJobSource!]

    """Filter jobs by kind."""
    kind: CiJobKind

    """Filter jobs by the internal pipeline ID (iid)."""
    pipelineIid: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Indicates if CI/CD pipeline jobs are enabled for the current user."""
  jobsEnabled: Boolean

  """Label available on the project."""
  label(
    """Title of the label."""
    title: String!
  ): Label

  """Labels available on this project."""
  labels(
    """
    Exact match on title. Cannot be used with `searchTerm`. `searchIn` will be ignored if `title` argument is provided.
    """
    title: String

    """Search term to find labels with."""
    searchTerm: String

    """Specify which fields to search in. Ignored if using `title`."""
    searchIn: [LabelSearchFieldList!]! = [TITLE, DESCRIPTION]

    """Include labels from ancestor groups."""
    includeAncestorGroups: Boolean = false

    """Filters archived labels. Defaults to false."""
    archived: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Programming languages used in the project."""
  languages: [RepositoryLanguage!]

  """Timestamp of the project last activity."""
  lastActivityAt: Time

  """Indicates if the project has Large File Storage (LFS) enabled."""
  lfsEnabled: Boolean

  """
  Check whether a licensed feature is available. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  licensedFeatureAvailability(
    """Feature to check availability for (for example, SECURITY_DASHBOARD)."""
    feature: LicensedFeature!
  ): LicensedFeatureAvailability! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Indicates if the project or any ancestor is scheduled for deletion. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  markedForDeletion: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Date when project was scheduled to be deleted. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  markedForDeletionOn: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Maximum access level of the current user in the project."""
  maxAccessLevel: AccessLevel!

  """
  Member roles available for the group. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  memberRoles(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """Template used to create merge commit message in merge requests."""
  mergeCommitTemplate: String

  """A single merge request of the project."""
  mergeRequest(
    """IID of the merge request, for example `1`."""
    iid: String!
  ): MergeRequest

  """Regex used to validate the title of merge requests."""
  mergeRequestTitleRegex: String

  """Description of the regex used to validate the title of merge requests."""
  mergeRequestTitleRegexDescription: String

  """
  Compliance violations reported on merge requests merged within the project.
  """
  mergeRequestViolations(
    """List compliance violations by sort order."""
    sort: ComplianceViolationSort = SEVERITY_LEVEL_DESC

    """Filters applied when retrieving compliance violations."""
    filters: ComplianceViolationProjectInput = {}

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ComplianceViolationConnection

  """Merge requests of the project."""
  mergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Access level required for merge requests access."""
  mergeRequestsAccessLevel: ProjectFeatureAccess

  """Indicates that committers of the given merge request cannot approve."""
  mergeRequestsDisableCommittersApproval: Boolean!

  """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

  """
  Merge trains available to the project. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  mergeTrains(
    """Filter merge trains by a specific status."""
    status: MergeTrainStatus

    """Filter merge trains by a list of target branches."""
    targetBranches: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeTrainConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """Milestones of the project."""
  milestones(
    """List items overlapping the given timeframe."""
    timeframe: Timeframe

    """Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`."""
    ids: [ID!]

    """Filter milestones by state."""
    state: MilestoneStateEnum

    """Title of the milestone."""
    title: String

    """Search string for the title."""
    searchTitle: String

    """Date the milestone contains."""
    containingDate: Time

    """Sort milestones by the criteria."""
    sort: MilestoneSort = DUE_DATE_ASC

    """
    Also return milestones in the project's parent group and its ancestors.
    """
    includeAncestors: 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
  ): MilestoneConnection

  """Find machine learning experiments"""
  mlExperiments(
    """Search for names that include the string."""
    name: String

    """Ordering column. Default is created_at."""
    orderBy: MlModelsOrderBy

    """Ordering direction. Default is desc."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlExperimentConnection

  """
  Finds machine learning models Introduced in GitLab 16.8: **Status**: Experiment.
  """
  mlModels(
    """Search for names that include the string."""
    name: String

    """Ordering column. Default is created_at."""
    orderBy: MlModelsOrderBy

    """Ordering column. Default is desc."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MlModelConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")

  """Name of the project without the namespace."""
  name: String!

  """Name of the project including the namespace."""
  nameWithNamespace: String!

  """Namespace of the project."""
  namespace: Namespace

  """
  Environments for this project with nested folders, can only be resolved for one project in any single request
  """
  nestedEnvironments(
    """Name of the environment."""
    name: String

    """Search query for environment name."""
    search: String

    """States of environments that should be included in result."""
    states: [String!]

    """Search query for environment type."""
    type: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NestedEnvironmentConnection

  """
  Logs attached to the project. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  observabilityLogsLinks(
    """Service name of the log."""
    serviceName: String

    """Severity number of the log."""
    severityNumber: Int

    """Log timestamp of the log."""
    timestamp: ISO8601DateTime

    """Trace id of the log."""
    traceIdentifier: String

    """Fingerprint of the log."""
    fingerprint: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ObservabilityLogConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Metrics attached to the project. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  observabilityMetricsLinks(
    """Name of the metric."""
    name: String

    """Type of the metric."""
    type: OpenTelemetryMetricType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ObservabilityMetricConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Traces attached to the project. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  observabilityTracesLinks(
    """Identifier of the trace."""
    traceIdentifier: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ObservabilityTraceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Indicates if merge requests of the project can only be merged when all the discussions are resolved.
  """
  onlyAllowMergeIfAllDiscussionsAreResolved: Boolean

  """
  Indicates that merges of merge requests should be blocked unless all status checks have passed.
  """
  onlyAllowMergeIfAllStatusChecksPassed: 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

  """Number of open merge requests for the project."""
  openMergeRequestsCount: Int

  """
  Path for editing project at the organization level. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  organizationEditPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """Packages of the project."""
  packages(
    """Sort packages by the criteria."""
    sort: PackageSort = CREATED_DESC

    """Search a package by name."""
    packageName: String = null

    """Filter a package by type."""
    packageType: PackageTypeEnum = null

    """
    Filter a package by version. If used in combination with `include_versionless`,
              then no versionless packages are returned.
    """
    packageVersion: String = null

    """Filter a package by status."""
    status: PackageStatus = null

    """Include versionless packages."""
    includeVersionless: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Packages cleanup policy for the project."""
  packagesCleanupPolicy: PackagesCleanupPolicy

  """
  Packages protection rules for the project. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  packagesProtectionRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackagesProtectionRuleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """List of the project's Pages Deployments."""
  pagesDeployments(
    """Filter by active or inactive state."""
    active: Boolean

    """Sort results."""
    sort: Sort

    """
    Filter deployments that are
    versioned or unversioned.
    """
    versioned: 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
  ): PagesDeploymentConnection

  """Project's Pages site redirects unsecured connections to HTTPS."""
  pagesForceHttps: Boolean!

  """Project's Pages site uses a unique subdomain."""
  pagesUseUniqueDomain: Boolean!

  """Path of the project."""
  path: String!

  """The project's path locks."""
  pathLocks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PathLockConnection

  """Pending member promotions of the project."""
  pendingMemberApprovals(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberApprovalConnection

  """
  For projects pending deletion, returns the project's scheduled deletion date.
  For projects not pending deletion, returns a theoretical date based on current
  settings if marked for deletion today. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  permanentDeletionDate: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Pipeline of the project. If no arguments are provided, returns the latest
  pipeline for the head commit on the default branch
  """
  pipeline(
    """
    Global ID of the Pipeline. For example, "gid://gitlab/Ci::Pipeline/314".
    """
    id: CiPipelineID

    """IID of the Pipeline. For example, "1"."""
    iid: ID

    """
    SHA of the Pipeline. For example, "dyd0f15ay83993f5ab66k927w28673882x99100b".
    """
    sha: String
  ): Pipeline

  """Pipeline analytics."""
  pipelineAnalytics(
    """Source of the pipeline."""
    source: CiPipelineSources

    """Branch that triggered the pipeline."""
    ref: String

    """
    Start of the requested time (in UTC). Defaults to the pipelines started in the past week.
    """
    fromTime: Time

    """
    End of the requested time (in UTC). Defaults to the pipelines started before the current date.
    """
    toTime: Time

    """
    Full paths of subgroups to filter by. Only applies when querying pipeline
    analytics for a group (maximum is 10). Introduced in GitLab 18.11:
    **Status**: Experiment.
    """
    subgroupFullPaths: [String!]
  ): PipelineAnalytics

  """Pipeline counts of the project."""
  pipelineCounts(
    """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 source."""
    source: String
  ): PipelineCounts

  """Pipeline Execution Policies of the project."""
  pipelineExecutionPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionPolicyConnection

  """Pipeline Execution Schedule Policies of the namespace."""
  pipelineExecutionSchedulePolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineExecutionSchedulePolicyConnection

  """Counts of pipeline schedules by status."""
  pipelineScheduleStatusCounts: PipelineScheduleStatusCount

  """
  Pipeline schedules of the project. This field can only be resolved for one project per request.
  """
  pipelineSchedules(
    """Filter pipeline schedules by active status."""
    status: PipelineScheduleStatus

    """Filter pipeline schedules by IDs."""
    ids: [ID!] = null

    """List pipeline schedules by sort order. Default is `id_desc`."""
    sort: PipelineScheduleSort = ID_DESC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineScheduleConnection

  """
  List of pipeline trigger tokens. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  pipelineTriggers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineTriggerConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """Pipelines of the project."""
  pipelines(
    """Filter pipelines by their status."""
    status: PipelineStatusEnum

    """Filter pipelines by scope."""
    scope: PipelineScopeEnum

    """Filter pipelines by the ref they are run for."""
    ref: String

    """Type of ref."""
    refType: RefType

    """Filter pipelines by the sha of the commit they are run for."""
    sha: String

    """Filter pipelines by their source."""
    source: String

    """Filter pipelines by their Global IDs. Maximum 20 IDs per request."""
    ids: [ID!]

    """Pipelines updated after the date."""
    updatedAfter: Time

    """Pipelines updated before the date."""
    updatedBefore: Time

    """Filter pipelines by the user that triggered the pipeline."""
    username: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PipelineConnection

  """Indicates whether secret push protection is on or not for the project."""
  preReceiveSecretDetectionEnabled: Boolean

  """Indicates if an associated issue from Jira is required."""
  preventMergeWithoutJiraIssueEnabled: Boolean!

  """
  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(
    """Search query."""
    search: String

    """sort query."""
    sort: MemberSort

    """Filter members by the given member relations."""
    relations: [ProjectMemberRelation!] = [DIRECT, INHERITED]

    """Filter members by the given access levels."""
    accessLevels: [AccessLevelEnum!]

    """List of project members IDs."""
    ids: [ID!]

    """
    Filter by user type. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    userTypes: [UserType!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberInterfaceConnection

  """
  Plan limits for the current project. Introduced in GitLab 16.9: **Status**: Experiment.
  """
  projectPlanLimits: ProjectPlanLimits @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  List of unprotected branches, ignoring any wildcard branch rules. Introduced in GitLab 16.9: **Status**: Experiment.
  """
  protectableBranches: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """
  Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts.
  """
  publicJobs: Boolean

  """Project's push rules settings."""
  pushRules: PushRules

  """List of recently visited boards of the project. Maximum size is 4."""
  recentIssueBoards(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): BoardConnection

  """A single release of the project."""
  release(
    """Name of the tag associated to the release."""
    tagName: String!
  ): Release

  """Releases of the project."""
  releases(
    """Sort releases by given criteria."""
    sort: ReleaseSort = RELEASED_AT_DESC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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(
    """List requirements by sort order."""
    sort: Sort

    """Filter requirements by state."""
    state: RequirementState

    """Search query for requirement title."""
    search: String

    """Filter requirements by author username."""
    authorUsername: [String!]

    """
    IID of the requirement, for example, "1". Deprecated in GitLab 15.8: Use work_item_iid instead.
    """
    iid: ID

    """
    List of IIDs of requirements, for example, `[1, 2]`. Deprecated in GitLab 15.8: Use work_item_iids instead.
    """
    iids: [ID!]

    """IID of the requirement work item, for example, "1"."""
    workItemIid: ID

    """List of IIDs of requirement work items, for example, `[1, 2]`."""
    workItemIids: [ID!]

    """State of latest requirement test report."""
    lastTestReportState: RequirementStatusFilter
  ): Requirement

  """Number of requirements for the project by their state."""
  requirementStatesCount: RequirementStatesCount

  """Find requirements."""
  requirements(
    """List requirements by sort order."""
    sort: Sort

    """Filter requirements by state."""
    state: RequirementState

    """Search query for requirement title."""
    search: String

    """Filter requirements by author username."""
    authorUsername: [String!]

    """
    IID of the requirement, for example, "1". Deprecated in GitLab 15.8: Use work_item_iid instead.
    """
    iid: ID

    """
    List of IIDs of requirements, for example, `[1, 2]`. Deprecated in GitLab 15.8: Use work_item_iids instead.
    """
    iids: [ID!]

    """IID of the requirement work item, for example, "1"."""
    workItemIid: ID

    """List of IIDs of requirement work items, for example, `[1, 2]`."""
    workItemIids: [ID!]

    """State of latest requirement test report."""
    lastTestReportState: RequirementStatusFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): RequirementConnection

  """Top-level group of the project."""
  rootGroup: Group

  """
  Information used for provisioning the runner on a cloud provider. Returns
  `null` if the GitLab instance is not a SaaS instance. Introduced in GitLab
  16.9: **Status**: Experiment.
  """
  runnerCloudProvisioning(
    """Identifier of the cloud provider."""
    provider: CiRunnerCloudProvider!

    """Identifier of the cloud project."""
    cloudProjectId: GoogleCloudProject!
  ): CiRunnerCloudProvisioning @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.")

  """Find runners visible to the current user."""
  runners(
    """
    Filter runners by `active` (true) or `paused` (false) status. Deprecated in GitLab 14.8: This was renamed.
    """
    active: Boolean

    """Filter runners by `paused` (true) or `active` (false) status."""
    paused: Boolean

    """Filter runners by status."""
    status: CiRunnerStatus

    """Filter runners by type."""
    type: CiRunnerType

    """Filter by tags associated with the runner (comma-separated or array)."""
    tagList: [String!]

    """Filter by full token or partial text in description field."""
    search: String

    """Sort order of results."""
    sort: CiRunnerSort

    """Filter by upgrade status."""
    upgradeStatus: CiRunnerUpgradeStatus

    """Filter runners by creator ID."""
    creatorId: UserID

    """Filter runners by creator username."""
    creatorUsername: String

    """
    Filter runners by version. Runners that contain runner managers with the
    version at the start of the search term are returned. For example, the
    search term '14.' returns runner managers with versions '14.11.1' and '14.2.3'.
    """
    versionPrefix: String

    """
    Filter runners by owning project or group. Introduced in GitLab 17.8: **Status**: Experiment.
    """
    ownerFullPath: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerConnection

  """SAST CI configuration for the project."""
  sastCiConfiguration: SastCiConfiguration

  """Saved replies available to the project."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectSavedReplyConnection

  """Saved reply in the project."""
  savedReply(
    """Global ID of a saved reply."""
    id: ProjectsSavedReplyID!
  ): ProjectSavedReply

  """Scan Execution Policies of the project"""
  scanExecutionPolicies(
    """
    Filters policies by the action scan type. Only these scan types are
    supported: `dast`, `secret_detection`, `cluster_image_scanning`,
    `container_scanning`, `sast`, `sast_iac`, `dependency_scanning`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanExecutionPolicyConnection

  """
  Scan profile statuses for the project. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  scanProfileStatuses: [ScanProfileProjectStatus!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Scan Result Policies of the project Deprecated in GitLab 16.9: Use `approvalPolicies`.
  """
  scanResultPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanResultPolicyConnection @deprecated(reason: "Use `approvalPolicies`. Deprecated in GitLab 16.9.")

  """Indicates whether secret push protection is on or not for the project."""
  secretPushProtectionEnabled: Boolean

  """
  Security attributes linked to the project. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  securityAttributes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityAttributeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Path to project's security configuration."""
  securityConfigurationPath: String

  """Path to project's security dashboard."""
  securityDashboardPath: String

  """
  A single security exclusion of a project. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  securityExclusion(
    """Filter entries by scanner."""
    scanner: ExclusionScannerEnum

    """Filter entries by exclusion type."""
    type: ExclusionTypeEnum

    """Filter entries by active status."""
    active: Boolean

    """ID of the project security exclusion."""
    id: SecurityProjectSecurityExclusionID!
  ): ProjectSecurityExclusion @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Security exclusions of the project. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  securityExclusions(
    """Filter entries by scanner."""
    scanner: ExclusionScannerEnum

    """Filter entries by exclusion type."""
    type: ExclusionTypeEnum

    """Filter entries by active status."""
    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
  ): ProjectSecurityExclusionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Security metrics.This feature is currently under development and not yet
  available for general use. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  securityMetrics(
    """
    Filter by project IDs in a group. This argument is ignored when we are querying for a project.
    """
    projectId: [ID!]

    """Filter by report types."""
    reportType: [VulnerabilityReportType!]

    """
    Filter by security attributes. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    securityAttributesFilters: [AttributeFilterInput!]

    """
    Filter by tracked ref IDs. This argument is ignored when querying for a
    group. To use this argument, you must have advanced search configured,
    advanced vulnerability management set up and
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.11: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]
  ): SecurityMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  All security policies of the project. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  securityPolicies(
    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """Filter policies by type."""
    type: PolicyType = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityPolicyTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  All projects eligible for policy scope selection when this project is used as
  a Security Policy Project. Includes projects from root ancestors of all linked
  groups. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  securityPolicyEligibleProjects(
    """Search query for project name or path."""
    search: String

    """
    Filter eligible projects by global IDs (used to hydrate already-selected
    projects). A maximum of 100 IDs can be provided.
    """
    ids: [ProjectID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Indicates that all security policy pipelines must succeed before merge
  requests can be merged. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  securityPolicyPipelineMustSucceed: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Security policy project assigned to the project, absent if assigned to a parent group.
  """
  securityPolicyProject: Project

  """Groups linked to the project, when used as Security Policy Project."""
  securityPolicyProjectLinkedGroups(
    """Filter groups by IDs."""
    ids: [ID!]

    """Only include top-level groups."""
    topLevelOnly: Boolean = false

    """Search query for groups."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """
  Namespaces linked to the project, when used as Security Policy Project. Deprecated in GitLab 17.4: This was renamed.
  """
  securityPolicyProjectLinkedNamespaces(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "This was renamed. Please use `security_policy_project_linked_groups`. Deprecated in GitLab 17.4.")

  """Projects linked to the project, when used as Security Policy Project."""
  securityPolicyProjectLinkedProjects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Security policy project suggestions"""
  securityPolicyProjectSuggestions(
    """Search query for projects' full paths."""
    search: String!

    """
    Whether to suggest only projects already linked as security policy projects.
    """
    onlyLinked: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """
  Security scan profiles attached to the project. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  securityScanProfiles: [ScanProfileType!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Information about security analyzers used in the project."""
  securityScanners: SecurityScanners

  """
  Refs tracked for security vulnerabilities. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  securityTrackedRefs(
    """
    Filter by tracking state. Values: "TRACKED", "UNTRACKED". Returns all refs if not specified.
    """
    state: SecurityTrackedRefState

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecurityTrackedRefConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """List of security training providers for the project"""
  securityTrainingProviders(
    """Filter the list by only enabled security trainings."""
    onlyEnabled: Boolean
  ): [ProjectSecurityTraining!]

  """
  Security training URLs for the enabled training providers of the project.
  """
  securityTrainingUrls(
    """List of external IDs of vulnerability identifiers."""
    identifierExternalIds: [String!]!

    """Filename to filter security training URLs by programming language."""
    filename: String
  ): [SecurityTrainingUrl!]

  """Detailed version of a Sentry error on the project."""
  sentryDetailedError(
    """ID of the Sentry issue."""
    id: GitlabErrorTrackingDetailedErrorID!
  ): 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 integration is active."""
    active: Boolean

    """Type of integration."""
    type: ServiceType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ServiceConnection

  """Indicates if shared runners are enabled for the project."""
  sharedRunnersEnabled: Boolean

  """Snippets of the project."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Indicates if Snippets are enabled for the current user"""
  snippetsEnabled: Boolean

  """Template used to create squash commit message in merge requests."""
  squashCommitTemplate: String

  """Indicates if `squashReadOnly` is enabled."""
  squashReadOnly: 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

  """Redirects for Statistics of the project."""
  statisticsDetailsPaths: ProjectStatisticsRedirect

  """Commit message used to apply merge request suggestions."""
  suggestionCommitMessage: String

  """
  List of project topics (not Git tags). Deprecated in GitLab 13.12: Use `topics`.
  """
  tagList: String @deprecated(reason: "Use `topics`. Deprecated in GitLab 13.12.")

  """Target branch rules of the project."""
  targetBranchRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectTargetBranchRuleConnection

  """Find a single Terraform state by name."""
  terraformState(
    """Name of the Terraform state."""
    name: String!
  ): TerraformState

  """
  Terraform state protection rules for the project. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  terraformStateProtectionRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TerraformStateProtectionRuleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """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

  """
  Timelog categories for the project. Introduced in GitLab 15.3: **Status**: Experiment.
  """
  timelogCategories(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """Time logged on issues and merge requests in the project."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """List of project topics."""
  topics: [String!]

  """
  Tracking key assigned to the project. Introduced in GitLab 16.0: **Status**: Experiment.
  """
  trackingKey: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.0.")

  """Timestamp of when the project was last updated."""
  updatedAt: Time

  """Authorized cluster agents for the project through user_access keyword."""
  userAccessAuthorizedAgents(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ClusterAgentAuthorizationUserAccessConnection

  """Permissions for the current user on the resource"""
  userPermissions: ProjectPermissions!

  """Information about Value Stream Analytics within the project."""
  valueStreamAnalytics: ValueStreamAnalytics

  """
  Aggregated usage counts within the project Introduced in GitLab 17.2: **Status**: Experiment.
  """
  valueStreamDashboardUsageOverview(
    """
    Counts recorded during this time frame, usually from beginning of the month
    until the end of the month (the system runs monthly aggregations).
    """
    timeframe: Timeframe!

    """Type of counts to retrieve."""
    identifier: ValueStreamDashboardProjectLevelMetric!
  ): ValueStreamDashboardCount @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Value streams available to the project."""
  valueStreams(
    """Value stream id."""
    id: ID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ValueStreamConnection

  """Visibility of the project."""
  visibility: String

  """
  Visible forks of the project. Introduced in GitLab 15.10: **Status**: Experiment.
  """
  visibleForks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

    """Minimum access level."""
    minimumAccessLevel: AccessLevelEnum
  ): ProjectConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Vulnerabilities reported on the project."""
  vulnerabilities(
    """Filter vulnerabilities by project."""
    projectId: [ID!]

    """Filter vulnerabilities by report type."""
    reportType: [VulnerabilityReportType!]

    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance security dashboard queries.
    """
    identifierName: String

    """Filter vulnerabilities by VulnerabilityScanner.externalId."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """List vulnerabilities by sort order."""
    sort: VulnerabilitySort = severity_desc

    """
    Returns only the vulnerabilities which have been resolved on default branch.
    """
    hasResolution: Boolean

    """
    Returns only the vulnerabilities which can likely be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """Returns only the vulnerabilities which have linked issues."""
    hasIssues: Boolean

    """Returns only the vulnerabilities which have linked merge requests."""
    hasMergeRequest: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType`
    of `cluster_image_scanning` are only included with this filter.
    """
    clusterId: [ClustersClusterID!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """
    Filter by dismissal reason. Only dismissed Vulnerabilities will be included with the filter.
    """
    dismissalReason: [VulnerabilityDismissalReason!]

    """Returns only the vulnerabilities which have remediations."""
    hasRemediations: Boolean

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by validity check. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Returns only the vulnerabilities which have been auto dismissed by security
    policies. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured and advanced vulnerability management set
    up. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up and the
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.9: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityConnection

  """The historical number of vulnerabilities per day for the project."""
  vulnerabilitiesCountByDay(
    """First day for which to fetch vulnerability history."""
    startDate: ISO8601Date!

    """Last day for which to fetch vulnerability history."""
    endDate: ISO8601Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilitiesCountByDayConnection

  """
  All vulnerability archives of the project. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  vulnerabilityArchives: [VulnerabilityArchive!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Search for vulnerabilities by identifier."""
  vulnerabilityIdentifierSearch(
    """
    Search identifier by name. Substring or partial match search is supported
    and argument should be greater than 3 characters.
    """
    name: String!
  ): [String!]

  """Container images reported on the project vulnerabilities."""
  vulnerabilityImages(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityContainerImageConnection

  """
  Vulnerability Management Policies of the project. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  vulnerabilityManagementPolicies(
    """Filter policies by the given policy relationship. Default is DIRECT."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Filter policies that are scoped to the project."""
    includeUnscoped: Boolean = true

    """
    Remove duplicate policies when the same policy is applied via multiple routes.
    """
    deduplicatePolicies: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityManagementPolicyConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Vulnerability scanners reported on the project vulnerabilities."""
  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 severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """Filter vulnerabilities by scanner."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """Filter vulnerabilities that do or do not have issues."""
    hasIssues: Boolean

    """Filter vulnerabilities that do or do not have a resolution."""
    hasResolution: Boolean

    """
    Filters vulnerabilities which can or can not be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """Filter vulnerabilities that do or do not have a merge request."""
    hasMergeRequest: Boolean

    """Filter by dismissal reason."""
    dismissalReason: [VulnerabilityDismissalReason!]

    """Filter vulnerabilities that do or do not have remediations."""
    hasRemediations: Boolean

    """
    Default value is false. When set to true, the count returned for each
    severity is capped at a maximum of 1001. Ignored when used along with any
    argument that requires advanced vulnerability management.
    """
    capped: Boolean = false

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance
    security dashboard queries. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    identifierName: String

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by token status. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter by policy auto dismissed. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.8:
    **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured, advanced vulnerability management set up
    and `vulnerabilities_across_contexts` feature flag enabled. Introduced in
    GitLab 18.11: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured, advanced vulnerability management set up and
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.11: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean
  ): VulnerabilitySeveritiesCount

  """Counts for each vulnerability severity in the project."""
  vulnerabilityStatistic: VulnerabilityStatisticType

  """
  Indicates whether web-based commit signing is enabled for the project. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  webBasedCommitSigningEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Web path of the project."""
  webPath: String!

  """Web URL of the project."""
  webUrl: String

  """
  A single project webhook. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  webhook(
    """ID of the project webhook."""
    id: ProjectHookID!
  ): ProjectHook @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Indicates if Wikis are enabled for the current user"""
  wikiEnabled: Boolean

  """
  Counts of work items by state for the project. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  workItemStateCounts(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]
  ): WorkItemStateCountsType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """Work item types available to the project."""
  workItemTypes(
    """
    Filter work item types by the given name. Deprecated in GitLab 19.0:
    Name-based filtering is no longer supported with introduction of
    configurable work item types in 19.0.
    """
    name: IssueType

    """
    When true, returns only the available work item types for the current user.
    This experimental field will be removed in 19.0. Use canUserCreateItems and
    isFilterableListView fields from the WorkItemTypes API instead. Introduced
    in GitLab 18.6: **Status**: Experiment.
    """
    onlyAvailable: 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
  ): WorkItemTypeConnection

  """
  Work items of the project. Introduced in GitLab 15.1: **Status**: Experiment.
  """
  workItems(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Filter by global IDs of work items (maximum is 100 IDs)."""
    ids: [WorkItemID!]

    """Filter work items by author username."""
    authorUsername: String

    """
    Filter for confidential work items. If `false`, excludes confidential work
    items. If `true`, returns only confidential work items.
    """
    confidential: Boolean

    """
    Usernames of users assigned to the work item (maximum is 100 usernames).
    """
    assigneeUsernames: [String!]

    """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
    assigneeWildcardId: AssigneeWildcardId

    """Labels applied to the work item (maximum is 100 labels)."""
    labelName: [String!]

    """Milestone applied to the work item (maximum is 100 milestones)."""
    milestoneTitle: [String!]

    """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
    """
    myReactionEmoji: String

    """
    List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
    """
    iids: [String!]

    """Current state of the work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Filter work items by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """Work items created before the timestamp."""
    createdBefore: Time

    """Work items created after the timestamp."""
    createdAfter: Time

    """Work items updated before the timestamp."""
    updatedBefore: Time

    """Work items updated after the timestamp."""
    updatedAfter: Time

    """Work items due before the timestamp."""
    dueBefore: Time

    """Work items due after the timestamp."""
    dueAfter: Time

    """Work items closed before the date."""
    closedBefore: Time

    """Work items closed after the date."""
    closedAfter: Time

    """Work items the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Negated work item arguments."""
    not: NegatedWorkItemFilterInput

    """List of arguments with inclusive `OR`."""
    or: UnionedWorkItemFilterInput

    """
    Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    hierarchyFilters: HierarchyFilterInput

    """
    Filter work items by global IDs of their parent items (maximum is 100 IDs).
    """
    parentIds: [WorkItemID!]

    """
    Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    parentWildcardId: WorkItemParentWildcardId

    """
    Whether to include work items of descendant parents when filtering by
    parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    includeDescendantWorkItems: Boolean

    """
    Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
    """
    releaseTag: [String!]

    """Filter by release tag wildcard."""
    releaseTagWildcardId: ReleaseTagWildcardId

    """Filter by ID of CRM contact."""
    crmContactId: String

    """Filter by ID of CRM contact organization."""
    crmOrganizationId: String

    """IID of the work item. For example, "1"."""
    iid: String

    """Sort work items by criteria."""
    sort: WorkItemSort = CREATED_DESC

    """Input for verification status widget filter."""
    verificationStatusWidget: VerificationStatusFilterInput

    """
    Input for legacy requirement widget filter. Deprecated in GitLab 15.9: Use work item IID filter instead.
    """
    requirementLegacyWidget: RequirementLegacyFilterInput

    """Health status of the work item, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """
    Weight applied to the work item, "none" and "any" values are supported.
    """
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """
    Filter by custom fields (maximum is 100 fields). Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """
    List of iteration Global IDs applied to the issue (maximum is 100 IDs).
    """
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs (maximum is 100 IDs)."""
    iterationCadenceId: [IterationsCadenceID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")
}

"""Values for the archived argument"""
enum ProjectArchived {
  """Only archived projects."""
  ONLY

  """Include archived projects."""
  INCLUDE

  """Exclude archived projects."""
  EXCLUDE
}

"""Autogenerated input type of projectBlobsRemove"""
input projectBlobsRemoveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project to replace."""
  projectPath: ID!

  """List of blob oids."""
  blobOids: [String!]!
}

"""Autogenerated return type of projectBlobsRemove."""
type projectBlobsRemovePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type ProjectCiCdSetting {
  """
  Indicates the ability to push to this repository using a job token from an allowlisted project
  """
  crossProjectPushForJobTokenAllowed: Boolean

  """Indicates whether pipeline variables can be displayed in the UI."""
  displayPipelineVariables: Boolean

  """Indicates whether group runners are enabled for the project."""
  groupRunnersEnabled: Boolean

  """
  Indicates whether CI/CD job tokens generated in other projects have restricted access to this project.
  """
  inboundJobTokenScopeEnabled: Boolean

  """
  Indicates whether CI/CD job tokens generated in this project have restricted access to other projects.
  """
  jobTokenScopeEnabled: Boolean

  """Indicates whether the latest artifact should be kept for the project."""
  keepLatestArtifact: Boolean

  """
  Maximum number of parallel pipelines per merge train. When null, the plan limit applies.
  """
  maxPipelinesPerMergeTrain: Int

  """Indicates whether merged results pipelines are enabled."""
  mergePipelinesEnabled: Boolean

  """
  Merge train enforcement level for the project. Ignored unless the `merge_train_enforcement` feature flag is enabled.
  """
  mergeTrainEnforcement: MergeTrainEnforcement!

  """Whether merge trains are enabled."""
  mergeTrainsEnabled: Boolean

  """Whether merge immediately is allowed for merge trains."""
  mergeTrainsSkipTrainAllowed: Boolean!

  """
  Minimum role required to set variables when creating a pipeline or running a job.
  """
  pipelineVariablesMinimumOverrideRole: String!

  """Project the CI/CD settings belong to."""
  project: Project

  """
  Indicates the ability to push to the original project repository using a job token
  """
  pushRepositoryForJobTokenAllowed: Boolean

  """Default process mode for resource groups."""
  resourceGroupDefaultProcessMode: ResourceGroupsProcessMode
}

"""Autogenerated input type of ProjectCiCdSettingsUpdate"""
input ProjectCiCdSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full Path of the project the settings belong to."""
  fullPath: ID!

  """Indicates whether group runners are enabled for the project."""
  groupRunnersEnabled: Boolean

  """Indicates whether the latest artifact should be kept for the project."""
  keepLatestArtifact: Boolean

  """
  Indicates whether CI/CD job tokens generated in this project have restricted
  access to other projects. Deprecated in GitLab 16.0: Outbound job token scope
  is being removed. This field can now only be set to false.
  """
  jobTokenScopeEnabled: Boolean

  """
  Indicates whether CI/CD job tokens generated in other projects have restricted access to this project.
  """
  inboundJobTokenScopeEnabled: Boolean

  """
  Indicates the ability to push to the original project repository using a job token
  """
  pushRepositoryForJobTokenAllowed: Boolean

  """
  Indicates the ability to push to this repository using a job token from an allowlisted project
  """
  crossProjectPushForJobTokenAllowed: Boolean

  """Indicates whether pipeline variables can be displayed in the UI."""
  displayPipelineVariables: Boolean

  """
  Minimum role required to set variables when creating a pipeline or running a job.
  """
  pipelineVariablesMinimumOverrideRole: String

  """Default process mode for resource groups in the project."""
  resourceGroupDefaultProcessMode: ResourceGroupsProcessMode

  """Indicates if merged results pipelines are enabled for the project."""
  mergePipelinesEnabled: Boolean

  """Indicates if merge trains are enabled for the project."""
  mergeTrainsEnabled: Boolean

  """
  Indicates whether an option is allowed to merge without refreshing the merge
  train. Ignored unless the `merge_trains_skip_train` feature flag is also enabled.
  """
  mergeTrainsSkipTrainAllowed: Boolean

  """
  Merge train enforcement level for the project. Ignored unless the `merge_train_enforcement` feature flag is also enabled.
  """
  mergeTrainEnforcement: MergeTrainEnforcement

  """Maximum number of parallel pipelines per merge train."""
  maxPipelinesPerMergeTrain: Int
}

"""Autogenerated return type of ProjectCiCdSettingsUpdate."""
type ProjectCiCdSettingsUpdatePayload {
  """CI/CD settings after mutation."""
  ciCdSettings: ProjectCiCdSetting!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Compliance status of the project control."""
enum ProjectComplianceControlStatus {
  """Pass"""
  PASS

  """Fail"""
  FAIL

  """Pending"""
  PENDING
}

input ProjectComplianceControlStatusInput {
  """Compliance requirement id of the statuses."""
  complianceRequirementId: ComplianceManagementComplianceFrameworkComplianceRequirementID
}

"""Compliance control status for a project."""
type ProjectComplianceControlStatusType {
  """Control of the compliance status."""
  complianceRequirementsControl: ComplianceRequirementsControl!

  """Compliance control status ID."""
  id: ID!

  """Compliance status of the project for the control."""
  status: ProjectComplianceControlStatus!

  """Timestamp when the control status was last updated."""
  updatedAt: Time!
}

"""The connection type for ProjectComplianceControlStatusType."""
type ProjectComplianceControlStatusTypeConnection {
  """A list of edges."""
  edges: [ProjectComplianceControlStatusTypeEdge]

  """A list of nodes."""
  nodes: [ProjectComplianceControlStatusType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectComplianceControlStatusTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectComplianceControlStatusType
}

"""Compliance requirement status for a project."""
type ProjectComplianceRequirementStatus {
  """Framework of the compliance status."""
  complianceFramework: ComplianceFramework!

  """Requirement of the compliance status."""
  complianceRequirement: ComplianceRequirement!

  """Total no. of failed compliance controls for the requirement."""
  failCount: Int!

  """Compliance requirement status ID."""
  id: ID!

  """Total no. of passed compliance controls for the requirement."""
  passCount: Int!

  """Total no. of pending compliance controls for the requirement."""
  pendingCount: Int!

  """Project of the compliance status."""
  project: Project!

  """Timestamp when the requirement status was last updated."""
  updatedAt: Time!
}

"""The connection type for ProjectComplianceRequirementStatus."""
type ProjectComplianceRequirementStatusConnection {
  """A list of edges."""
  edges: [ProjectComplianceRequirementStatusEdge]

  """A list of nodes."""
  nodes: [ProjectComplianceRequirementStatus]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectComplianceRequirementStatusEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectComplianceRequirementStatus
}

"""Values for order_by field for project requirement statuses."""
enum ProjectComplianceRequirementStatusOrderBy {
  """Order by projects."""
  PROJECT

  """Order by requirements."""
  REQUIREMENT

  """Order by frameworks."""
  FRAMEWORK
}

"""Compliance violation for a project."""
type ProjectComplianceViolation implements NoteableInterface & Todoable {
  """Audit event related to the violation."""
  auditEvent: AuditEvent!

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Compliance control of the violation."""
  complianceControl: ComplianceRequirementsControl!

  """Timestamp when the violation was detected."""
  createdAt: Time!

  """All discussions on the 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!

  """Compliance violation ID."""
  id: ID!

  """Project issues linked to the violation."""
  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
  ): IssueConnection

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """Project of the compliance violation."""
  project: Project!

  """Compliance violation status of the project."""
  status: ComplianceViolationStatus!

  """URL of the object."""
  webUrl: String
}

"""The connection type for ProjectComplianceViolation."""
type ProjectComplianceViolationConnection {
  """A list of edges."""
  edges: [ProjectComplianceViolationEdge]

  """A list of nodes."""
  nodes: [ProjectComplianceViolation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectComplianceViolationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectComplianceViolation
}

"""Filters for project compliance violations."""
input ProjectComplianceViolationFilterInput {
  """Project ID for which to filter compliance violations."""
  projectId: ProjectID

  """Control ID for which to filter compliance violations."""
  controlId: ComplianceManagementComplianceFrameworkComplianceRequirementsControlID

  """Status of the project compliance violation."""
  status: [ComplianceViolationStatus!]

  """Compliance violations created on or before the date (inclusive)."""
  createdBefore: Date

  """Compliance violations created on or after the date (inclusive)."""
  createdAfter: Date
}

"""The connection type for Project."""
type ProjectConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ProjectEdge]

  """A list of nodes."""
  nodes: [Project]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectCustomAttributeSet"""
input ProjectCustomAttributeSetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Key of the custom attribute."""
  key: String!

  """Value of the custom attribute."""
  value: String!
}

"""Autogenerated return type of ProjectCustomAttributeSet."""
type ProjectCustomAttributeSetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Custom attribute after mutation."""
  customAttribute: CustomAttribute

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type ProjectDataTransfer {
  """Data nodes."""
  egressNodes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EgressNodeConnection

  """Total egress for that project in that period of time."""
  totalEgress: BigInt
}

"""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
}

"""
Represents the access level required by the user to access a project feature
"""
type ProjectFeatureAccess {
  """Integer representation of access level."""
  integerValue: Int

  """String representation of access level."""
  stringValue: ProjectFeatureAccessLevel
}

"""Access level of a project feature"""
enum ProjectFeatureAccessLevel {
  """Not enabled for anyone."""
  DISABLED

  """Enabled only for team members."""
  PRIVATE

  """Enabled for everyone able to access the project."""
  ENABLED
}

type ProjectHook {
  """Auto-disabling status of the webhook."""
  alertStatus: WebhookAlertStatus!

  """Strategy for filtering push events by branch name."""
  branchFilterStrategy: WebhookBranchFilterStrategy!

  """Whether the webhook is triggered on confidential issues events."""
  confidentialIssuesEvents: Boolean!

  """Whether the webhook is triggered on confidential note events."""
  confidentialNoteEvents: Boolean!

  """Timestamp of when the webhook was created."""
  createdAt: Time!

  """List of custom header names for the webhook."""
  customHeaders: [WebhookCustomHeader!]

  """Custom payload template for the webhook request body."""
  customWebhookTemplate: String

  """Whether the webhook is triggered on deployment events."""
  deploymentEvents: Boolean!

  """Description of the webhook."""
  description: String

  """
  Timestamp when the webhook will be automatically re-enabled if temporarily disabled.
  """
  disabledUntil: Time

  """Whether the webhook is triggered on emoji events."""
  emojiEvents: Boolean!

  """Whether SSL verification is done when triggering the webhook."""
  enableSslVerification: Boolean

  """Whether the webhook is triggered on feature flag events."""
  featureFlagEvents: Boolean!

  """ID of the webhook."""
  id: ProjectHookID!

  """Whether the webhook is triggered on issues events."""
  issuesEvents: Boolean!

  """Whether the webhook is triggered on job events."""
  jobEvents: Boolean!

  """Whether the webhook is triggered on merge request events."""
  mergeRequestsEvents: Boolean!

  """Whether the webhook is triggered on milestone events."""
  milestoneEvents: Boolean!

  """Name of the webhook."""
  name: String

  """Whether the webhook is triggered on note events."""
  noteEvents: Boolean!

  """Whether the webhook is triggered on pipeline events."""
  pipelineEvents: Boolean!

  """Whether the webhook is triggered on push events."""
  pushEvents: Boolean!

  """Trigger hook on push events for matching branches only."""
  pushEventsBranchFilter: String

  """Whether the webhook is triggered on releases events."""
  releasesEvents: Boolean!

  """Whether the webhook is triggered on resource access token events."""
  resourceAccessTokenEvents: Boolean!

  """
  Whether an HMAC signing token is configured for webhook-signature header generation.
  """
  signingTokenPresent: Boolean!

  """Whether the webhook is triggered on tag push events."""
  tagPushEvents: Boolean!

  """
  Whether a secret token is configured for X-Gitlab-Token header validation.
  """
  tokenPresent: Boolean!

  """URL of the webhook."""
  url: String!

  """
  List of URL variable masks to hide sensitive portions of the webhook URL.
  """
  urlVariables: [WebhookUrlVariable!]

  """Whether the webhook is triggered on vulnerability events."""
  vulnerabilityEvents: Boolean!

  """A single webhook event."""
  webhookEvent(
    """
    Filter for webhook events within a range of timestamps. Defaults to events within the last seven days.
    """
    timestampRange: TimestampRange

    """ID of the webhook event."""
    id: WebHookLogID!
  ): WebhookEvent

  """
  List of recent webhook events. This field can only be resolved for one webhook in any single request.
  """
  webhookEvents(
    """
    Filter for webhook events within a range of timestamps. Defaults to events within the last seven days.
    """
    timestampRange: TimestampRange

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WebhookEventConnection

  """Whether the webhook is triggered on wiki page events."""
  wikiPageEvents: Boolean!
}

"""
A `ProjectHookID` is a global ID. It is encoded as a string.

An example `ProjectHookID` is: `"gid://gitlab/ProjectHook/1"`.
"""
scalar ProjectHookID

"""
A `ProjectID` is a global ID. It is encoded as a string.

An example `ProjectID` is: `"gid://gitlab/Project/1"`.
"""
scalar ProjectID

"""
Represents the Geo replication and verification state of a relation export file
upload project_import_export_relation_export_upload_upload
"""
type ProjectImportExportRelationExportUploadUploadRegistry {
  """
  Indicate if the checksums of the
  ProjectImportExportRelationExportUploadUploadRegistry do not match on the
  primary and secondary.
  """
  checksumMismatch: Boolean

  """
  Timestamp when the ProjectImportExportRelationExportUploadUploadRegistry was created
  """
  createdAt: Time

  """
  Path to the data management view for this ProjectImportExportRelationExportUploadUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ProjectImportExportRelationExportUploadUploadRegistry"""
  id: ID!

  """
  Error message during sync of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the ProjectImportExportRelationExportUploadUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """
  ID of the ProjectImportExportRelationExportUploadUploadRegistry's model record.
  """
  modelRecordId: Int

  """ID of the Relation Export File Upload."""
  projectImportExportRelationExportUploadUploadId: ID!

  """
  Timestamp after which the ProjectImportExportRelationExportUploadUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  retryCount: Int

  """
  Sync state of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  state: RegistryState

  """
  The local checksum of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  verificationChecksum: String

  """
  The expected checksum of the ProjectImportExportRelationExportUploadUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the ProjectImportExportRelationExportUploadUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of ProjectImportExportRelationExportUploadUploadRegistry started
  """
  verificationStartedAt: Time

  """
  Verification state of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ProjectImportExportRelationExportUploadUploadRegistry
  """
  verifiedAt: Time
}

"""
The connection type for ProjectImportExportRelationExportUploadUploadRegistry.
"""
type ProjectImportExportRelationExportUploadUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ProjectImportExportRelationExportUploadUploadRegistryEdge]

  """A list of nodes."""
  nodes: [ProjectImportExportRelationExportUploadUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectImportExportRelationExportUploadUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectImportExportRelationExportUploadUploadRegistry
}

"""
A `ProjectImportStateID` is a global ID. It is encoded as a string.

An example `ProjectImportStateID` is: `"gid://gitlab/ProjectImportState/1"`.
"""
scalar ProjectImportStateID

interface ProjectInterface {
  """Avatar URL of the project."""
  avatarUrl: String

  """Short description of the project."""
  description: String

  """Full path of the project."""
  fullPath: ID

  """ID of the project."""
  id: ID

  """Name of the project without the namespace."""
  name: String

  """Name of the project including the namespace."""
  nameWithNamespace: String

  """Permissions for the current user on the project."""
  userPermissions: ProjectPermissions

  """Web URL of the project."""
  webUrl: String
}

"""The connection type for ProjectInterface."""
type ProjectInterfaceConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ProjectInterfaceEdge]

  """A list of nodes."""
  nodes: [ProjectInterface]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectInterfaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectInterface
}

"""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: UserCore

  """Date and time the membership expires."""
  expiresAt: Time

  """ID of the member."""
  id: ID!

  """Find a merge request."""
  mergeRequestInteraction(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): UserMergeRequestInteraction

  """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: UserCore

  """Permissions for the current user on the resource"""
  userPermissions: ProjectPermissions!
}

"""Autogenerated input type of ProjectMemberBulkUpdate"""
input ProjectMemberBulkUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of the members."""
  userIds: [UserID!]!

  """Access level to update the members to."""
  accessLevel: MemberAccessLevel!

  """Date and time the membership expires."""
  expiresAt: Time

  """Global ID of the project."""
  projectId: ProjectID!
}

"""Autogenerated return type of ProjectMemberBulkUpdate."""
type ProjectMemberBulkUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project members after mutation."""
  projectMembers: [ProjectMember!]

  """List of queued pending members approvals."""
  queuedMemberApprovals(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberApprovalConnection
}

"""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
}

"""Project member relation"""
enum ProjectMemberRelation {
  """Direct members"""
  DIRECT

  """Inherited members"""
  INHERITED

  """Descendants members"""
  DESCENDANTS

  """Invited Groups members"""
  INVITED_GROUPS

  """Shared Into Ancestors members"""
  SHARED_INTO_ANCESTORS
}

type ProjectMinimalAccess implements ProjectInterface {
  """Avatar URL of the project."""
  avatarUrl: String

  """Short description of the project."""
  description: String

  """Full path of the project."""
  fullPath: ID!

  """ID of the project."""
  id: ID!

  """Name of the project without the namespace."""
  name: String!

  """Name of the project including the namespace."""
  nameWithNamespace: String!

  """Permissions for the current user on the resource"""
  userPermissions: ProjectPermissions!

  """Web URL of the project."""
  webUrl: String
}

type ProjectNamespaceLinks implements NamespacesLinkPaths {
  """
  Path for autocomplete award emojis. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  autocompleteAwardEmojisPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Calendar path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  calendarPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace contribution guide path."""
  contributionGuidePath: String

  """Help page path for emails."""
  emailsHelpPagePath: String

  """Namespace epics_list."""
  epicsList: String

  """
  Path to the epics list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  epicsListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  CSV export endpoint for work items. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  exportCsvPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace group_issues."""
  groupIssues: String

  """
  Full path of the group. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues_list."""
  issuesList: String

  """
  Path to the issues list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  issuesListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues settings path."""
  issuesSettings: String

  """Namespace labels_fetch."""
  labelsFetch: String

  """Namespace labels_manage."""
  labelsManage: String

  """Help page path for Markdown."""
  markdownHelpPath: String

  """
  Full path of the namespace (project.namespace.full_path or group full_path).
  Introduced in GitLab 18.6: **Status**: Experiment.
  """
  namespaceFullPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_comment_template_paths."""
  newCommentTemplate: [CommentTemplatePath!]

  """
  Path to create a new issue. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newIssuePath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_project."""
  newProject: String

  """
  New trial path for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newTrialPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Email address that can be used to create a new work item in this project.
  Returns null if incoming email is not configured. More details on how to
  configure incoming email is in this [documentation](https://docs.gitlab.com/administration/incoming_email/#set-it-up).
  """
  newWorkItemEmailAddress: String

  """JIRA import path."""
  projectImportJiraPath: String

  """Help page path for quick actions."""
  quickActionsHelpPath: String

  """Namespace register_path."""
  register: String

  """Project releases path."""
  releasesPath: String

  """Namespace report_abuse."""
  reportAbuse: String

  """
  RSS path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rssPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace sign_in_path."""
  signIn: String

  """
  User email for export CSV. Returns `null` for user namespaces. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  userExportEmail: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
}

type ProjectNamespaceMarkdownPaths implements MarkdownPaths {
  """Supported paths for autocomplete sources for a given namespace."""
  autocompleteSourcesPath(
    """IID of the work item."""
    iid: String

    """ID of the work item type."""
    workItemTypeId: String
  ): JSON

  """Path for the markdown preview for given namespace."""
  markdownPreviewPath(
    """IID of the target item for markdown preview."""
    iid: String
  ): String

  """Uploads path for a given namespace."""
  uploadsPath: String
}

type ProjectNamespaceMetadata implements NamespaceMetadata {
  """
  Default branch of the project. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  defaultBranch: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  ID of the group. Returns null for user namespaces. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  User preference for initial sort order. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  initialSort: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether issue repositioning is disabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isIssueRepositioningDisabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Maximum allowed attachment size (humanized). Introduced in GitLab 18.6: **Status**: Experiment.
  """
  maxAttachmentSize: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether to show the new work item link. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  showNewWorkItem: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Time tracking limit to hours setting. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  timeTrackingLimitToHours: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
}

type ProjectPermissions {
  """
  If `true`, the user can perform `admin_ai_catalog_item` on this resource
  Introduced in GitLab 18.3: **Status**: Experiment.
  """
  adminAiCatalogItem: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  If `true`, the user can perform `admin_ai_catalog_item_consumer` on this
  resource Introduced in GitLab 18.3: **Status**: Experiment.
  """
  adminAiCatalogItemConsumer: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """If `true`, the user is an instance administrator."""
  adminAllResources: Boolean!

  """If `true`, the user can perform `admin_issue` on this resource"""
  adminIssue: Boolean!

  """If `true`, the user can perform `admin_operations` on this resource"""
  adminOperations: Boolean!

  """If `true`, the user can perform `admin_path_locks` on this resource"""
  adminPathLocks: Boolean!

  """If `true`, the user can perform `admin_project` on this resource"""
  adminProject: Boolean!

  """If `true`, the user can perform `admin_remote_mirror` on this resource"""
  adminRemoteMirror: Boolean!

  """If `true`, the user can perform `admin_wiki` on this resource"""
  adminWiki: Boolean!

  """
  If `true`, the user can perform `admin_work_item_lifecycle` on this resource
  """
  adminWorkItemLifecycle: Boolean!

  """If `true`, the user can perform `archive_project` on this resource"""
  archiveProject: Boolean!

  """If `true`, the user can leave this project."""
  canLeave: Boolean!

  """If `true`, the user can perform `change_namespace` on this resource"""
  changeNamespace: Boolean!

  """
  If `true`, the user can perform `change_visibility_level` on this resource
  """
  changeVisibilityLevel: Boolean!

  """If `true`, the user can perform `create_deployment` on this resource"""
  createDeployment: Boolean!

  """If `true`, the user can perform `create_design` on this resource"""
  createDesign: Boolean!

  """If `true`, the user can perform `create_issue` on this resource"""
  createIssue: Boolean!

  """If `true`, the user can perform `create_label` on this resource"""
  createLabel: Boolean!

  """
  If `true`, the user can perform `create_merge_request_from` on this resource
  """
  createMergeRequestFrom: Boolean!

  """
  If `true`, the user can perform `create_merge_request_in` on this resource
  """
  createMergeRequestIn: Boolean!

  """If `true`, the user can perform `create_pages` on this resource"""
  createPages: Boolean!

  """If `true`, the user can perform `create_path_lock` on this resource"""
  createPathLock: Boolean!

  """If `true`, the user can perform `create_pipeline` on this resource"""
  createPipeline: Boolean!

  """
  If `true`, the user can perform `create_pipeline_schedule` on this resource
  """
  createPipelineSchedule: Boolean!

  """If `true`, the user can perform `create_snippet` on this resource"""
  createSnippet: Boolean!

  """If `true`, the user can perform `create_wiki` on this resource"""
  createWiki: Boolean!

  """If `true`, the user can perform `create_work_item` on this resource"""
  createWorkItem: Boolean!

  """If `true`, the user can perform `destroy_design` on this resource"""
  destroyDesign: Boolean!

  """If `true`, the user can perform `destroy_pages` on this resource"""
  destroyPages: Boolean!

  """If `true`, the user can perform `destroy_wiki` on this resource"""
  destroyWiki: Boolean!

  """If `true`, the user can perform `download_code` on this resource"""
  downloadCode: Boolean!

  """If `true`, the user can perform `download_wiki_code` on this resource"""
  downloadWikiCode: Boolean!

  """If `true`, the user can perform `fork_project` on this resource"""
  forkProject: Boolean!

  """
  If `true`, the user can perform `generate_description` on this resource
  """
  generateDescription: Boolean!

  """If `true`, the user can perform `import_issues` on this resource"""
  importIssues: Boolean!

  """
  If `true`, the user can perform `manage_ai_flow_triggers` on this resource
  Introduced in GitLab 18.3: **Status**: Experiment.
  """
  manageAiFlowTriggers: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """If `true`, the user can perform `move_design` on this resource"""
  moveDesign: Boolean!

  """If `true`, the user can perform `push_code` on this resource"""
  pushCode: Boolean!

  """
  If `true`, the user can perform `push_to_delete_protected_branch` on this resource
  """
  pushToDeleteProtectedBranch: Boolean!

  """
  If `true`, the user can perform `read_ai_catalog_item` on this resource Introduced in GitLab 18.3: **Status**: Experiment.
  """
  readAiCatalogItem: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  If `true`, the user can perform `read_ai_catalog_item_consumer` on this
  resource Introduced in GitLab 18.3: **Status**: Experiment.
  """
  readAiCatalogItemConsumer: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """If `true`, the user can perform `read_commit_status` on this resource"""
  readCommitStatus: Boolean!

  """If `true`, the user can perform `read_crm_contact` on this resource"""
  readCrmContact: Boolean!

  """
  If `true`, the user can perform `read_crm_organization` on this resource
  """
  readCrmOrganization: Boolean!

  """
  If `true`, the user can perform `read_cycle_analytics` on this resource
  """
  readCycleAnalytics: Boolean!

  """If `true`, the user can perform `read_design` on this resource"""
  readDesign: Boolean!

  """If `true`, the user can perform `read_environment` on this resource"""
  readEnvironment: Boolean!

  """If `true`, the user can perform `read_merge_request` on this resource"""
  readMergeRequest: Boolean!

  """If `true`, the user can perform `read_pages_content` on this resource"""
  readPagesContent: Boolean!

  """If `true`, the user can perform `read_path_locks` on this resource"""
  readPathLocks: Boolean!

  """If `true`, the user can perform `read_project` on this resource"""
  readProject: Boolean!

  """
  If `true`, the user can perform `read_project_component_usages` on this
  resource Introduced in GitLab 19.0: **Status**: Experiment.
  """
  readProjectComponentUsages: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """If `true`, the user can perform `read_project_member` on this resource"""
  readProjectMember: Boolean!

  """
  If `true`, the user can perform `read_runner_cloud_provisioning_info` on this
  resource Introduced in GitLab 18.8: **Status**: Experiment.
  """
  readRunnerCloudProvisioningInfo: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """If `true`, the user can perform `read_wiki` on this resource"""
  readWiki: Boolean!

  """If `true`, the user can perform `remove_fork_project` on this resource"""
  removeForkProject: Boolean!

  """If `true`, the user can perform `remove_pages` on this resource"""
  removePages: Boolean!

  """If `true`, the user can perform `remove_project` on this resource"""
  removeProject: Boolean!

  """If `true`, the user can perform `rename_project` on this resource"""
  renameProject: Boolean!

  """If `true`, the user can perform `request_access` on this resource"""
  requestAccess: Boolean!

  """If `true`, the user can perform `update_design` on this resource"""
  updateDesign: Boolean!

  """If `true`, the user can perform `update_pages` on this resource"""
  updatePages: Boolean!

  """If `true`, the user can perform `update_wiki` on this resource"""
  updateWiki: Boolean!

  """If `true`, the user can perform `upload_file` on this resource"""
  uploadFile: Boolean!

  """If `true`, the user can perform `view_edit_page` on this resource"""
  viewEditPage: Boolean!
}

"""Plan limits for the current project."""
type ProjectPlanLimits {
  """Maximum number of pipeline schedules allowed per project."""
  ciPipelineSchedules: Int
}

"""
Represents the Geo replication and verification state of a project repository
"""
type ProjectRepositoryRegistry {
  """
  Indicate if the checksums of the ProjectRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the ProjectRepositoryRegistry was created"""
  createdAt: Time

  """Path to the data management view for this ProjectRepositoryRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ProjectRepositoryRegistry"""
  id: ID!

  """Error message during sync of the ProjectRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ProjectRepositoryRegistry
  """
  lastSyncedAt: Time

  """Indicate if the ProjectRepositoryRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the ProjectRepositoryRegistry's model record."""
  modelRecordId: Int

  """ID of the Project."""
  projectId: ID!

  """Timestamp after which the ProjectRepositoryRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ProjectRepositoryRegistry
  """
  retryCount: Int

  """Sync state of the ProjectRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the ProjectRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the ProjectRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the ProjectRepositoryRegistry"""
  verificationFailure: String

  """Timestamp after which the ProjectRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ProjectRepositoryRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of ProjectRepositoryRegistry started"""
  verificationStartedAt: Time

  """Verification state of the ProjectRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ProjectRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for ProjectRepositoryRegistry."""
type ProjectRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ProjectRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [ProjectRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectRepositoryRegistry
}

input ProjectRequirementComplianceStatusInput {
  """Filter compliance requirement statuses by compliance requirement."""
  requirementId: ComplianceManagementComplianceFrameworkComplianceRequirementID

  """Filter compliance requirement statuses by compliance framework."""
  frameworkId: ComplianceManagementFrameworkID
}

type ProjectSavedReply {
  """Content of the saved reply."""
  content: String!

  """Global ID of the project-level saved reply."""
  id: ProjectsSavedReplyID!

  """Name of the saved reply."""
  name: String!
}

"""The connection type for ProjectSavedReply."""
type ProjectSavedReplyConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ProjectSavedReplyEdge]

  """A list of nodes."""
  nodes: [ProjectSavedReply]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectSavedReplyCreate"""
input ProjectSavedReplyCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!

  """Project for the saved reply."""
  projectId: ProjectID!
}

"""Autogenerated return type of ProjectSavedReplyCreate."""
type ProjectSavedReplyCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: ProjectSavedReply
}

"""Autogenerated input type of ProjectSavedReplyDestroy"""
input ProjectSavedReplyDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project-level saved reply."""
  id: ProjectsSavedReplyID!
}

"""Autogenerated return type of ProjectSavedReplyDestroy."""
type ProjectSavedReplyDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: ProjectSavedReply
}

"""An edge in a connection."""
type ProjectSavedReplyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectSavedReply
}

"""Autogenerated input type of ProjectSavedReplyUpdate"""
input ProjectSavedReplyUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!

  """Global ID of the project-level saved reply."""
  id: ProjectsSavedReplyID!
}

"""Autogenerated return type of ProjectSavedReplyUpdate."""
type ProjectSavedReplyUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: ProjectSavedReply
}

"""
A `ProjectsBranchRuleID` is a global ID. It is encoded as a string.

An example `ProjectsBranchRuleID` is: `"gid://gitlab/Projects::BranchRule/1"`.
"""
scalar ProjectsBranchRuleID

"""Representation of a project secret."""
type ProjectSecret {
  """Branches that can access the secret."""
  branch: String!

  """Timestamp when the secret creation started."""
  createdAt: Time

  """Description of the project secret."""
  description: String

  """Environments that can access the secret."""
  environment: String!

  """Current metadata version of the project secret."""
  metadataVersion: Int

  """Name of the project secret."""
  name: String!

  """Project the secret belongs to."""
  project: Project!

  """Rotation configuration for the secret."""
  rotationInfo: SecretRotationInfo

  """Computed lifecycle status of the secret, based on timestamps."""
  status: SecretStatus!
}

"""The connection type for ProjectSecret."""
type ProjectSecretConnection {
  """A list of edges."""
  edges: [ProjectSecretEdge]

  """A list of nodes."""
  nodes: [ProjectSecret]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectSecretCreate"""
input ProjectSecretCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the secret."""
  projectPath: ID!

  """Name of the project secret."""
  name: String!

  """Description of the project secret."""
  description: String

  """Value of the project secret."""
  secret: String!

  """Environments that can access the secret."""
  environment: String!

  """Branches that can access the secret."""
  branch: String!

  """Number of days between rotation reminders for the secret."""
  rotationIntervalDays: Int
}

"""Autogenerated return type of ProjectSecretCreate."""
type ProjectSecretCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project secret."""
  projectSecret: ProjectSecret
}

"""Autogenerated input type of ProjectSecretDelete"""
input ProjectSecretDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the secret."""
  projectPath: ID!

  """Name of the project secret."""
  name: String!
}

"""Autogenerated return type of ProjectSecretDelete."""
type ProjectSecretDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted project secret."""
  projectSecret: ProjectSecret
}

"""An edge in a connection."""
type ProjectSecretEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectSecret
}

"""Representation of a project secrets manager."""
type ProjectSecretsManager {
  """Project the secrets manager belong to."""
  project: Project!

  """Status of the project secrets manager."""
  status: ProjectSecretsManagerStatus
}

"""Autogenerated input type of ProjectSecretsManagerDeprovision"""
input ProjectSecretsManagerDeprovisionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the secrets manager."""
  projectPath: ID!
}

"""Autogenerated return type of ProjectSecretsManagerDeprovision."""
type ProjectSecretsManagerDeprovisionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project secrets manager."""
  projectSecretsManager: ProjectSecretsManager
}

"""Autogenerated input type of ProjectSecretsManagerInitialize"""
input ProjectSecretsManagerInitializeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the secrets manager."""
  projectPath: ID!
}

"""Autogenerated return type of ProjectSecretsManagerInitialize."""
type ProjectSecretsManagerInitializePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project secrets manager."""
  projectSecretsManager: ProjectSecretsManager
}

"""Values for the project secrets manager status"""
enum ProjectSecretsManagerStatus {
  """Secrets manager is being provisioned."""
  PROVISIONING

  """Secrets manager has been provisioned and enabled."""
  ACTIVE

  """Secrets manager is being deprovisioned."""
  DEPROVISIONING
}

"""Representation of a project secrets permission."""
type ProjectSecretsPermission {
  """Actions that can be performed on secrets."""
  actions: [SecretsManagementAction!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date

  """User who created the Secret Permission."""
  grantedBy: UserCore

  """Who is provided access to. For eg: User/Role/MemberRole/Group."""
  principal: Principal!

  """Project the secrets permission belongs to."""
  project: Project!
}

"""The connection type for ProjectSecretsPermission."""
type ProjectSecretsPermissionConnection {
  """A list of edges."""
  edges: [ProjectSecretsPermissionEdge]

  """A list of nodes."""
  nodes: [ProjectSecretsPermission]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectSecretsPermissionDelete"""
input ProjectSecretsPermissionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project from which the permissions are removed."""
  projectPath: ID!

  """User/MemberRole/Role/Group whose access is being removed."""
  principal: PrincipalInput!
}

"""Autogenerated return type of ProjectSecretsPermissionDelete."""
type ProjectSecretsPermissionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Secrets Permission that was deleted."""
  secretsPermission: ProjectSecretsPermission
}

"""An edge in a connection."""
type ProjectSecretsPermissionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectSecretsPermission
}

"""Autogenerated input type of ProjectSecretsPermissionUpdate"""
input ProjectSecretsPermissionUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to which the permissions are added."""
  projectPath: ID!

  """User/MemberRole/Role/Group that is provided access."""
  principal: PrincipalInput!

  """Actions that can be performed on secrets."""
  actions: [SecretsManagementAction!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date
}

"""Autogenerated return type of ProjectSecretsPermissionUpdate."""
type ProjectSecretsPermissionUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Secrets Permission that was created."""
  secretsPermission: ProjectSecretsPermission
}

"""Autogenerated input type of ProjectSecretUpdate"""
input ProjectSecretUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project of the secret."""
  projectPath: ID!

  """Name of the project secret to update."""
  name: String!

  """New description of the project secret."""
  description: String

  """New value of the project secret."""
  secret: String

  """New environments that can access the secret."""
  environment: String

  """New branches that can access the secret."""
  branch: String

  """Number of days between rotation reminders for the secret."""
  rotationIntervalDays: Int

  """
  This should match the current metadata version of the project secret being updated.
  """
  metadataCas: Int!
}

"""Autogenerated return type of ProjectSecretUpdate."""
type ProjectSecretUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated project secret."""
  projectSecret: ProjectSecret
}

"""Represents a project-level security scanner exclusion"""
type ProjectSecurityExclusion {
  """Whether the exclusion is active."""
  active: Boolean!

  """Timestamp of when the exclusion was created."""
  createdAt: Time!

  """Optional description for the exclusion."""
  description: String

  """ID of the exclusion."""
  id: SecurityProjectSecurityExclusionID!

  """Security scanner the exclusion will be used for."""
  scanner: ExclusionScannerEnum!

  """Type of the exclusion."""
  type: ExclusionTypeEnum!

  """Timestamp of when the exclusion was updated."""
  updatedAt: Time!

  """Value of the exclusion."""
  value: String!
}

"""The connection type for ProjectSecurityExclusion."""
type ProjectSecurityExclusionConnection {
  """A list of edges."""
  edges: [ProjectSecurityExclusionEdge]

  """A list of nodes."""
  nodes: [ProjectSecurityExclusion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectSecurityExclusionCreate"""
input ProjectSecurityExclusionCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project the exclusion will be associated with."""
  projectPath: ID!

  """Type of the exclusion."""
  type: ExclusionTypeEnum!

  """Scanner to ignore values for based on the exclusion."""
  scanner: ExclusionScannerEnum!

  """Value of the exclusion."""
  value: String!

  """Whether the exclusion is active."""
  active: Boolean!

  """Optional description for the exclusion."""
  description: String
}

"""Autogenerated return type of ProjectSecurityExclusionCreate."""
type ProjectSecurityExclusionCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project security exclusion created."""
  securityExclusion: ProjectSecurityExclusion
}

"""Autogenerated input type of ProjectSecurityExclusionDelete"""
input ProjectSecurityExclusionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the exclusion to be deleted."""
  id: SecurityProjectSecurityExclusionID!
}

"""Autogenerated return type of ProjectSecurityExclusionDelete."""
type ProjectSecurityExclusionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type ProjectSecurityExclusionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectSecurityExclusion
}

"""Autogenerated input type of ProjectSecurityExclusionUpdate"""
input ProjectSecurityExclusionUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the exclusion to be updated."""
  id: SecurityProjectSecurityExclusionID!

  """Type of the exclusion."""
  type: ExclusionTypeEnum

  """Scanner to ignore values for based on the exclusion."""
  scanner: ExclusionScannerEnum

  """Value of the exclusion."""
  value: String

  """Whether the exclusion is active."""
  active: Boolean

  """Optional description for the exclusion."""
  description: String
}

"""Autogenerated return type of ProjectSecurityExclusionUpdate."""
type ProjectSecurityExclusionUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project security exclusion updated."""
  securityExclusion: ProjectSecurityExclusion
}

"""Represents the source of a security policy belonging to a project"""
type ProjectSecurityPolicySource {
  """Project the policy is associated with."""
  project: Project
}

type ProjectSecurityTraining {
  """Description of the training provider."""
  description: String

  """ID of the training provider."""
  id: GlobalID!

  """Represents whether the provider is enabled or not."""
  isEnabled: Boolean!

  """Represents whether the provider is set as primary or not."""
  isPrimary: Boolean!

  """Logo URL of the provider."""
  logoUrl: String

  """Name of the training provider."""
  name: String!

  """URL of the provider."""
  url: String!
}

"""Autogenerated input type of ProjectSetComplianceFramework"""
input ProjectSetComplianceFrameworkInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the project to change the compliance framework of."""
  projectId: ProjectID!

  """
  ID of the compliance framework to assign to the project. Set to `null` to unset.
  """
  complianceFrameworkId: ComplianceManagementFrameworkID
}

"""Autogenerated return type of ProjectSetComplianceFramework."""
type ProjectSetComplianceFrameworkPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

"""Autogenerated input type of ProjectSetContinuousVulnerabilityScanning"""
input ProjectSetContinuousVulnerabilityScanningInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Desired status for continuous vulnerability scanning feature."""
  enable: Boolean!
}

"""
Autogenerated return type of ProjectSetContinuousVulnerabilityScanning.
"""
type ProjectSetContinuousVulnerabilityScanningPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether feature is enabled."""
  continuousVulnerabilityScanningEnabled: Boolean!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of ProjectSetLocked"""
input ProjectSetLockedInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project to mutate."""
  projectPath: ID!

  """Full path to the file."""
  filePath: String!

  """Whether or not to lock the file path."""
  lock: Boolean!
}

"""Autogenerated return type of ProjectSetLocked."""
type ProjectSetLockedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

type ProjectSetting {
  """Settings for excluding files from Duo context."""
  duoContextExclusionSettings: DuoContextExclusionSettings

  """Indicates whether GitLab Duo features are enabled for the project."""
  duoFeaturesEnabled: Boolean

  """Project the settings belong to."""
  project: Project

  """
  Indicates whether tool approval for Duo Workflow sessions is enabled for the project.
  """
  toolApprovalForSessionEnabled: Boolean

  """
  Indicates whether web-based commit signing is enabled for the project. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  webBasedCommitSigningEnabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
}

"""Autogenerated input type of ProjectSettingsUpdate"""
input ProjectSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full Path of the project the settings belong to."""
  fullPath: ID!

  """Indicates whether GitLab Duo features are enabled for the project."""
  duoFeaturesEnabled: Boolean

  """
  Indicates whether tool approval for Duo Workflow sessions is enabled for the project.
  """
  toolApprovalForSessionEnabled: Boolean

  """Settings for excluding files from Duo context."""
  duoContextExclusionSettings: DuoContextExclusionSettingsInput

  """
  Indicates whether web-based commit signing is enabled for the project. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  webBasedCommitSigningEnabled: Boolean

  """
  Indicates whether SAST Vulnerability Resolution workflow is enabled for the project.
  """
  duoSastVrWorkflowEnabled: Boolean
}

"""Autogenerated return type of ProjectSettingsUpdate."""
type ProjectSettingsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project settings after mutation."""
  projectSettings: ProjectSetting!
}

"""Values for sorting projects"""
enum ProjectSort {
  """ID by ascending order."""
  ID_ASC

  """ID by descending order."""
  ID_DESC

  """Latest activity by ascending order."""
  LATEST_ACTIVITY_ASC

  """Latest activity by descending order."""
  LATEST_ACTIVITY_DESC

  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """Path by ascending order."""
  PATH_ASC

  """Path by descending order."""
  PATH_DESC

  """Stars by ascending order."""
  STARS_ASC

  """Stars by descending order."""
  STARS_DESC

  """Storage size by ascending order."""
  STORAGE_SIZE_ASC

  """Storage size by descending order."""
  STORAGE_SIZE_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""
A `ProjectsSavedReplyID` is a global ID. It is encoded as a string.

An example `ProjectsSavedReplyID` is: `"gid://gitlab/Projects::SavedReply/1"`.
"""
scalar ProjectsSavedReplyID

"""
A `ProjectsTargetBranchRuleID` is a global ID. It is encoded as a string.

An example `ProjectsTargetBranchRuleID` is: `"gid://gitlab/Projects::TargetBranchRule/1"`.
"""
scalar ProjectsTargetBranchRuleID

type ProjectStatistics {
  """Build artifacts size of the project in bytes."""
  buildArtifactsSize: Float!

  """Commit count of the project."""
  commitCount: Float!

  """Container registry size of the project in bytes."""
  containerRegistrySize: Float

  """
  Build artifacts size in bytes with any applicable cost factor for forks
  applied. This will equal build_artifacts_size if there is no applicable cost
  factor. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  costFactoredBuildArtifactsSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  LFS objects size in bytes with any applicable cost factor for forks applied.
  This will equal lfs_objects_size if there is no applicable cost factor.
  Introduced in GitLab 16.6: **Status**: Experiment.
  """
  costFactoredLfsObjectsSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Packages size in bytes with any applicable cost factor for forks applied. This
  will equal packages_size if there is no applicable cost factor. Introduced in
  GitLab 16.6: **Status**: Experiment.
  """
  costFactoredPackagesSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Repository size in bytes with any applicable cost factor for forks applied.
  This will equal repository_size if there is no applicable cost factor.
  Introduced in GitLab 16.6: **Status**: Experiment.
  """
  costFactoredRepositorySize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Snippets size in bytes with any applicable cost factor for forks applied. This
  will equal snippets_size if there is no applicable cost factor. Introduced in
  GitLab 16.6: **Status**: Experiment.
  """
  costFactoredSnippetsSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Storage size in bytes with any applicable cost factor for forks applied. This
  will equal storage_size if there is no applicable cost factor. Introduced in
  GitLab 16.2: **Status**: Experiment.
  """
  costFactoredStorageSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.2.")

  """
  Wiki size in bytes with any applicable cost factor for forks applied. This
  will equal wiki_size if there is no applicable cost factor. Introduced in
  GitLab 16.6: **Status**: Experiment.
  """
  costFactoredWikiSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """Large File Storage (LFS) object size of the project in bytes."""
  lfsObjectsSize: Float!

  """Packages size of the project in bytes."""
  packagesSize: Float!

  """CI Pipeline artifacts size in bytes."""
  pipelineArtifactsSize: Float

  """Repository size of the project in bytes."""
  repositorySize: Float!

  """Snippets size of the project in bytes."""
  snippetsSize: Float

  """Storage size of the project in bytes."""
  storageSize: Float!

  """Uploads size of the project in bytes."""
  uploadsSize: Float

  """Wiki size of the project in bytes."""
  wikiSize: Float
}

type ProjectStatisticsRedirect {
  """Redirection Route for job_artifacts."""
  buildArtifacts: String!

  """Redirection Route for container_registry."""
  containerRegistry: String!

  """Redirection Route for packages."""
  packages: String!

  """Redirection Route for repository."""
  repository: String!

  """Redirection Route for snippets."""
  snippets: String!

  """Redirection Route for wiki."""
  wiki: String!
}

"""Autogenerated input type of ProjectSubscriptionCreate"""
input ProjectSubscriptionCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the downstream project of the Project Subscription."""
  projectPath: String!

  """Full path of the upstream project of the Project Subscription."""
  upstreamPath: String!
}

"""Autogenerated return type of ProjectSubscriptionCreate."""
type ProjectSubscriptionCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project Subscription created by the mutation."""
  subscription: CiSubscriptionsProject
}

"""Autogenerated input type of ProjectSubscriptionDelete"""
input ProjectSubscriptionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the subscription to delete."""
  subscriptionId: CiSubscriptionsProjectID!
}

"""Autogenerated return type of ProjectSubscriptionDelete."""
type ProjectSubscriptionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

"""Autogenerated input type of ProjectSyncFork"""
input ProjectSyncForkInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project to initialize."""
  projectPath: ID!

  """Ref of the fork to fetch into."""
  targetBranch: String!
}

"""Autogenerated return type of ProjectSyncFork."""
type ProjectSyncForkPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated fork details."""
  details: ForkDetails

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type ProjectTargetBranchRule {
  """Timestamp of when the target branch rule was created."""
  createdAt: Time!

  """ID of the target branch rule."""
  id: ProjectsTargetBranchRuleID!

  """Name of the target branch rule."""
  name: String!

  """Target branch for the target branch rule."""
  targetBranch: String!
}

"""The connection type for ProjectTargetBranchRule."""
type ProjectTargetBranchRuleConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ProjectTargetBranchRuleEdge]

  """A list of nodes."""
  nodes: [ProjectTargetBranchRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ProjectTargetBranchRuleCreate"""
input ProjectTargetBranchRuleCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project ID for the target branch rule."""
  projectId: ProjectID!

  """Name for the target branch rule."""
  name: String!

  """Target branch for the target branch rule."""
  targetBranch: String!
}

"""Autogenerated return type of ProjectTargetBranchRuleCreate."""
type ProjectTargetBranchRuleCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Target branch rule after mutation."""
  targetBranchRule: ProjectTargetBranchRule
}

"""Autogenerated input type of ProjectTargetBranchRuleDestroy"""
input ProjectTargetBranchRuleDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID for the target branch rule."""
  id: ProjectsTargetBranchRuleID!
}

"""Autogenerated return type of ProjectTargetBranchRuleDestroy."""
type ProjectTargetBranchRuleDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type ProjectTargetBranchRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectTargetBranchRule
}

"""Autogenerated input type of projectTextReplace"""
input projectTextReplaceInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project to replace."""
  projectPath: ID!

  """List of text patterns to replace project-wide."""
  replacements: [String!]!
}

"""Autogenerated return type of projectTextReplace."""
type projectTextReplacePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""The context type of the tracked context"""
enum ProjectTrackedContext {
  """Branch type"""
  BRANCH

  """Tag type"""
  TAG
}

"""Input for specifying a project tracked context"""
input ProjectTrackedContextInput {
  """Name of the tracked context."""
  name: String!

  """Type of the tracked context."""
  type: ProjectTrackedContext!
}

"""Autogenerated input type of ProjectUpdateComplianceFrameworks"""
input ProjectUpdateComplianceFrameworksInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the project to change the compliance framework of."""
  projectId: ProjectID!

  """IDs of the compliance framework to update for the project."""
  complianceFrameworkIds: [ComplianceManagementFrameworkID!]!
}

"""Autogenerated return type of ProjectUpdateComplianceFrameworks."""
type ProjectUpdateComplianceFrameworksPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

"""
Represents the Geo replication and verification state of a project_upload
"""
type ProjectUploadRegistry {
  """
  Indicate if the checksums of the ProjectUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the ProjectUploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this ProjectUploadRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ProjectUploadRegistry"""
  id: ID!

  """Error message during sync of the ProjectUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ProjectUploadRegistry
  """
  lastSyncedAt: Time

  """Indicate if the ProjectUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the ProjectUploadRegistry's model record."""
  modelRecordId: Int

  """ID of the Project Upload."""
  projectUploadId: ID!

  """Timestamp after which the ProjectUploadRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ProjectUploadRegistry
  """
  retryCount: Int

  """Sync state of the ProjectUploadRegistry"""
  state: RegistryState

  """The local checksum of the ProjectUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the ProjectUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the ProjectUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the ProjectUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ProjectUploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of ProjectUploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the ProjectUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ProjectUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for ProjectUploadRegistry."""
type ProjectUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ProjectUploadRegistryEdge]

  """A list of nodes."""
  nodes: [ProjectUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectUploadRegistry
}

"""Exposes aggregated value stream flow metrics"""
type ProjectValueStreamAnalyticsFlowMetrics {
  """Median time from first commit to issue closed"""
  cycleTime(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput
  ): ValueStreamAnalyticsMetric

  """Number of production deployments in the given period."""
  deploymentCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!
  ): ValueStreamAnalyticsMetric

  """Number of issues opened in the given period."""
  issueCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput
  ): ValueStreamAnalyticsMetric

  """
  Number of open issues closed (completed) in the given period. Maximum value is 10,001.
  """
  issuesCompletedCount(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput
  ): ValueStreamAnalyticsMetric

  """Median time from when the issue was created to when it was closed."""
  leadTime(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """Username of the author of the issue."""
    authorUsername: String

    """Milestone applied to the issue."""
    milestoneTitle: String

    """Labels applied to the issue."""
    labelNames: [String!]

    """ID of an epic associated with the issues."""
    epicId: ID

    """ID of an iteration associated with the issues."""
    iterationId: ID

    """Weight applied to the issue."""
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput
  ): ValueStreamAnalyticsMetric

  """Median time from merge request creation to merge request merged."""
  timeToMerge(
    """Timestamp marking the start date and time."""
    from: Time!

    """Timestamp marking the end date and time."""
    to: Time!

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """Username of the author of the merge request."""
    authorUsername: String

    """Milestone applied to the merge request."""
    milestoneTitle: String

    """Labels applied to the merge request."""
    labelNames: [String!]
  ): ValueStreamAnalyticsMetric
}

"""
Represents the Geo replication and verification state of a project_wiki_repository
"""
type ProjectWikiRepositoryRegistry {
  """
  Indicate if the checksums of the ProjectWikiRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the ProjectWikiRepositoryRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this ProjectWikiRepositoryRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the ProjectWikiRepositoryRegistry"""
  id: ID!

  """Error message during sync of the ProjectWikiRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the ProjectWikiRepositoryRegistry
  """
  lastSyncedAt: Time

  """Indicate if the ProjectWikiRepositoryRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the ProjectWikiRepositoryRegistry's model record."""
  modelRecordId: Int

  """ID of the Project Wiki Repository."""
  projectWikiRepositoryId: ID!

  """Timestamp after which the ProjectWikiRepositoryRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the ProjectWikiRepositoryRegistry
  """
  retryCount: Int

  """Sync state of the ProjectWikiRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the ProjectWikiRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the ProjectWikiRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the ProjectWikiRepositoryRegistry"""
  verificationFailure: String

  """Timestamp after which the ProjectWikiRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the ProjectWikiRepositoryRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of ProjectWikiRepositoryRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the ProjectWikiRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the ProjectWikiRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for ProjectWikiRepositoryRegistry."""
type ProjectWikiRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [ProjectWikiRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [ProjectWikiRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectWikiRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProjectWikiRepositoryRegistry
}

"""The alert condition for Prometheus"""
type PrometheusAlert {
  """Human-readable text of the alert condition."""
  humanizedText: String!

  """ID of the alert condition."""
  id: ID!
}

"""Autogenerated input type of PrometheusIntegrationCreate"""
input PrometheusIntegrationCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the integration in."""
  projectPath: ID!

  """Type of integration to create. Cannot be changed after creation."""
  type: AlertManagementIntegrationType = HTTP

  """Whether the integration is receiving alerts."""
  active: Boolean!

  """Example of an alert payload."""
  payloadExample: JsonString

  """
  Custom mapping of GitLab alert attributes to fields from the payload example.
  """
  payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!]

  """Name of the integration."""
  name: String = "Prometheus"

  """
  Endpoint at which Prometheus can be queried. Deprecated in GitLab 18.2: Feature removed in 16.0.
  """
  apiUrl: String
}

"""Autogenerated return type of PrometheusIntegrationCreate."""
type PrometheusIntegrationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Newly created integration."""
  integration: AlertManagementPrometheusIntegration
}

"""Autogenerated input type of PrometheusIntegrationResetToken"""
input PrometheusIntegrationResetTokenInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the integration to mutate."""
  id: IntegrationsPrometheusID!
}

"""Autogenerated return type of PrometheusIntegrationResetToken."""
type PrometheusIntegrationResetTokenPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated integration."""
  integration: AlertManagementPrometheusIntegration
}

"""Autogenerated input type of PrometheusIntegrationUpdate"""
input PrometheusIntegrationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the integration."""
  name: String

  """Whether the integration is receiving alerts."""
  active: Boolean

  """Example of an alert payload."""
  payloadExample: JsonString

  """
  Custom mapping of GitLab alert attributes to fields from the payload example.
  """
  payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!]

  """ID of the integration to mutate."""
  id: IntegrationsPrometheusID!

  """
  Endpoint at which Prometheus can be queried. Deprecated in GitLab 18.2: Feature removed in 16.0.
  """
  apiUrl: String
}

"""Autogenerated return type of PrometheusIntegrationUpdate."""
type PrometheusIntegrationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated integration."""
  integration: AlertManagementPrometheusIntegration
}

"""Autogenerated input type of PromoteToEpic"""
input PromoteToEpicInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Group the promoted epic will belong to."""
  groupPath: ID
}

"""Autogenerated return type of PromoteToEpic."""
type PromoteToEpicPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Epic after issue promotion."""
  epic: Epic

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Values for prompt injection protection for a namespace."""
enum PromptInjectionProtectionLevel {
  """
  Turn off scanning entirely. No prompt data is sent to third-party services.
  """
  NO_CHECKS

  """Scan and log results, but do not block requests."""
  LOG_ONLY

  """Scan and block detected prompt injection attempts."""
  INTERRUPT
}

"""Protected Environments of the environment."""
type ProtectedEnvironment {
  """
  Which group, user or role is allowed to approve deployments to the environment.
  """
  approvalRules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProtectedEnvironmentApprovalRuleConnection

  """
  Which group, user or role is allowed to execute deployments to the environment.
  """
  deployAccessLevels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProtectedEnvironmentDeployAccessLevelConnection

  """Group details. Present if it's group-level protected environment."""
  group: Group

  """
  Name of the environment if it's a project-level protected environment. Tier of
  the environment if it's a group-level protected environment.
  """
  name: String

  """Project details. Present if it's project-level protected environment."""
  project: Project

  """Required approval count for Unified Approval Setting."""
  requiredApprovalCount: Int
}

"""
Which group, user or role is allowed to approve deployments to the environment.
"""
type ProtectedEnvironmentApprovalRule {
  """Role details. Present if it's role specific access control."""
  accessLevel: AccessLevel

  """Group details. Present if it's group specific access control."""
  group: Group

  """Number of required approvals."""
  requiredApprovals: Int

  """User details. Present if it's user specific access control."""
  user: UserCore
}

"""The connection type for ProtectedEnvironmentApprovalRule."""
type ProtectedEnvironmentApprovalRuleConnection {
  """A list of edges."""
  edges: [ProtectedEnvironmentApprovalRuleEdge]

  """A list of nodes."""
  nodes: [ProtectedEnvironmentApprovalRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProtectedEnvironmentApprovalRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProtectedEnvironmentApprovalRule
}

"""
Which group, user or role is allowed to approve deployments to the environment.
"""
type ProtectedEnvironmentApprovalRuleForSummary {
  """Role details. Present if it's role specific access control."""
  accessLevel: AccessLevel

  """Current approvals of the deployment."""
  approvals: [DeploymentApproval!]

  """Approved count."""
  approvedCount: Int

  """Indicates whether a user is authorized to approve."""
  canApprove: Boolean

  """Group details. Present if it's group specific access control."""
  group: Group

  """Pending approval count."""
  pendingApprovalCount: Int

  """Number of required approvals."""
  requiredApprovals: Int

  """Status of the approval summary."""
  status: DeploymentApprovalSummaryStatus

  """User details. Present if it's user specific access control."""
  user: UserCore
}

"""The connection type for ProtectedEnvironment."""
type ProtectedEnvironmentConnection {
  """A list of edges."""
  edges: [ProtectedEnvironmentEdge]

  """A list of nodes."""
  nodes: [ProtectedEnvironment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""
Which group, user or role is allowed to execute deployments to the environment.
"""
type ProtectedEnvironmentDeployAccessLevel {
  """Role details. Present if it's role specific access control."""
  accessLevel: AccessLevel

  """Group details. Present if it's group specific access control."""
  group: Group

  """User details. Present if it's user specific access control."""
  user: UserCore
}

"""The connection type for ProtectedEnvironmentDeployAccessLevel."""
type ProtectedEnvironmentDeployAccessLevelConnection {
  """A list of edges."""
  edges: [ProtectedEnvironmentDeployAccessLevelEdge]

  """A list of nodes."""
  nodes: [ProtectedEnvironmentDeployAccessLevel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProtectedEnvironmentDeployAccessLevelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProtectedEnvironmentDeployAccessLevel
}

"""An edge in a connection."""
type ProtectedEnvironmentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ProtectedEnvironment
}

"""
Defines which user roles, users, or groups can push to a protected branch.
"""
type PushAccessLevel {
  """GitLab::Access level."""
  accessLevel: Int!

  """Human readable representation for the access level."""
  accessLevelDescription: String!

  """Deploy key assigned to the access level."""
  deployKey: AccessLevelDeployKey

  """Group associated with the access level."""
  group: AccessLevelGroup

  """User associated with the access level."""
  user: AccessLevelUser
}

"""The connection type for PushAccessLevel."""
type PushAccessLevelConnection {
  """A list of edges."""
  edges: [PushAccessLevelEdge]

  """A list of nodes."""
  nodes: [PushAccessLevel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PushAccessLevelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PushAccessLevel
}

"""
Defines which user roles, users, deploy keys, or groups can push to a protected branch.
"""
input PushAccessLevelInput {
  """Access level allowed to perform action."""
  accessLevel: Int

  """User associated with the access level."""
  userId: UserID

  """Group associated with the access level."""
  groupId: GroupID

  """Deploy key assigned to the access level."""
  deployKeyId: DeployKeyID
}

"""Commit details associated with a push event."""
type PushEventCommit {
  """Number of commits in the push."""
  count: Int!

  """SHA of the ref tip before the push. `null` when the ref was created."""
  from: String

  """Title of the most recent commit in the push."""
  title: String

  """SHA of the ref tip after the push. `null` when the ref was removed."""
  to: String
}

"""Represents the payload of a push event."""
type PushEventPayload {
  """Action performed on the ref. One of `created`, `removed`, or `pushed`."""
  action: String!

  """Commit details for the push."""
  commit: PushEventCommit!

  """Ref (branch or tag) involved in the push."""
  ref: PushEventRef!
}

"""Ref (branch or tag) involved in a push event."""
type PushEventRef {
  """Number of refs pushed when more than one ref was pushed at once."""
  count: Int

  """Name of the ref (branch or tag) that was pushed."""
  name: String

  """Type of the ref. One of `branch` or `tag`."""
  type: String!
}

"""Represents rules that commit pushes must follow."""
type PushRules {
  """All commit author emails must match the regular expression."""
  authorEmailRegex: String

  """All branch names must match the regular expression."""
  branchNameRegex: String

  """
  Only allow commits where the committer email matches a verified GitLab user email.
  """
  commitCommitterCheck: Boolean!

  """Only allow commits where the author name matches the GitLab user name."""
  commitCommitterNameCheck: Boolean!

  """No commit message is allowed to match the regular expression."""
  commitMessageNegativeRegex: String

  """All commit messages must match the regular expression."""
  commitMessageRegex: String

  """Deny deleting a tag with `git push`."""
  denyDeleteTag: Boolean

  """All committed filenames must not match the regular expression."""
  fileNameRegex: String

  """Maximum file size (MB)."""
  maxFileSize: Int

  """Restrict commits by author (email) to existing GitLab users."""
  memberCheck: Boolean

  """GitLab rejects any files that are likely to contain secrets."""
  preventSecrets: Boolean

  """Reject commit when it is not DCO certified."""
  rejectNonDcoCommits: Boolean!

  """Reject commit when it is not signed through GPG."""
  rejectUnsignedCommits: Boolean!
}

"""Pypi metadata"""
type PypiMetadata {
  """Author email address(es) in RFC-822 format."""
  authorEmail: String

  """Longer description that can run to several paragraphs."""
  description: String

  """Markup syntax used in the description field."""
  descriptionContentType: String

  """ID of the metadatum."""
  id: PackagesPypiMetadatumID!

  """List of keywords, separated by commas."""
  keywords: String

  """Metadata version."""
  metadataVersion: String

  """Required Python version of the Pypi package."""
  requiredPython: String

  """One-line summary of the description."""
  summary: String
}

type Query {
  """
  Find an abuse report. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  abuseReport(
    """ID of the abuse report."""
    id: AbuseReportID!
  ): AbuseReport @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """
  List of permissions for fine-grained access tokens Introduced in GitLab 18.6: **Status**: Experiment.
  """
  accessTokenPermissions: [AccessTokenPermission!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Retrieve all active add-on purchases. This query can be used in GitLab.com and self-managed environments.
  """
  addOnPurchases(
    """ID of namespace that the add-ons were purchased for."""
    namespaceId: NamespaceID
  ): [AddOnPurchase!]

  """
  Find groups visible to the current admin. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  adminGroups(
    """Filter groups by IDs."""
    ids: [ID!]

    """Only include top-level groups."""
    topLevelOnly: Boolean = false

    """Only include groups where the current user has an owner role."""
    ownedOnly: Boolean = false

    """Search query for group name or group full path."""
    search: String

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc`
    """
    sort: String = "name_asc"

    """Full path of the parent group."""
    parentPath: ID

    """
    When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
    Unauthenticated requests always return all public groups. The `owned_only` argument takes precedence.
    
    """
    allAvailable: Boolean = true

    """Date when the group was marked for deletion."""
    markedForDeletionOn: Date

    """
    When `nil` (default value), returns all groups. When `true`, returns only
    groups that are not pending deletion. When `false`, only returns groups that
    are pending deletion.
    """
    active: Boolean = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupInterfaceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Finds a single admin custom role for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  adminMemberRole(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum
  ): AdminMemberRole @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  List of all admin customizable permissions. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  adminMemberRolePermissions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableAdminPermissionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Admin custom roles available for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  adminMemberRoles(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AdminMemberRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Find projects visible to the current admin. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  adminProjects(
    """Return only projects that the current user is a member of."""
    membership: Boolean

    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """Include namespace in project search."""
    searchNamespaces: Boolean

    """Filter projects by topics."""
    topics: [String!]

    """Return only personal projects."""
    personal: Boolean

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example:
    `id_desc` or `name_asc`. Defaults to `id_desc`, or `similarity` if search used.
    """
    sort: String = null

    """Filter projects by their namespace's full path (group or user)."""
    namespacePath: ID

    """Filter projects by IDs."""
    ids: [ID!]

    """
    Filter projects by full paths. You cannot provide more than 50 full paths.
    """
    fullPaths: [String!]

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Filter projects by archived status."""
    archived: ProjectArchived

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """
    Return only projects that are trending. Deprecated in GitLab 18.8: No longer
    functional. Underlying feature was removed in 19.0.
    """
    trending: Boolean

    """Return only projects marked for deletion."""
    aimedForDeletion: Boolean

    """Exclude projects that are marked for deletion."""
    notAimedForDeletion: Boolean

    """Date when the project was marked for deletion."""
    markedForDeletionOn: Date

    """Filters by projects that are not archived and not marked for deletion."""
    active: Boolean

    """Filter projects by visibility level."""
    visibilityLevel: VisibilityLevelsEnum

    """
    Return only projects where the last repository check failed. Only available for administrators.
    """
    lastRepositoryCheckFailed: Boolean

    """Include hidden projects."""
    includeHidden: Boolean

    """
    Include only projects eligible for the specified GitLab Duo licensed
    feature. Results are automatically filtered to projects where the user has
    the Maintainer or Owner role. Introduced in GitLab 18.11: **Status**: Experiment.
    """
    duoLicensedFeature: DuoLicensedFeature

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectInterfaceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Get flow configuration for an AI Catalog agent. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  aiCatalogAgentFlowConfig(
    """Global ID of the agent version to use."""
    agentVersionId: AiCatalogItemVersionID!

    """Type of flow configuration to generate."""
    flowConfigType: AiCatalogFlowConfigType!
  ): String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  AI Catalog flows available to enable for a project. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  aiCatalogAvailableFlowsForProject(
    """Project ID to retrieve available AI Catalog flows for."""
    projectId: ProjectID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogItemConsumerConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  List of AI Catalog built-in tools. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  aiCatalogBuiltInTools(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogBuiltInToolConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  AI Catalog items configured for use. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  aiCatalogConfiguredItems(
    """Group ID to retrieve configured AI Catalog items for."""
    groupId: GroupID

    """Include configured AI Catalog items inherited from parent groups."""
    includeInherited: Boolean = false

    """
    Include configured foundational AI Catalog items. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    includeFoundationalConsumers: Boolean = false

    """Item ID to retrieve configured AI Catalog items for."""
    itemId: AiCatalogItemID

    """Project ID to retrieve configured AI Catalog items for."""
    projectId: ProjectID

    """
    Project ID to filter AI Catalog item consumers. When provided with group_id,
    returns only consumers whose associated items are configurable within the
    project (i.e., group-enabled items that are public or owned by the project).
    Excludes consumers for items that are private to other projects.
    """
    configurableForProjectId: ProjectID

    """Filter by foundational flow reference."""
    foundationalFlowReference: String

    """Type of items to retrieve."""
    itemType: AiCatalogItemType

    """Types of items to retrieve."""
    itemTypes: [AiCatalogItemType!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogItemConsumerConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  List of AI Catalog items, including foundational items. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiCatalogCustomAndFoundationalItems(
    """Types of items to retrieve."""
    itemTypes: [AiCatalogItemType!]

    """Search items by name and description."""
    search: String

    """Sort order of items."""
    sort: AiCatalogItemsSort = CATALOG_PRIORITY

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogCustomAndFoundationalItemConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Find an AI Catalog item. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  aiCatalogItem(
    """Global ID of the catalog item to find."""
    id: AiCatalogItemID!

    """
    Whether to show the item if it has been soft-deleted. Defaults to `false`.
    """
    showSoftDeleted: Boolean = false
  ): AiCatalogItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Find a single AI Catalog item consumer by ID. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  aiCatalogItemConsumer(
    """Global ID of the AI Catalog item consumer."""
    id: AiCatalogItemConsumerID!
  ): AiCatalogItemConsumer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Public AI Catalog item versions. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  aiCatalogItemVersions(
    """Item versions created after the timestamp."""
    createdAfter: Time

    """
    Whether to exclude deprecated versions from the results. Defaults to true.
    """
    excludeDeprecated: Boolean = true

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogItemVersionConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  List of AI Catalog items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  aiCatalogItems(
    """Type of items to retrieve."""
    itemType: AiCatalogItemType

    """Types of items to retrieve."""
    itemTypes: [AiCatalogItemType!]

    """Search items by name and description."""
    search: String

    """Sort order of items."""
    sort: AiCatalogItemsSort = CATALOG_PRIORITY

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogItemConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Find an AI Catalog MCP server by ID. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  aiCatalogMcpServer(
    """Global ID of the MCP server."""
    id: AiCatalogMcpServerID!
  ): AiCatalogMcpServer @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  List of AI Catalog MCP servers. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  aiCatalogMcpServers(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogMcpServerConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  List of MCP tools dynamically discovered from the GitLab MCP server. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  aiCatalogMcpTools(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiCatalogMcpToolConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Get available models for Duo Agentic Chat Introduced in GitLab 18.4: **Status**: Experiment.
  """
  aiChatAvailableModels(
    """Global ID of the top-level namespace the user is acting on."""
    rootNamespaceId: GroupID

    """Global ID of the namespace the user is acting on. """
    namespaceId: GroupID

    """Global ID of the project the user is acting on."""
    projectId: ProjectID
  ): AvailableModels @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Get available GitLab Duo Chat context presets for the current user for a specific URL
  """
  aiChatContextPresets(
    """Number of questions for the default screen."""
    questionCount: Int

    """URL of the page the user is currently on."""
    url: String

    """Global ID of the resource from the current page."""
    resourceId: AiModelID

    """Global ID of the project the user is acting on."""
    projectId: ProjectID
  ): ContextPreset

  """
  Get projects that can be included by the current user in a GitLab Duo Chat
  context Introduced in GitLab 18.7: **Status**: Experiment.
  """
  aiChatIncludedProjects(
    """
    Search query, which can be for the project name or path. Minimum 3 characters.
    """
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  List conversation threads of AI features. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  aiConversationThreads(
    """Conversation type of the thread."""
    conversationType: AiConversationsThreadsConversationType

    """Id of the thread."""
    id: AiConversationThreadID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiConversationsThreadConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  List of allowed or denied domains for AI features. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiDomainSettings(
    """Type of domain setting to retrieve."""
    domainSettingType: AiDomainSettingType!

    """Filter domains by substring match."""
    search: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): StringConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  List of configurable AI features. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  aiFeatureSettings(
    """Global ID of the self-hosted model."""
    selfHostedModelId: AiSelfHostedModelID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiFeatureSettingConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  Core agent in GitLab. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  aiFoundationalChatAgent(
    """Reference to the foundational chat agent."""
    reference: String!
  ): AiFoundationalChatAgent @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Core agents in GitLab. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  aiFoundationalChatAgents(
    """Global ID of the project where the chat is present."""
    projectId: ProjectID

    """Global ID of the namespace where the chat is present."""
    namespaceId: NamespaceID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiFoundationalChatAgentConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Find GitLab Duo Chat messages. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  aiMessages(
    """Array of request IDs to fetch."""
    requestIds: [ID!]

    """Array of roles to fetch."""
    roles: [AiMessageRole!]

    """Conversation type of the thread."""
    conversationType: AiConversationsThreadsConversationType

    """
    Global Id of the existing thread.If it is not specified, the last thread for
    the specified conversation_type will be retrieved.
    """
    threadId: AiConversationThreadID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiMessageConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """
  List of configurable AI features for namespace Model Selection. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  aiModelSelectionNamespaceSettings(
    """Group for the model selection."""
    groupId: GroupID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiModelSelectionNamespaceFeatureSettingConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Returns the self-hosted model if an ID is provided, otherwise returns all
  models. Introduced in GitLab 17.1: **Status**: Experiment.
  """
  aiSelfHostedModels(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

    """Global ID of a self-hosted model."""
    id: AiSelfHostedModelID
  ): AiSelfHostedModelConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """
  Get available GitLab Duo Chat slash commands for the current user for a specific URL
  """
  aiSlashCommands(
    """URL of the page the user is currently on."""
    url: String!
  ): [SlashCommand!]

  """
  AI tool governance rules for a namespace. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  aiToolRules(
    """Full path of the root namespace to fetch tool rules for."""
    fullPath: ID!

    """
    Full path of the project to fetch effective tool rules for. When provided,
    returns the merged effective rules for the project, applying
    most-restrictive-wins across namespace and project rules.
    """
    projectPath: ID

    """Case-insensitive text search on tool name or display name."""
    search: String

    """Filter tools by action type."""
    actionType: AiToolActionType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AiToolRuleConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Instance level AI-related data. Admins only. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  aiUsageData: AiInstanceUsageData @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Definitions for all audit events available on the instance."""
  auditEventDefinitions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AuditEventDefinitionConnection!

  """
  Instance-level Amazon S3 configurations for audit events. Deprecated in GitLab
  18.10: Use `auditEventsInstanceStreamingDestinations` with `amazonS3` category instead.
  """
  auditEventsInstanceAmazonS3Configurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): InstanceAmazonS3ConfigurationTypeConnection @deprecated(reason: "Use `auditEventsInstanceStreamingDestinations` with `amazonS3` category instead. Deprecated in GitLab 18.10.")

  """
  Instance-level external audit event streaming destinations. Introduced in GitLab 16.11: **Status**: Experiment.
  """
  auditEventsInstanceStreamingDestinations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): InstanceAuditEventStreamingDestinationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.")

  """
  Find code visible to the current user Introduced in GitLab 17.2: **Status**: Experiment.
  """
  blobSearch(
    """
    Maximum chunks per file. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    chunkCount: Int = 3

    """
    Excludes forked projects in the search. Always false for project search.
    Default is true. Introduced in GitLab 17.11: **Status**: Experiment.
    """
    excludeForks: Boolean = true

    """Group to search in. Introduced in GitLab 17.2: **Status**: Experiment."""
    groupId: GroupID

    """
    Includes archived projects in the search. Always true for project search.
    Default is false. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    includeArchived: Boolean = false

    """
    Page number to fetch the results. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    page: Int = 1

    """
    Number of results per page. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    perPage: Int = 20

    """
    Project to search in. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    projectId: ProjectID

    """
    Uses the regular expression search mode. Default is false. Introduced in GitLab 17.3: **Status**: Experiment.
    """
    regex: Boolean = false

    """
    Repository reference to search in. Introduced in GitLab 17.2: **Status**: Experiment.
    """
    repositoryRef: String

    """Searched term."""
    search: String!
  ): BlobSearch @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Find an issue board list."""
  boardList(
    """Global ID of the list."""
    id: ListID!

    """Filters applied when getting issue metadata in the board list."""
    issueFilters: BoardIssueInput
  ): BoardList

  """CI related settings that apply to the entire instance."""
  ciApplicationSettings: CiApplicationSettings

  """
  A single CI/CD Catalog resource visible to an authorized user Introduced in GitLab 16.1: **Status**: Experiment.
  """
  ciCatalogResource(
    """CI/CD Catalog resource global ID."""
    id: CiCatalogResourceID

    """CI/CD Catalog resource full path."""
    fullPath: ID
  ): CiCatalogResource @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """
  All CI/CD Catalog resources under a common namespace, visible to an authorized
  user Introduced in GitLab 15.11: **Status**: Experiment.
  """
  ciCatalogResources(
    """Scope of the returned catalog resources."""
    scope: CiCatalogResourceScope = ALL

    """Search term to filter the catalog resources by name or description."""
    search: String

    """Sort catalog resources by given criteria."""
    sort: CiCatalogResourceSort

    """Filter catalog resources by verification level."""
    verificationLevel: CiCatalogResourceVerificationLevel

    """Filter catalog resources by project topic names."""
    topics: [String!]

    """
    Minimum access level required for the user on the catalog resource project.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter catalog resources to those whose project namespace matches one of the given groups.
    """
    groupIds: [GroupID!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiCatalogResourceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")

  """
  Linted and processed contents of a CI config.
  Should not be requested more than once per request. Deprecated in GitLab 18.1:
  Use CiLint mutation:
  <https://docs.gitlab.com/api/graphql/reference/#mutationcilint>.
  """
  ciConfig(
    """Project of the CI config."""
    projectPath: ID!

    """Sha for the pipeline."""
    sha: String

    """Contents of `.gitlab-ci.yml`."""
    content: String!

    """Run pipeline creation simulation, or only do static check."""
    dryRun: Boolean

    """
    If the provided `sha` is found in the project's repository but is not
    associated with a Git reference (a detached commit), the verification fails
    and a validation error is returned. Otherwise, verification passes, even if
    the `sha` is invalid. Set to `true` to skip this verification process.
    Introduced in GitLab 16.5: **Status**: Experiment.
    """
    skipVerifyProjectSha: Boolean
  ): CiConfig @deprecated(reason: "Use CiLint mutation: <https://docs.gitlab.com/api/graphql/reference/#mutationcilint>. Deprecated in GitLab 18.1.")

  """Returns available filters for GitLab Dedicated runner usage data."""
  ciDedicatedHostedRunnerFilters: CiDedicatedHostedRunnerFilters

  """
  Compute usage data for runners across namespaces on GitLab Dedicated. Defaults
  to the current year if no year or billing month is specified. Ultimate only.
  """
  ciDedicatedHostedRunnerUsage(
    """First day of the month to retrieve data for."""
    billingMonth: Date

    """Year to retrieve data for."""
    year: Int

    """Groups usage data by instance aggregate or root namespace."""
    grouping: GroupingEnum

    """Runner ID to retrieve data for."""
    runnerId: CiRunnerID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiDedicatedHostedRunnerUsageConnection

  """
  Compute usage data for projects in a namespace for a given month. Returns
  project usage independent of whether a namespace-level usage record exists.
  """
  ciMinutesProjectMonthlyUsage(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

    """Global ID of the Namespace for the project compute usage."""
    namespaceId: NamespaceID

    """
    Date for which to retrieve the usage data, should be the first day of a month. Defaults to the current month.
    """
    date: Date
  ): CiMinutesProjectMonthlyUsageConnection

  """Compute usage data for a namespace."""
  ciMinutesUsage(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

    """Global ID of the Namespace for the monthly compute usage."""
    namespaceId: NamespaceID

    """
    Date for which to retrieve the usage data, should be the first day of a month.
    """
    date: Date
  ): CiMinutesNamespaceMonthlyUsageConnection

  """Stage belonging to a CI pipeline."""
  ciPipelineStage(
    """Global ID of the CI stage."""
    id: CiStageID!
  ): CiStage

  """
  Time taken for CI jobs to be picked up by runner by percentile. Enable the ClickHouse database backend to use this query.
  """
  ciQueueingHistory(
    """Start of the requested time. Defaults to three hours ago."""
    fromTime: Time

    """End of the requested time. Defaults to the current time."""
    toTime: Time

    """Filter jobs by the type of runner that executed them."""
    runnerType: CiRunnerType
  ): QueueingDelayHistory

  """List of the instance's CI/CD variables."""
  ciVariables(
    """Sort order of results."""
    sort: CiVariableSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiInstanceVariableConnection

  """
  Run a series of status checks for Cloud Connector features. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  cloudConnectorStatus: CloudConnectorStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """List of available compliance framework templates."""
  complianceFrameworkTemplates(
    """Filter by template ID."""
    id: ComplianceManagementFrameworksTemplateRegistryTemplateID
  ): [ComplianceFrameworkTemplate!]

  """Get the list of all the compliance requirement controls."""
  complianceRequirementControls: ComplianceRequirementControl

  """Find a container repository."""
  containerRepository(
    """Global ID of the container repository."""
    id: ContainerRepositoryID!
  ): ContainerRepositoryDetails

  """Fields related to the current license."""
  currentLicense: CurrentLicense

  """Get information about current user."""
  currentUser: CurrentUser

  """Find a custom dashboard by ID."""
  customDashboard(
    """Dashboard ID."""
    id: AnalyticsCustomDashboardsDashboardID!
  ): CustomDashboard

  """Find custom dashboards for an organization."""
  customDashboards(
    """
    Organization ID to filter dashboards. Defaults to the current organization if not provided.
    """
    organizationId: OrganizationsOrganizationID

    """Filter by namespace."""
    namespaceId: NamespaceID

    """Filter by dashboard creator."""
    createdById: UserID

    """Filter dashboards by name."""
    search: String

    """Filter dashboards by scope."""
    scope: CustomDashboardScope = ALL

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomDashboardInterfaceConnection

  """
  Find a custom field by its ID. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customField(
    """Global ID of the custom field."""
    id: IssuablesCustomFieldID!
  ): CustomField @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Find a GitLab-provided system dashboard by slug."""
  customSystemDashboard(
    """Slug of the system dashboard (e.g. "duo_and_sdlc_trends")."""
    slug: String!
  ): CustomSystemDashboard

  """Find a dependency."""
  dependency(
    """Global ID of the Dependency."""
    id: SbomOccurrenceID!
  ): Dependency

  """Fields related to design management."""
  designManagement: DesignManagement!

  """
  Get configured DevOps adoption namespaces. **Status**: Beta. This endpoint is subject to change without notice.
  """
  devopsAdoptionEnabledNamespaces(
    """Filter by display namespace."""
    displayNamespaceId: NamespaceID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DevopsAdoptionEnabledNamespaceConnection

  """
  List namespaces suitable to be set as default namespace. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  duoDefaultNamespaceCandidates(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Get GitLab Duo settings Introduced in GitLab 17.9: **Status**: Experiment.
  """
  duoSettings: DuoSettings @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  List the events for a Duo Agent Platform. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  duoWorkflowEvents(
    """Array of request IDs to fetch."""
    workflowId: AiDuoWorkflowsWorkflowID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowEventConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  List the workflows owned by the current user. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  duoWorkflowWorkflows(
    """Full path of the project that contains the flows."""
    projectPath: ID

    """
    Type of flow to filter by (for example, software_development or foundational_chat_agents).
    """
    type: String

    """
    Types of flows to exclude (for example, ["software_development", "chat"]).
    """
    excludeTypes: [String!]

    """Sort flows by the criteria."""
    sort: DuoWorkflowsWorkflowSort = created_desc

    """Environment, for example, IDE or web."""
    environment: WorkflowEnvironment

    """Flow ID to filter by."""
    workflowId: AiDuoWorkflowsWorkflowID

    """Filter flows by a list of IDs."""
    ids: [AiDuoWorkflowsWorkflowID!]

    """Flow title or goal to search for."""
    search: String

    """Status group to filter flow sessions by."""
    statusGroup: DuoWorkflowStatusGroup

    """Filters flows updated after a given date."""
    updatedAfter: ISO8601DateTime

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Testing endpoint to validate the API with"""
  echo(
    """Text to echo back."""
    text: String!
  ): String!
  epicBoardList(
    """Global ID of the list."""
    id: BoardsEpicListID!

    """Filters applied when getting epic metadata in the epic board list."""
    epicFilters: EpicFilters
  ): EpicList

  """
  Check if a feature flag is enabled. External API consumers should read the
  [feature flag guidance for external API consumers](https://docs.gitlab.com/development/feature_flags/#do-not-use-feature-flags-in-external-api-consumers)
  before using this field. Deprecated in GitLab 17.4: Replaced with
  metadata.featureFlags.
  """
  featureFlagEnabled(
    """Name of the feature flag."""
    name: String!
  ): Boolean! @deprecated(reason: "Replaced with metadata.featureFlags. Deprecated in GitLab 17.4.")

  """A user's frecently visited groups"""
  frecentGroups: [Group!]

  """A user's frecently visited projects"""
  frecentProjects: [Project!]

  """Find a Geo node."""
  geoNode(
    """Name of the Geo node. Defaults to the current Geo node name."""
    name: String
  ): GeoNode

  """
  Whether GitLab credits are available for the current user. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  gitlabCreditsAvailable(
    """Global ID of the namespace to check credits for."""
    namespaceId: NamespaceID
  ): Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Whether Ona is enabled in application settings."""
  gitpodEnabled: Boolean

  """
  Details about an artifact in the Google Artifact Registry. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  googleCloudArtifactRegistryRepositoryArtifact(
    """ID of the Google Cloud project."""
    googleCloudProjectId: String!

    """Location of the Artifact Registry repository."""
    location: String!

    """Repository on the Google Artifact Registry."""
    repository: String!

    """Name of the image in the Google Artifact Registry."""
    image: String!

    """Full project path."""
    projectPath: ID!
  ): GoogleCloudArtifactRegistryArtifactDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Find a group."""
  group(
    """Full path of the group. For example, `gitlab-org/gitlab-foss`."""
    fullPath: ID!
  ): Group

  """
  View a specific group secret. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  groupSecret(
    """Group the secret belongs to."""
    groupPath: ID!

    """Name of the group secret to view."""
    name: String!
  ): GroupSecret @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """List group secrets. Introduced in GitLab 18.9: **Status**: Experiment."""
  groupSecrets(
    """Group the secrets belong to."""
    groupPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupSecretConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Total number of secrets in a group. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  groupSecretsCount(
    """Full path of the group."""
    groupPath: ID!
  ): Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Find a group secrets manager. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupSecretsManager(
    """Group of the secrets manager."""
    groupPath: ID!
  ): GroupSecretsManager @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  List group secrets that need to be rotated. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  groupSecretsNeedingRotation(
    """Group the secrets belong to."""
    groupPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupSecretConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  List group secrets permissions. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  groupSecretsPermissions(
    """Group the secrets permission belong to."""
    groupPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupSecretsPermissionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Find groups."""
  groups(
    """Filter groups by IDs."""
    ids: [ID!]

    """Only include top-level groups."""
    topLevelOnly: Boolean = false

    """Only include groups where the current user has an owner role."""
    ownedOnly: Boolean = false

    """Search query for group name or group full path."""
    search: String

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc`
    """
    sort: String = "name_asc"

    """Full path of the parent group."""
    parentPath: ID

    """
    When `true`, returns all accessible groups. When `false`, returns only groups where the user is a member.
    Unauthenticated requests always return all public groups. The `owned_only` argument takes precedence.
    
    """
    allAvailable: Boolean = true

    """Date when the group was marked for deletion."""
    markedForDeletionOn: Date

    """
    When `nil` (default value), returns all groups. When `true`, returns only
    groups that are not pending deletion. When `false`, only returns groups that
    are pending deletion.
    """
    active: Boolean = null

    """
    Return only groups with Knowledge Graph enabled. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    withKnowledgeGraphEnabled: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """
  Instance level external audit event destinations. Deprecated in GitLab 18.10:
  Use `auditEventsInstanceStreamingDestinations` instead.
  """
  instanceExternalAuditEventDestinations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): InstanceExternalAuditEventDestinationConnection @deprecated(reason: "Use `auditEventsInstanceStreamingDestinations` instead. Deprecated in GitLab 18.10.")

  """
  Instance level google cloud logging configurations. Deprecated in GitLab
  18.10: Use `auditEventsInstanceStreamingDestinations` with `gcpLogging`
  category instead.
  """
  instanceGoogleCloudLoggingConfigurations(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): InstanceGoogleCloudLoggingConfigurationTypeConnection @deprecated(reason: "Use `auditEventsInstanceStreamingDestinations` with `gcpLogging` category instead. Deprecated in GitLab 18.10.")

  """
  Check if Secrets Manager is enrolled at the instance level. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  instanceSecretsManagerEnrollment: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Fields related to Instance Security Dashboard."""
  instanceSecurityDashboard: InstanceSecurityDashboard
  integrationExclusions(
    """Type of integration."""
    integrationName: IntegrationType!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IntegrationExclusionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """Find an issue."""
  issue(
    """Global ID of the issue."""
    id: IssueID!
  ): Issue

  """
  Find issues visible to the current user. At least one filter must be provided.
  Introduced in GitLab 15.6: **Status**: Experiment.
  """
  issues(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """
    Username of a user assigned to the issue. Deprecated in GitLab 13.11: Use `assigneeUsernames`.
    """
    assigneeUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the author of the issue."""
    authorUsername: String

    """Issues closed after the date."""
    closedAfter: Time

    """Issues closed before the date."""
    closedBefore: Time

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Issues created after the date."""
    createdAfter: Time

    """Issues created before the date."""
    createdBefore: Time

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Return issues due on or after the given time."""
    dueAfter: Time

    """Return issues due on or before the given time."""
    dueBefore: Time

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to the issue."""
    labelName: [String]

    """Milestone applied to the issue."""
    milestoneTitle: [String]

    """Filter issues by milestone ID wildcard."""
    milestoneWildcardId: MilestoneWildcardId

    """
    Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported.
    """
    myReactionEmoji: String

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """List of arguments with inclusive OR."""
    or: UnionedIssueFilterInput

    """Issues the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """Issues updated after the date."""
    updatedAfter: Time

    """Issues updated before the date."""
    updatedBefore: Time

    """Filter issues by work item type global IDs."""
    workItemTypeIds: [WorkItemsTypeID!]

    """
    Filter by custom fields. Introduced in GitLab 17.10: **Status**: Experiment.
    """
    customField: [WorkItemWidgetCustomFieldFilterInputType!]

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Filter by epic ID wildcard. Incompatible with epicId."""
    epicWildcardId: EpicWildcardId

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration title."""
    iterationTitle: String

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """Filter by a list of iteration cadence IDs."""
    iterationCadenceId: [IterationsCadenceID!]

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Filter by weight ID wildcard. Incompatible with weight."""
    weightWildcardId: WeightWildcardId

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """Filter by status. Introduced in GitLab 18.0: **Status**: Experiment."""
    status: WorkItemWidgetStatusFilterInput

    """Sort issues by the criteria."""
    sort: IssueSort = created_desc

    """Whether to include issues from archived projects. Defaults to `false`."""
    includeArchived: Boolean = false

    """Current state of the issue."""
    state: IssuableState

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): IssueConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")

  """Find an iteration."""
  iteration(
    """Find an iteration by its ID."""
    id: IterationID!
  ): Iteration

  """
  All jobs on this GitLab instance. Returns an empty result for users without administrator access.
  """
  jobs(
    """Filter jobs by status."""
    statuses: [CiJobStatus!]

    """
    Filter jobs by runner type if feature flag `:admin_jobs_filter_runner_type`
    is enabled. Introduced in GitLab 16.4: **Status**: Experiment.
    """
    runnerTypes: [CiRunnerType!]

    """
    ID of a runner that matches the requirements of the jobs returned (normally
    used when filtering pending jobs). Introduced in GitLab 18.1: **Status**: Experiment.
    """
    compatibleRunnerId: CiRunnerID

    """
    Filter jobs by failure reason. Currently only `RUNNER_SYSTEM_FAILURE`
    together with `runnerTypes: INSTANCE_TYPE` is supported. Introduced in
    GitLab 16.4: **Status**: Experiment.
    """
    failureReason: CiJobFailureReason

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiJobInterfaceConnection

  """
  LDAP admin links. Available only for GitLab Self-Managed. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  ldapAdminRoleLinks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LdapAdminRoleLinkConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Fields related to entries in the license history."""
  licenseHistoryEntries(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LicenseHistoryEntryConnection

  """
  Finds a single custom role for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  memberRole(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum
  ): MemberRole @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  List of all standard customizable permissions. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  memberRolePermissions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomizableStandardPermissionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """
  Custom roles available for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  memberRoles(
    """Filter for member roles the current user can assign."""
    assignable: Boolean

    """Global ID of the member role to look up."""
    id: MemberRoleID

    """Global IDs of the member role to look up."""
    ids: [MemberRoleID!]

    """Ordering column. Default is NAME."""
    orderBy: MemberRolesOrderBy

    """Ordering column. Default is ASC."""
    sort: SortDirectionEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MemberRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """Find a merge request."""
  mergeRequest(
    """Global ID of the merge request."""
    id: MergeRequestID!
  ): MergeRequest

  """Metadata about GitLab."""
  metadata: Metadata

  """Find a milestone."""
  milestone(
    """Find a milestone by its ID."""
    id: MilestoneID!
  ): Milestone

  """Find a machine learning experiment."""
  mlExperiment(
    """ID of the experiment."""
    id: MlExperimentID!
  ): MlExperiment

  """
  Find machine learning models. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  mlModel(
    """ID of the model."""
    id: MlModelID!
  ): MlModel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """Find a namespace."""
  namespace(
    """Full path of the namespace. For example, `gitlab-org/gitlab-foss`."""
    fullPath: ID!
  ): Namespace

  """
  Check Secrets Manager enrollment for a namespace. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  namespaceSecretsManagerEnrollment(
    """Full path of the namespace."""
    namespacePath: ID!
  ): SecretsManagerEnrollment @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Security-filtered projects for a namespace"""
  namespaceSecurityProjects(
    """Global ID of the namespace."""
    namespaceId: NamespaceID!

    """Search projects by name."""
    search: String

    """Filter projects by vulnerability counts using comparison operators."""
    vulnerabilityCountFilters: [VulnerabilityCountFilterInput!]

    """Filter projects by analyzer type and status."""
    securityAnalyzerFilters: [AnalyzerFilterInput!]

    """Filter projects by security attributes. Up to 20 items."""
    attributeFilters: [AttributeFilterInput!]

    """
    Filter projects by whether they have any configured security scans. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    hasScanners: Boolean

    """
    Filter projects by whether they have any failed security scans. Warnings
    have no effect on this filter. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    hasFailedOrWarning: Boolean

    """
    Filter projects by whether they have any failed security scans. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    hasStale: Boolean

    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Find a note. Introduced in GitLab 15.9: **Status**: Experiment."""
  note(
    """Global ID of the note."""
    id: NoteID!
  ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """
  Check if OpenBao instance is healthy and reachable. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  openbaoHealth: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Find an organization. Introduced in GitLab 16.4: **Status**: Experiment.
  """
  organization(
    """ID of the organization."""
    id: OrganizationsOrganizationID
  ): Organization @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.")

  """List organizations. Introduced in GitLab 16.8: **Status**: Experiment."""
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """
    Excludes the Default organization from results. Introduced in GitLab 19.1: **Status**: Experiment.
    """
    excludeDefault: Boolean = false

    """
    Filter organizations by state. Introduced in GitLab 19.1: **Status**: Experiment.
    """
    state: OrganizationState

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.")

  """
  Find a package. This field can only be resolved for one query in any single
  request. Returns `null` if a package has no `default` status.
  """
  package(
    """Global ID of the package."""
    id: PackagesPackageID!
  ): PackageDetailsType

  """
  Get multiple package metadata advisories. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  packageMetadataAdvisories(
    """Array of advisory identifiers."""
    identifiers: [String!]!

    """Filter advisories created after the datetime."""
    createdAfter: ISO8601DateTime

    """Filter advisories updated after the datetime."""
    updatedAfter: ISO8601DateTime

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PackageMetadataAdvisoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Get a package metadata advisory. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  packageMetadataAdvisory(
    """Global ID of the advisory."""
    id: PackageMetadataAdvisoryID

    """Identifier of the advisory."""
    identifier: String
  ): PackageMetadataAdvisory @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Find a pipeline execution schedule policy test run by ID. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  pipelineExecutionSchedulePolicyTestRun(
    """Global ID of the policy schedule test run."""
    id: SecurityScheduledPipelineExecutionPolicyTestRunID!
  ): PolicyScheduleTestRun @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Find a project."""
  project(
    """Full path of the project. For example, `gitlab-org/gitlab-foss`."""
    fullPath: ID!
  ): Project

  """Find a project compliance violation."""
  projectComplianceViolation(
    """Global ID of the project compliance violation."""
    id: ComplianceManagementProjectsComplianceViolationID!
  ): ProjectComplianceViolation

  """
  View a specific project secret. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  projectSecret(
    """Project the secrets belong to."""
    projectPath: ID!

    """Name of the project secret to view."""
    name: String!
  ): ProjectSecret @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  List project secrets. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  projectSecrets(
    """Project the secrets belong to."""
    projectPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectSecretConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Total number of secrets in a project. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  projectSecretsCount(
    """Full path of the project."""
    projectPath: ID!
  ): Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Find a project secrets manager. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  projectSecretsManager(
    """Project of the secrets manager."""
    projectPath: ID!
  ): ProjectSecretsManager @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """
  List project secrets that need to be rotated. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  projectSecretsNeedingRotation(
    """Project the secrets belong to."""
    projectPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectSecretConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  List project secrets permissions. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  projectSecretsPermissions(
    """Project the secrets permissions belong to."""
    projectPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ProjectSecretsPermissionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Find projects visible to the current user."""
  projects(
    """Return only projects that the current user is a member of."""
    membership: Boolean

    """
    Search query, which can be for the project name, a path, or a description.
    """
    search: String

    """Include namespace in project search."""
    searchNamespaces: Boolean

    """Filter projects by topics."""
    topics: [String!]

    """Return only personal projects."""
    personal: Boolean

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example:
    `id_desc` or `name_asc`. Defaults to `id_desc`, or `similarity` if search used.
    """
    sort: String = null

    """Filter projects by their namespace's full path (group or user)."""
    namespacePath: ID

    """Filter projects by IDs."""
    ids: [ID!]

    """
    Filter projects by full paths. You cannot provide more than 50 full paths.
    """
    fullPaths: [String!]

    """Return only projects with issues enabled."""
    withIssuesEnabled: Boolean

    """Return only projects with merge requests enabled."""
    withMergeRequestsEnabled: Boolean

    """Filter projects by archived status."""
    archived: ProjectArchived

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """
    Return only projects that are trending. Deprecated in GitLab 18.8: No longer
    functional. Underlying feature was removed in 19.0.
    """
    trending: Boolean

    """Return only projects marked for deletion."""
    aimedForDeletion: Boolean

    """Exclude projects that are marked for deletion."""
    notAimedForDeletion: Boolean

    """Date when the project was marked for deletion."""
    markedForDeletionOn: Date

    """Filters by projects that are not archived and not marked for deletion."""
    active: Boolean

    """Filter projects by visibility level."""
    visibilityLevel: VisibilityLevelsEnum

    """
    Return only projects where the last repository check failed. Only available for administrators.
    """
    lastRepositoryCheckFailed: Boolean

    """Include hidden projects."""
    includeHidden: Boolean

    """
    Include only projects eligible for the specified GitLab Duo licensed
    feature. Results are automatically filtered to projects where the user has
    the Maintainer or Owner role. Introduced in GitLab 18.11: **Status**: Experiment.
    """
    duoLicensedFeature: DuoLicensedFeature

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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

  """Information about the complexity of the GraphQL query."""
  queryComplexity: QueryComplexity

  """Find a runner."""
  runner(
    """Runner ID."""
    id: CiRunnerID!
  ): CiRunner

  """
  Supported runner platforms. Deprecated in GitLab 15.9: No longer used, use
  gitlab-runner documentation to learn about supported 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 @deprecated(reason: "No longer used, use gitlab-runner documentation to learn about supported platforms. Deprecated in GitLab 15.9.")

  """
  Runner setup instructions. Deprecated in GitLab 15.9: No longer used, use
  gitlab-runner documentation to learn about runner registration commands.
  """
  runnerSetup(
    """Platform to generate the instructions for."""
    platform: String!

    """Architecture to generate the instructions for."""
    architecture: String!

    """
    Project to register the runner for. Deprecated in GitLab 13.11: No longer used.
    """
    projectId: ProjectID

    """
    Group to register the runner for. Deprecated in GitLab 13.11: No longer used.
    """
    groupId: GroupID
  ): RunnerSetup @deprecated(reason: "No longer used, use gitlab-runner documentation to learn about runner registration commands. Deprecated in GitLab 15.9.")

  """
  Runner usage by runner. Enable the ClickHouse database backend to use this query.
  """
  runnerUsage(
    """Filter runners by the type."""
    runnerType: CiRunnerType

    """
    Filter jobs by the full path of the group or project they belong to. For
    example, `gitlab-org` or `gitlab-org/gitlab`. Available only to
    administrators and users with the Maintainer role for the group (when a
    group is specified), or project (when a project is specified). Limited to
    runners from 5000 child projects.
    """
    fullPath: ID

    """
    Start of the requested date frame. Defaults to the start of the previous calendar month.
    """
    fromDate: Date

    """
    End of the requested date frame. Defaults to the end of the previous calendar month.
    """
    toDate: Date

    """
    Maximum number of runners to return. Other runners will be aggregated to a
    `runner: null` entry. Defaults to 5 if unspecified. Maximum of 500.
    """
    runnersLimit: Int = 5
  ): [CiRunnerUsage!]

  """
  Runner usage by project. Enable the ClickHouse database backend to use this query.
  """
  runnerUsageByProject(
    """Filter jobs by the type of runner that executed them."""
    runnerType: CiRunnerType

    """
    Filter jobs based on the full path of the group or project they belong to.
    For example, `gitlab-org` or `gitlab-org/gitlab`. Available only to
    administrators and users with the Maintainer role for the group (when a
    group is specified), or project (when a project is specified). Limited to
    runners from 5000 child projects.
    """
    fullPath: ID

    """
    Start of the requested date frame. Defaults to the start of the previous calendar month.
    """
    fromDate: Date

    """
    End of the requested date frame. Defaults to the end of the previous calendar month.
    """
    toDate: Date

    """
    Maximum number of projects to return. Other projects will be aggregated to a
    `project: null` entry. Defaults to 5 if unspecified. Maximum of 500.
    """
    projectsLimit: Int
  ): [CiRunnerUsageByProject!]

  """
  Get all runners in the GitLab instance (project and shared). Access is restricted to users with administrator access.
  """
  runners(
    """
    Filter runners by `active` (true) or `paused` (false) status. Deprecated in GitLab 14.8: This was renamed.
    """
    active: Boolean

    """Filter runners by `paused` (true) or `active` (false) status."""
    paused: Boolean

    """Filter runners by status."""
    status: CiRunnerStatus

    """Filter runners by type."""
    type: CiRunnerType

    """Filter by tags associated with the runner (comma-separated or array)."""
    tagList: [String!]

    """Filter by full token or partial text in description field."""
    search: String

    """Sort order of results."""
    sort: CiRunnerSort

    """Filter by upgrade status."""
    upgradeStatus: CiRunnerUpgradeStatus

    """Filter runners by creator ID."""
    creatorId: UserID

    """Filter runners by creator username."""
    creatorUsername: String

    """
    Filter runners by version. Runners that contain runner managers with the
    version at the start of the search term are returned. For example, the
    search term '14.' returns runner managers with versions '14.11.1' and '14.2.3'.
    """
    versionPrefix: String

    """
    Filter runners by owning project or group. Introduced in GitLab 17.8: **Status**: Experiment.
    """
    ownerFullPath: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CiRunnerConnection

  """
  List secret permissions. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  secretPermissions(
    """Project the secret permission belong to."""
    projectPath: ID!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SecretPermissionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Security configuration for the project"""
  securityConfiguration(
    """Project to get the security configuration for."""
    projectId: ProjectID!
  ): SecurityConfiguration

  """
  Get the current security policy synchronization status. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  securityPoliciesSyncStatus(
    """ID of the security orchestration policy configuration."""
    policyConfigurationId: SecurityOrchestrationPolicyConfigurationID!
  ): PoliciesSyncUpdated @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Get security scan profile by ID. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  securityScanProfile(
    """Global ID of the security scan profile."""
    id: SecurityScanProfileID!
  ): ScanProfileType! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Users within the self-managed instance who are eligible for add-ons. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  selfManagedAddOnEligibleUsers(
    """Search the user list."""
    search: String

    """Sort the user list."""
    sort: GitlabSubscriptionsUserSort

    """Type of add on to filter the eligible users by."""
    addOnType: GitlabSubscriptionsAddOnType!

    """Global IDs of the add on purchases to find assignments for."""
    addOnPurchaseIds: [GitlabSubscriptionsAddOnPurchaseID!]!

    """Filter users list by assigned seat."""
    filterByAssignedSeat: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AddOnUserConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """
  Fields related to users within a self-managed instance that are pending role promotion approval.
  """
  selfManagedUsersQueuedForRolePromotion(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UsersQueuedForRolePromotionConnection

  """Find Snippets visible to the current user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """ID of an author."""
    authorId: UserID

    """ID of a project."""
    projectId: ProjectID

    """Type of snippet."""
    type: TypeEnum

    """Explore personal snippets."""
    explore: 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
  ): SnippetConnection

  """
  List of SPDX licenses from the SPDX licence catalogue. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  spdxLicenses: [SpdxLicense!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Finds a single default role for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  standardRole(
    """Access level or levels to filter by."""
    accessLevel: [MemberAccessLevel!]
  ): StandardRole @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """
  Default roles available for the instance. Available only for GitLab
  Self-Managed. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  standardRoles(
    """Access level or levels to filter by."""
    accessLevel: [MemberAccessLevel!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): StandardRoleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Fields related to entries in future subscriptions."""
  subscriptionFutureEntries(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SubscriptionFutureEntryConnection

  """
  Usage data of consumables under the subscription. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  subscriptionUsage(
    """
    Path of the top-level namespace. Leave it blank if querying the instance subscription.
    """
    namespacePath: ID

    """
    Start date of the usage period to query. Defaults to the beginning of the current month.
    """
    startDate: ISO8601Date

    """
    End date of the usage period to query. Defaults to the end of the current month.
    """
    endDate: ISO8601Date

    """
    Filter usage data by flow type identifiers (e.g. ["chat", "code_review"]).
    Only applies to event-backed fields (creditsUsed, dailyUsage, dailyAverage,
    totalActiveUsers, totalCreditsUsed). Wallet-backed fields (monthlyWaiver,
    monthlyCommitment, overage) are not affected by this filter.
    """
    flowTypes: [String!]
  ): GitlabSubscriptionUsage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Find a synthetic note Introduced in GitLab 15.9: **Status**: Experiment.
  """
  syntheticNote(
    """Global ID of the note."""
    sha: String!

    """Global ID of the resource to search synthetic note on."""
    noteableId: NoteableID!
  ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """Find timelogs visible to the current user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """Retrieve a single to-do item"""
  todo(
    """ID of the to-do item."""
    id: TodoID!
  ): Todo

  """Find project topics."""
  topics(
    """Search query for topic name."""
    search: String

    """
    Global ID of the organization. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    organizationId: OrganizationsOrganizationID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TopicConnection

  """
  Usage data for trial subscriptions. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  trialUsage(
    """
    Path of the top-level namespace. Leave it blank if querying the instance subscription.
    """
    namespacePath: ID
  ): GitlabTrialUsage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Get statistics on the instance."""
  usageTrendsMeasurements(
    """Type of measurement or statistics to retrieve."""
    identifier: MeasurementIdentifier!

    """Measurement recorded after the date."""
    recordedAfter: Time

    """Measurement recorded before the date."""
    recordedBefore: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UsageTrendsMeasurementConnection

  """Find a user."""
  user(
    """ID of the User."""
    id: UserID

    """Username of the User."""
    username: String
  ): UserCore

  """Find users."""
  users(
    """List of user Global IDs."""
    ids: [ID!]

    """List of usernames."""
    usernames: [String!]

    """Sort users by the criteria."""
    sort: Sort = created_desc

    """Query to search users by name, username, or primary email."""
    search: String

    """Return only admin users."""
    admins: Boolean = false

    """
    Filter by active users. When true, returns active users. When false, returns non-active users.
    """
    active: Boolean

    """
    Filter by regular users. When true, returns only users that are not bot or
    internal users. When false, returns only users that are bot or internal users.
    """
    humans: Boolean

    """Return users member of a given group."""
    groupId: GroupID

    """
    Filter by user type. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    userTypes: [UserType!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection

  """
  Find a container virtual registry. Returns null if the
  `container_virtual_registries` feature flag is disabled. Introduced in GitLab
  18.7: **Status**: Experiment.
  """
  virtualRegistriesContainerRegistry(
    """Global ID of the container virtual registry."""
    id: VirtualRegistriesContainerRegistryID!
  ): ContainerRegistryDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Finds a container upstream registry with details. Returns `null` if the
  `container_virtual_registries` feature flag is disabled. Introduced in GitLab
  18.7: **Status**: Experiment.
  """
  virtualRegistriesContainerUpstream(
    """Global ID of the container upstream."""
    id: VirtualRegistriesContainerUpstreamID!
  ): ContainerUpstreamDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Find a Maven virtual registry. Returns null if the `maven_virtual_registry`
  feature flag is disabled. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  virtualRegistriesPackagesMavenRegistry(
    """Global ID of the Maven virtual registry."""
    id: VirtualRegistriesPackagesMavenRegistryID!
  ): MavenRegistryDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Find a Maven upstream registry. Returns null if the `maven_virtual_registry`
  feature flag is disabled. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  virtualRegistriesPackagesMavenUpstream(
    """Global ID of the Maven upstream registry."""
    id: VirtualRegistriesPackagesMavenUpstreamID!
  ): MavenUpstreamDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Vulnerabilities reported on projects on the current user's instance security dashboard.
  """
  vulnerabilities(
    """Filter vulnerabilities by project."""
    projectId: [ID!]

    """Filter vulnerabilities by report type."""
    reportType: [VulnerabilityReportType!]

    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]

    """Filter vulnerabilities by state."""
    state: [VulnerabilityState!]

    """
    Filter vulnerabilities by OWASP Top 10 2017 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 values.
    """
    owaspTopTen: [VulnerabilityOwaspTop10!]

    """
    Filter vulnerabilities by OWASP Top 10 2021 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2021
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    owaspTopTen2021: [VulnerabilityOwasp2021Top10!]

    """
    Filter vulnerabilities by OWASP Top 10 2025 category. Wildcard value `NONE`
    is also supported but it cannot be combined with other OWASP top 10 2025
    values. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 19.0: **Status**: Experiment.
    """
    owaspTopTen2025: [VulnerabilityOwasp2025Top10!]

    """
    Filter vulnerabilities by identifier name. Ignored when applied on instance security dashboard queries.
    """
    identifierName: String

    """Filter vulnerabilities by VulnerabilityScanner.externalId."""
    scanner: [String!]

    """Filter vulnerabilities by scanner ID."""
    scannerId: [VulnerabilitiesScannerID!]

    """List vulnerabilities by sort order."""
    sort: VulnerabilitySort = severity_desc

    """
    Returns only the vulnerabilities which have been resolved on default branch.
    """
    hasResolution: Boolean

    """
    Returns only the vulnerabilities which can likely be resolved by GitLab Duo Vulnerability Resolution.
    """
    hasAiResolution: Boolean

    """Returns only the vulnerabilities which have linked issues."""
    hasIssues: Boolean

    """Returns only the vulnerabilities which have linked merge requests."""
    hasMergeRequest: Boolean

    """
    Filter vulnerabilities by location image. When this filter is present, the
    response only matches entries for a `reportType` that includes
    `container_scanning`, `cluster_image_scanning`.
    """
    image: [String!]

    """
    Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType`
    of `cluster_image_scanning` are only included with this filter.
    """
    clusterId: [ClustersClusterID!]

    """
    Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a
    `reportType` of `cluster_image_scanning` are only included with this filter.
    """
    clusterAgentId: [ClustersAgentID!]

    """
    Filter by dismissal reason. Only dismissed Vulnerabilities will be included with the filter.
    """
    dismissalReason: [VulnerabilityDismissalReason!]

    """Returns only the vulnerabilities which have remediations."""
    hasRemediations: Boolean

    """
    Filter vulnerabilities by reachability. Introduced in GitLab 18.2: **Status**: Experiment.
    """
    reachability: ReachabilityType

    """
    Filter vulnerabilities by validity check. Introduced in GitLab 18.5: **Status**: Experiment.
    """
    validityCheck: [VulnerabilityFindingTokenStatusState!]

    """
    Filter by security policy violations. To use this argument, you must have
    advanced search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 18.6:
    **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Returns only the vulnerabilities which have been auto dismissed by security
    policies. To use this argument, you must have advanced search configured and
    advanced vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    policyAutoDismissed: Boolean

    """
    Returns only the vulnerabilities with false positive flag. To use this
    argument, you must have advanced search configured and advanced
    vulnerability management set up. Not supported on Instance Security
    Dashboard queries. Introduced in GitLab 18.8: **Status**: Experiment.
    """
    falsePositive: Boolean

    """
    Filter vulnerabilities by malware status. When true, returns only malware
    vulnerabilities (identified by GLAM-* identifiers). When false, returns only
    non-malware vulnerabilities. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up. Not
    supported on Instance Security Dashboard queries. Introduced in GitLab 19.0:
    **Status**: Experiment.
    """
    malware: Boolean

    """
    Filter vulnerabilities by tracked ref IDs. To use this argument, you must
    have advanced search configured and advanced vulnerability management set
    up. Introduced in GitLab 18.10: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter by tracked ref scope. To use this argument, you must have advanced
    search configured and advanced vulnerability management set up and the
    `vulnerabilities_across_contexts` feature flag enabled. Introduced in GitLab
    18.9: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityConnection

  """
  The historical number of vulnerabilities per day for the projects on the current user's instance security dashboard.
  """
  vulnerabilitiesCountByDay(
    """First day for which to fetch vulnerability history."""
    startDate: ISO8601Date!

    """Last day for which to fetch vulnerability history."""
    endDate: ISO8601Date!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilitiesCountByDayConnection

  """Find a vulnerability."""
  vulnerability(
    """Global ID of the Vulnerability."""
    id: VulnerabilityID!
  ): Vulnerability

  """Find a wiki page. Introduced in GitLab 17.6: **Status**: Experiment."""
  wikiPage(
    """Wiki page slug."""
    slug: String

    """Wiki page project ID."""
    projectId: ProjectID

    """Wiki page namespace ID."""
    namespaceId: NamespaceID
  ): WikiPage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """Find a work item. Introduced in GitLab 15.1: **Status**: Experiment."""
  workItem(
    """Global ID of the work item."""
    id: WorkItemID!
  ): WorkItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.")

  """
  Allowed work item statuses from the root groups the current user belongs to.
  Introduced in GitLab 18.4: **Status**: Experiment.
  """
  workItemAllowedStatuses(
    """Filter statuses by name."""
    name: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemStatusConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Find a work item description template. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  workItemDescriptionTemplateContent(
    """Input for fetching a specific description template."""
    templateContentInput: WorkItemDescriptionTemplateContentInput!
  ): WorkItemDescriptionTemplate @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Available icon definitions for work item types. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  workItemTypeIconDefinitions: [WorkItemTypeIconDefinition!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Find work items by their reference. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  workItemsByReference(
    """Full path of the context namespace (project or group)."""
    contextNamespacePath: ID

    """Work item references. Can be either a short reference or URL."""
    refs: [String!]!

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")

  """Find a workspace."""
  workspace(
    """Find a workspace by its ID."""
    id: RemoteDevelopmentWorkspaceID!
  ): Workspace

  """
  Find workspaces across the entire instance. This field is only available to
  instance admins, it will return an empty result for all non-admins.
  """
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by user GlobalIDs."""
    userIds: [ProjectID!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

type QueryComplexity {
  """GraphQL query complexity limit."""
  limit: Int

  """GraphQL query complexity score."""
  score: Int
}

"""Aggregated statistics about queueing times for CI jobs"""
type QueueingDelayHistory {
  """Time series."""
  timeSeries: [QueueingHistoryTimeSeries!]
}

"""
The amount of time for a job to be picked up by a runner, in percentiles.
"""
type QueueingHistoryTimeSeries {
  """50th percentile. 50% of the durations are lower than this value."""
  p50: Duration

  """75th percentile. 75% of the durations are lower than this value."""
  p75: Duration

  """90th percentile. 90% of the durations are lower than this value."""
  p90: Duration

  """95th percentile. 95% of the durations are lower than this value."""
  p95: Duration

  """99th percentile. 99% of the durations are lower than this value."""
  p99: Duration

  """Start of the time interval."""
  time: Time!
}

type QuickActionsStatus {
  """Quick action command names."""
  commandNames: [String!]

  """Returns true if only quick action commands were in the note."""
  commandsOnly: Boolean

  """Error messages from quick actions that failed to apply."""
  errorMessages: [String!]

  """Response messages from quick actions."""
  messages: [String!]
}

"""Dependency reachability status"""
enum ReachabilityType {
  """Dependency reachability status is not available."""
  UNKNOWN

  """Dependency is imported and in use."""
  IN_USE

  """Dependency is not in use."""
  NOT_FOUND
}

"""Recent failure history of a test case."""
type RecentFailures {
  """Name of the base branch of the project."""
  baseBranch: String

  """Number of times the test case has failed in the past 14 days."""
  count: Int
}

type RecentlyViewedItem {
  """Recently viewed item."""
  item: RecentlyViewedItemUnion!

  """When the item was last viewed."""
  viewedAt: Time!
}

union RecentlyViewedItemUnion = Epic | Issue | MergeRequest | WikiPage | WorkItem

"""Autogenerated input type of RefreshFindingTokenStatus"""
input RefreshFindingTokenStatusInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Vulnerability whose token status should be refreshed."""
  vulnerabilityId: VulnerabilityID!
}

"""Autogenerated return type of RefreshFindingTokenStatus."""
type RefreshFindingTokenStatusPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated token status record for the given finding."""
  findingTokenStatus: VulnerabilityFindingTokenStatus
}

"""Autogenerated input type of RefreshSecurityFindingTokenStatus"""
input RefreshSecurityFindingTokenStatusInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  UUID of the Security::Finding whose token status should be refreshed (MR context).
  """
  securityFindingUuid: String!
}

"""Autogenerated return type of RefreshSecurityFindingTokenStatus."""
type RefreshSecurityFindingTokenStatusPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated token status record for the given Security::Finding."""
  findingTokenStatus: SecurityFindingTokenStatus
}

"""Autogenerated input type of RefreshStandardsAdherenceChecks"""
input RefreshStandardsAdherenceChecksInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path."""
  groupPath: ID!
}

"""Autogenerated return type of RefreshStandardsAdherenceChecks."""
type RefreshStandardsAdherenceChecksPayload {
  """Progress of standards adherence checks."""
  adherenceChecksStatus: StandardsAdherenceChecksStatus

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of RefreshVulnerabilityFindingTokenStatus"""
input RefreshVulnerabilityFindingTokenStatusInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Vulnerability whose token status should be refreshed."""
  vulnerabilityId: VulnerabilityID!
}

"""Autogenerated return type of RefreshVulnerabilityFindingTokenStatus."""
type RefreshVulnerabilityFindingTokenStatusPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated token status record for the given Vulnerabilities::Finding."""
  findingTokenStatus: VulnerabilityFindingTokenStatus
}

"""Type of ref"""
enum RefType {
  """Ref type for branches."""
  HEADS

  """Ref type for tags."""
  TAGS
}

union Registrable = AbuseReportUploadRegistry | AchievementUploadRegistry | AiVectorizableFileUploadRegistry | AlertManagementMetricImageUploadRegistry | BulkImportExportUploadUploadRegistry | CiSecureFileRegistry | ContainerRepositoryRegistry | DependencyListExportPartUploadRegistry | DependencyListExportUploadRegistry | DependencyProxyBlobRegistry | DependencyProxyManifestRegistry | DesignManagementActionUploadRegistry | DesignManagementRepositoryRegistry | GroupUploadRegistry | GroupWikiRepositoryRegistry | ImportExportUploadUploadRegistry | IssuableMetricImageUploadRegistry | JobArtifactRegistry | LfsObjectRegistry | MergeRequestDiffRegistry | OrganizationDetailUploadRegistry | PackageFileRegistry | PackagesDebianProjectComponentFileRegistry | PackagesHelmMetadataCacheRegistry | PackagesNugetSymbolRegistry | PagesDeploymentRegistry | PersonalSnippetUploadRegistry | PipelineArtifactRegistry | ProjectImportExportRelationExportUploadUploadRegistry | ProjectRepositoryRegistry | ProjectUploadRegistry | ProjectWikiRepositoryRegistry | SnippetRepositoryRegistry | TerraformStateVersionRegistry | UploadRegistry | UserPermissionExportUploadUploadRegistry | UserUploadRegistry | VulnerabilityArchiveExportUploadRegistry | VulnerabilityExportPartUploadRegistry | VulnerabilityExportUploadRegistry

interface RegistryInterface {
  """Description of the virtual registry."""
  description: String

  """ID of the virtual registry."""
  id: ID!

  """Name of the virtual registry."""
  name: String!

  """Timestamp of when the virtual registry was updated."""
  updatedAt: Time!
}

"""State of a Geo registry"""
enum RegistryState {
  """Registry waiting to be synced."""
  PENDING

  """Registry currently syncing."""
  STARTED

  """Registry that is synced."""
  SYNCED

  """Registry that failed to sync."""
  FAILED
}

interface RegistryUpstreamInterface {
  """
  ID of the registry upstream. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Position of the upstream registry in an ordered list. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  position: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")
}

"""Relationship of the policies to resync."""
enum RelationshipType {
  """Policies defined for the project/group only."""
  DIRECT

  """Policies defined for the project/group and ancestor groups."""
  INHERITED
}

"""The position to which the object should be moved"""
enum RelativePositionType {
  """Object is moved before an adjacent object."""
  BEFORE

  """Object is moved after an adjacent object."""
  AFTER
}

"""Represents a release"""
type Release {
  """Assets of the release."""
  assets: ReleaseAssets

  """User that created the release."""
  author: UserCore

  """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

  """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

  """Indicates the release is a historical release."""
  historicalRelease: Boolean

  """Global ID of the release."""
  id: ReleaseID!

  """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 {
  """Relative path for the direct asset link."""
  directAssetPath: String

  """Direct asset URL of the link."""
  directAssetUrl: String

  """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!
}

"""Autogenerated input type of ReleaseAssetLinkCreate"""
input ReleaseAssetLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the asset link."""
  name: String!

  """URL of the asset link."""
  url: String!

  """Relative path for a direct asset link."""
  directAssetPath: String

  """Type of the asset link."""
  linkType: ReleaseAssetLinkType = OTHER

  """Full path of the project the asset link is associated with."""
  projectPath: ID!

  """Name of the associated release's tag."""
  tagName: String!
}

"""Autogenerated return type of ReleaseAssetLinkCreate."""
type ReleaseAssetLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Asset link after mutation."""
  link: ReleaseAssetLink
}

"""Autogenerated input type of ReleaseAssetLinkDelete"""
input ReleaseAssetLinkDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the release asset link to delete."""
  id: ReleasesLinkID!
}

"""Autogenerated return type of ReleaseAssetLinkDelete."""
type ReleaseAssetLinkDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted release asset link."""
  link: ReleaseAssetLink
}

"""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
}

"""Fields that are available when modifying a release asset link"""
input ReleaseAssetLinkInput {
  """Name of the asset link."""
  name: String!

  """URL of the asset link."""
  url: String!

  """Relative path for a direct asset link."""
  directAssetPath: String

  """Type of the asset link."""
  linkType: ReleaseAssetLinkType = OTHER
}

"""Type of the link: `other`, `runbook`, `image`, `package`"""
enum ReleaseAssetLinkType {
  """Other link type"""
  OTHER

  """Runbook link type"""
  RUNBOOK

  """Package link type"""
  PACKAGE

  """Image link type"""
  IMAGE
}

"""Autogenerated input type of ReleaseAssetLinkUpdate"""
input ReleaseAssetLinkUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the release asset link to update."""
  id: ReleasesLinkID!

  """Name of the asset link."""
  name: String

  """URL of the asset link."""
  url: String

  """Relative path for a direct asset link."""
  directAssetPath: String

  """Type of the asset link."""
  linkType: ReleaseAssetLinkType
}

"""Autogenerated return type of ReleaseAssetLinkUpdate."""
type ReleaseAssetLinkUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Asset link after mutation."""
  link: ReleaseAssetLink
}

"""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
}

"""Fields that are available when modifying release assets"""
input ReleaseAssetsInput {
  """List of asset links to associate to the release."""
  links: [ReleaseAssetLinkInput!]
}

"""The connection type for Release."""
type ReleaseConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [ReleaseEdge]

  """A list of nodes."""
  nodes: [Release]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ReleaseCreate"""
input ReleaseCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project the release is associated with."""
  projectPath: ID!

  """Name of the tag to associate with the release."""
  tagName: String!

  """Message to use if creating a new annotated tag."""
  tagMessage: String

  """Commit SHA or branch name to use if creating a new tag."""
  ref: String

  """Name of the release."""
  name: String

  """Description (also known as "release notes") of the release."""
  description: String

  """
  Date and time for the release. Defaults to the current time. Expected in ISO
  8601 format (`2019-03-15T08:00:00Z`). Only provide this field if creating an
  upcoming or historical release.
  """
  releasedAt: Time

  """
  Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones.
  """
  milestones: [String!]

  """Assets associated to the release."""
  assets: ReleaseAssetsInput
}

"""Autogenerated return type of ReleaseCreate."""
type ReleaseCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Release after mutation."""
  release: Release
}

"""Autogenerated input type of ReleaseDelete"""
input ReleaseDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project the release is associated with."""
  projectPath: ID!

  """Name of the tag associated with the release to delete."""
  tagName: String!
}

"""Autogenerated return type of ReleaseDelete."""
type ReleaseDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted release."""
  release: Release
}

"""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
}

"""
A `ReleaseID` is a global ID. It is encoded as a string.

An example `ReleaseID` is: `"gid://gitlab/Release/1"`.
"""
scalar ReleaseID

type ReleaseLinks {
  """
  HTTP URL of the issues page, filtered by the release and `state=closed`.
  """
  closedIssuesUrl: String

  """
  HTTP URL of the merge request page, filtered by the release and `state=closed`.
  """
  closedMergeRequestsUrl: String

  """HTTP URL of the release's edit page."""
  editUrl: String

  """
  HTTP URL of the merge request page, filtered by the release and `state=merged`.
  """
  mergedMergeRequestsUrl: String

  """HTTP URL of the issues page, filtered by the release and `state=open`."""
  openedIssuesUrl: String

  """
  HTTP URL of the merge request page, filtered by the release and `state=open`.
  """
  openedMergeRequestsUrl: String

  """HTTP URL of the release."""
  selfUrl: String
}

"""
A `ReleasesLinkID` is a global ID. It is encoded as a string.

An example `ReleasesLinkID` is: `"gid://gitlab/Releases::Link/1"`.
"""
scalar ReleasesLinkID

"""Values for sorting releases"""
enum ReleaseSort {
  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC

  """Released at by descending order."""
  RELEASED_AT_DESC

  """Released at by ascending order."""
  RELEASED_AT_ASC
}

"""
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
}

"""Release tag ID wildcard values"""
enum ReleaseTagWildcardId {
  """No release tag is assigned."""
  NONE

  """Release tag is assigned."""
  ANY
}

"""Autogenerated input type of ReleaseUpdate"""
input ReleaseUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project the release is associated with."""
  projectPath: ID!

  """Name of the tag associated with the release."""
  tagName: String!

  """Name of the release."""
  name: String

  """Description (release notes) of the release."""
  description: String

  """Release date."""
  releasedAt: Time

  """
  Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones.
  """
  milestones: [String!]
}

"""Autogenerated return type of ReleaseUpdate."""
type ReleaseUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Release after mutation."""
  release: Release
}

"""
A `RemoteDevelopmentNamespaceClusterAgentMappingID` is a global ID. It is encoded as a string.

An example `RemoteDevelopmentNamespaceClusterAgentMappingID` is:
`"gid://gitlab/RemoteDevelopment::NamespaceClusterAgentMapping/1"`.
"""
scalar RemoteDevelopmentNamespaceClusterAgentMappingID

"""
A `RemoteDevelopmentWorkspaceID` is a global ID. It is encoded as a string.

An example `RemoteDevelopmentWorkspaceID` is: `"gid://gitlab/RemoteDevelopment::Workspace/1"`.
"""
scalar RemoteDevelopmentWorkspaceID

"""
A `RemoteDevelopmentWorkspacesAgentConfigID` is a global ID. It is encoded as a string.

An example `RemoteDevelopmentWorkspacesAgentConfigID` is: `"gid://gitlab/RemoteDevelopment::WorkspacesAgentConfig/1"`.
"""
scalar RemoteDevelopmentWorkspacesAgentConfigID

"""
A `RemoteDevelopmentWorkspaceVariableID` is a global ID. It is encoded as a string.

An example `RemoteDevelopmentWorkspaceVariableID` is: `"gid://gitlab/RemoteDevelopment::WorkspaceVariable/1"`.
"""
scalar RemoteDevelopmentWorkspaceVariableID

"""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: ProjectID!
}

"""Autogenerated return type of RemoveProjectFromSecurityDashboard."""
type RemoveProjectFromSecurityDashboardPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

enum ReplicationStateEnum {
  """Replication process has not started."""
  PENDING

  """Replication process is in progress."""
  STARTED

  """Replication process finished successfully."""
  SYNCED

  """Replication process finished but failed."""
  FAILED
}

"""Autogenerated input type of RepositionImageDiffNote"""
input RepositionImageDiffNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the DiffNote to update."""
  id: DiffNoteID!

  """Position of the note on a diff."""
  position: UpdateDiffImagePositionInput!
}

"""Autogenerated return type of RepositionImageDiffNote."""
type RepositionImageDiffNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

type Repository {
  """Blobs contained within the repository"""
  blobs(
    """
    Array of desired blob paths. When requesting multiple blobs the total size is limited to 20 MiB.
    """
    paths: [String!]!

    """Commit ref to get the blobs from. Default value is HEAD."""
    ref: String = null

    """Type of ref."""
    refType: RefType = null

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): RepositoryBlobConnection

  """
  Names of branches available in this repository that match the search pattern.
  """
  branchNames(
    """Pattern to search for branch names by."""
    searchPattern: String!

    """Number of branch names to skip."""
    offset: Int!

    """Number of branch names to return."""
    limit: Int!
  ): [String!]

  """Path to CODEOWNERS file in a ref."""
  codeOwnersPath(
    """Name of the ref."""
    ref: String
  ): String

  """Commit from the repository."""
  commit(
    """Commit reference (SHA, branch name, or tag name)."""
    ref: String!
  ): Commit

  """
  List of commits from the repository. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  commits(
    """Branch or tag to search for commits."""
    ref: String!

    """File path to filter commits by."""
    path: String

    """Regular expression to filter the commits."""
    query: UntrustedRegexp

    """Name or email of the author."""
    author: String

    """Commits created before an ISO8601 formatted time or date."""
    committedBefore: Time

    """Commits created after an ISO8601 formatted time or date."""
    committedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """Returns the first _n_ elements from the list."""
    first: Int
  ): CommitConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Shows a disk path of the repository."""
  diskPath: String

  """Indicates repository has no visible content."""
  empty: Boolean!

  """Indicates a corresponding Git repository exists on disk."""
  exists: Boolean!

  """The last commit made in the repository for the given path and ref."""
  lastCommit(
    """
    Path to get the last commit for. Default value is the root of the repository.
    """
    path: String

    """Commit ref to get the last commit for. Default value is HEAD."""
    ref: String

    """Type of ref."""
    refType: RefType
  ): Commit

  """Paginated tree of the repository."""
  paginatedTree(
    """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

    """Commit ref to get the tree for. Default value is HEAD."""
    ref: String

    """Type of ref."""
    refType: RefType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TreeConnection

  """Default branch of the repository."""
  rootRef: String

  """Tree of the repository."""
  tree(
    """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

    """Commit ref to get the tree for. Default value is HEAD."""
    ref: String

    """Type of ref."""
    refType: RefType
  ): Tree

  """Shows linting errors in the CODEOWNER file of the repository."""
  validateCodeownerFile(
    """
    Ref where code owners file needs to be  checked. Defaults to the repository's default branch.
    """
    ref: String

    """
    Path of a file called CODEOWNERS that should be validated. Default to file in use.
    """
    path: String
  ): RepositoryCodeownerValidation
}

type RepositoryBlob {
  """Whether the current project is archived."""
  archived: Boolean

  """
  Content of blob is encoded base64. Returns `null` if the
  `unicode_escaped_data` feature flag is disabled. Introduced in GitLab 17.1:
  **Status**: Experiment.
  """
  base64EncodedBlob: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.")

  """Blob blame. Introduced in GitLab 16.3: **Status**: Experiment."""
  blame(
    """
    Range starting from the line. Cannot be less than 1 or greater than `to_line`.
    """
    fromLine: Int = 1

    """
    Enable to ignore revisions in the `.git-ignore-revs-file` when fetching the blame.
    """
    ignoreRevs: Boolean = false

    """
    Range ending on the line. Cannot be smaller than `from_line` or greater than
    or equal to `from_line` + the maximum line range cap (1000 when
    `blame_line_range_cap_1000` is enabled, 100 otherwise).
    """
    toLine: Int = 1
  ): Blame @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """Web path to blob blame page."""
  blamePath: String

  """Whether the current user can push to the branch."""
  canCurrentUserPushToBranch: Boolean

  """Whether the current user can modify the blob."""
  canModifyBlob: Boolean

  """Whether the current user can modify the blob with Web IDE."""
  canModifyBlobWithWebIde: Boolean!

  """Web path for code navigation."""
  codeNavigationPath: String

  """List of code owners for the blob."""
  codeOwners: [UserCore!]

  """Web path to edit the blob in the old-style editor."""
  editBlobPath: String

  """Web path to blob on an environment."""
  environmentExternalUrlForRouteMap: String

  """Environment on which the blob is available."""
  environmentFormattedExternalUrl: String

  """External storage being used, if enabled (for instance, 'LFS')."""
  externalStorage: String

  """Web path to download the raw blob via external storage, if enabled."""
  externalStorageUrl: String

  """Expected format of the blob based on the extension."""
  fileType: String

  """Web path to find file."""
  findFilePath: String

  """Web path to edit the blob using a forked project."""
  forkAndEditPath: String

  """Web path to view the blob using a forked project."""
  forkAndViewPath: String

  """URL to the blob within Ona."""
  gitpodBlobUrl: String

  """Web path to blob history page."""
  historyPath: String

  """ID of the blob."""
  id: ID!

  """Web path to edit the blob in the Web IDE."""
  ideEditPath: String

  """Web path to edit the blob in the Web IDE using a forked project."""
  ideForkAndEditPath: String

  """Blob language."""
  language: String

  """LFS OID of the blob."""
  lfsOid: String

  """Blob mode."""
  mode: String

  """Blob name."""
  name: String

  """OID of the blob."""
  oid: String!

  """Path of the blob."""
  path: String!

  """Web path to blob permalink."""
  permalinkPath: String

  """Web path to edit .gitlab-ci.yml file."""
  pipelineEditorPath: String

  """Blob plain highlighted data."""
  plainData: String

  """Web path for the root of the blob."""
  projectBlobPathRoot: String

  """Raw content of the blob."""
  rawBlob: String

  """Web path to download the raw blob."""
  rawPath: String

  """Size (in bytes) of the blob, or the blob target if stored externally."""
  rawSize: BigInt

  """Raw content of the blob, if the blob is text data."""
  rawTextBlob: String

  """Web path to replace the blob content."""
  replacePath: String

  """Blob content rich viewer."""
  richViewer: BlobViewer

  """Indicator to show Duo Agent Platform action."""
  showDuoWorkflowAction: Boolean

  """Blob content simple viewer."""
  simpleViewer: BlobViewer!

  """Size (in bytes) of the blob."""
  size: BigInt

  """
  Whether the blob's content is stored externally (for instance, in LFS).
  """
  storedExternally: Boolean

  """Web path of the blob."""
  webPath: String
}

"""The connection type for RepositoryBlob."""
type RepositoryBlobConnection {
  """A list of edges."""
  edges: [RepositoryBlobEdge]

  """A list of nodes."""
  nodes: [RepositoryBlob]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type RepositoryBlobEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: RepositoryBlob
}

type RepositoryCodeownerError {
  """Linting error code."""
  code: String!

  """Lines where the error occurred."""
  lines: [Int!]!
}

type RepositoryCodeownerValidation {
  """Total number of validation error in the file."""
  total: Int!

  """Specific lint error code."""
  validationErrors: [RepositoryCodeownerError!]!
}

type RepositoryLanguage {
  """Color to visualize the repository language."""
  color: Color

  """Name of the repository language."""
  name: String!

  """Percentage of the repository's languages."""
  share: Float
}

"""Represents a requirement"""
type Requirement {
  """Author of the requirement."""
  author: UserCore!

  """Timestamp of when the requirement was created."""
  createdAt: Time!

  """Description of the requirement."""
  description: String

  """GitLab Flavored Markdown rendering of `description`."""
  descriptionHtml: String

  """ID of the requirement."""
  id: ID!

  """
  Internal ID of the requirement. Deprecated in GitLab 15.8: Use work_item_iid instead.
  """
  iid: String! @deprecated(reason: "Use work_item_iid instead. Deprecated in GitLab 15.8.")

  """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(
    """List test reports by sort order."""
    sort: Sort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TestReportConnection

  """Title of the requirement."""
  title: String

  """HTML 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!

  """
  Work item IID of the requirement, will replace current IID as identifier soon.
  """
  workItemIid: String!
}

"""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!
}

"""Compliance control coverage statistics across all requirements."""
type RequirementControlCoverage {
  """Number of controls that failed compliance checks."""
  failed: Int!

  """Number of controls that passed compliance checks."""
  passed: Int!

  """Number of controls pending evaluation."""
  pending: Int!
}

"""Coverage statistics requirements."""
type RequirementCoverage {
  """Count of failed requirements."""
  failed: Int!

  """Count of passed requirements."""
  passed: Int!

  """Count of pending requirements."""
  pending: Int!
}

"""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
}

input RequirementLegacyFilterInput {
  """
  List of legacy requirement IIDs of work items. or example `["1", "2"]`.
  """
  legacyIids: [String!]!
}

"""Check permissions for the current user on a requirement"""
type RequirementPermissions {
  """If `true`, the user can perform `admin_requirement` on this resource"""
  adminRequirement: Boolean!

  """If `true`, the user can perform `create_requirement` on this resource"""
  createRequirement: Boolean!

  """If `true`, the user can perform `destroy_requirement` on this resource"""
  destroyRequirement: Boolean!

  """If `true`, the user can perform `read_requirement` on this resource"""
  readRequirement: Boolean!

  """If `true`, the user can perform `update_requirement` on this resource"""
  updateRequirement: Boolean!
}

"""State of a requirement"""
enum RequirementState {
  """Open requirement."""
  OPENED

  """Archived requirement."""
  ARCHIVED
}

"""Counts of requirements by their state"""
type RequirementStatesCount {
  """Number of archived requirements."""
  archived: Int

  """Number of opened requirements."""
  opened: Int
}

"""Status of a requirement based on last test report"""
enum RequirementStatusFilter {
  """Requirements without any test report."""
  MISSING

  """Passed test report."""
  PASSED

  """Failed test report."""
  FAILED
}

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: UserCore
}

"""Process mode for resource groups"""
enum ResourceGroupsProcessMode {
  """Unordered."""
  UNORDERED

  """Oldest first."""
  OLDEST_FIRST

  """Newest first."""
  NEWEST_FIRST

  """Newest ready first."""
  NEWEST_READY_FIRST
}

"""Resource quotas of a workspace."""
type ResourceQuotas {
  """Number of cpu cores."""
  cpu: String!

  """Bytes of memory."""
  memory: String!
}

"""Autogenerated input type of RestorePagesDeployment"""
input RestorePagesDeploymentInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the Pages Deployment."""
  id: PagesDeploymentID!
}

"""Autogenerated return type of RestorePagesDeployment."""
type RestorePagesDeploymentPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Restored Pages Deployment."""
  pagesDeployment: PagesDeployment!
}

"""Autogenerated input type of ResyncSecurityPolicies"""
input ResyncSecurityPoliciesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project or group."""
  fullPath: String!

  """Relationship of the policies to resync."""
  relationship: RelationshipType = DIRECT
}

"""Autogenerated return type of ResyncSecurityPolicies."""
type ResyncSecurityPoliciesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Reviewer ID wildcard values"""
enum ReviewerWildcardId {
  """No reviewer is assigned."""
  NONE

  """Any reviewer is assigned."""
  ANY
}

"""Risk factors contributing to the total risk score"""
type RiskFactors {
  """
  Factor based on average vulnerability score. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  vulnerabilitiesAverageScore: VulnerabilityAverageScoreFactor @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
}

"""Risk rating levels based on score ranges"""
enum RiskRating {
  """Low risk (0–25)."""
  LOW

  """Medium risk (26–50)."""
  MEDIUM

  """High risk (51–75)."""
  HIGH

  """Critical risk (76–100)."""
  CRITICAL

  """Unknown risk level."""
  UNKNOWN
}

"""Total risk score information"""
type RiskScore {
  """
  Risk scores grouped by project. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  byProject(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): RiskScoreByProjectConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Risk factors contributing to the score. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  factors: RiskFactors @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Total number of projects with risk scores. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  projectCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Overall risk rating. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rating: RiskRating! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Overall risk score. Introduced in GitLab 18.4: **Status**: Experiment."""
  score: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
}

"""Risk score information for a specific project."""
type RiskScoreByProject {
  """
  Risk score belongs to the project. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Risk rating for the project. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rating: RiskRating @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Risk score for the project. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  score: Float @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
}

"""The connection type for RiskScoreByProject."""
type RiskScoreByProjectConnection {
  """A list of edges."""
  edges: [RiskScoreByProjectEdge]

  """A list of nodes."""
  nodes: [RiskScoreByProject]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type RiskScoreByProjectEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: RiskScoreByProject
}

interface RoleInterface {
  """Role description."""
  description: String

  """
  URL path to the role details webpage. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  detailsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Role ID."""
  id: ID!

  """Role name."""
  name: String
}

type RootStorageStatistics {
  """CI artifacts size in bytes."""
  buildArtifactsSize: Float!

  """Container registry size in bytes."""
  containerRegistrySize: Float!

  """
  Indicates whether the deduplicated container registry size for the namespace is an estimated value or not.
  """
  containerRegistrySizeIsEstimated: Boolean!

  """
  Total storage in bytes with any applicable cost factor for forks applied. This
  will equal storage_size if there is no applicable cost factor. Introduced in
  GitLab 16.2: **Status**: Experiment.
  """
  costFactoredStorageSize: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.2.")

  """Dependency Proxy sizes in bytes."""
  dependencyProxySize: Float!

  """LFS objects size in bytes."""
  lfsObjectsSize: Float!

  """Packages size in bytes."""
  packagesSize: Float!

  """CI pipeline artifacts size in bytes."""
  pipelineArtifactsSize: Float!

  """
  Indicates whether the deduplicated container registry size for the namespace
  is an estimated value or not. Deprecated in GitLab 16.2: Use
  `container_registry_size_is_estimated`.
  """
  registrySizeEstimated: Boolean! @deprecated(reason: "Use `container_registry_size_is_estimated`. Deprecated in GitLab 16.2.")

  """Git repository size in bytes."""
  repositorySize: Float!

  """Snippets size in bytes."""
  snippetsSize: Float!

  """Total storage in bytes."""
  storageSize: Float!

  """Uploads size in bytes."""
  uploadsSize: Float!

  """Wiki size in bytes."""
  wikiSize: Float!
}

interface RuleInterface {
  """When the rule was created."""
  createdAt: Time!

  """Global ID of the rule."""
  id: VirtualRegistriesPackagesMavenUpstreamRuleID!

  """Pattern for the rule."""
  pattern: String!

  """Type of pattern (WILDCARD or REGEX)."""
  patternType: MavenUpstreamPatternType!

  """Target coordinate for the rule."""
  targetCoordinate: MavenUpstreamTargetCoordinate!
}

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
}

"""Autogenerated input type of RunnerAssignToProject"""
input RunnerAssignToProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the runner to assign to the project ."""
  runnerId: CiRunnerID!

  """Full path of the project to which the runner will be assigned."""
  projectPath: ID!
}

"""Autogenerated return type of RunnerAssignToProject."""
type RunnerAssignToProjectPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of RunnerBulkPause"""
input RunnerBulkPauseInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """IDs of the runners to pause or unpause."""
  ids: [CiRunnerID!]!

  """Indicates the runner is not allowed to receive jobs."""
  paused: Boolean!
}

"""Autogenerated return type of RunnerBulkPause."""
type RunnerBulkPausePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Number of records effectively updated. Only present if operation was performed synchronously.
  """
  updatedCount: Int

  """Runners after mutation."""
  updatedRunners: [CiRunner!]
}

"""Autogenerated input type of RunnerCacheClear"""
input RunnerCacheClearInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project that will have its runner cache cleared."""
  projectId: ProjectID!
}

"""Autogenerated return type of RunnerCacheClear."""
type RunnerCacheClearPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of RunnerCreate"""
input RunnerCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the runner."""
  description: String

  """Runner's maintenance notes."""
  maintenanceNote: String

  """Maximum timeout (in seconds) for jobs processed by the runner."""
  maximumTimeout: Int

  """Access level of the runner."""
  accessLevel: CiRunnerAccessLevel

  """Indicates the runner is not allowed to receive jobs."""
  paused: Boolean

  """Indicates the runner is locked."""
  locked: Boolean

  """Indicates the runner is able to run untagged jobs."""
  runUntagged: Boolean

  """Tags associated with the runner."""
  tagList: [String!]

  """Type of the runner to create."""
  runnerType: CiRunnerType!

  """
  Global ID of the group that the runner is created in (valid only for group runner).
  """
  groupId: GroupID

  """
  Global ID of the project that the runner is created in (valid only for project runner).
  """
  projectId: ProjectID

  """
  Public projects' "compute cost factor" associated with the runner (GitLab.com
  only). Introduced in GitLab 17.7: **Status**: Experiment.
  """
  publicProjectsMinutesCostFactor: Float

  """
  Private projects' "compute cost factor" associated with the runner (GitLab.com
  only). Introduced in GitLab 17.7: **Status**: Experiment.
  """
  privateProjectsMinutesCostFactor: Float

  """
  Token expiration time (ISO 8601 format). Must be between 5 minutes and 15 days
  in the future, and cannot exceed instance/group/project limits.
  """
  tokenExpiresAt: Time

  """
  Deadline for token rotation (ISO 8601 format). Requires tokenExpiresAt. Must
  be <= tokenExpiresAt. Setting both to the same value disables token rotation.
  Introduced in GitLab 18.10: **Status**: Experiment.
  """
  tokenRotationDeadline: Time
}

"""Autogenerated return type of RunnerCreate."""
type RunnerCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Runner after mutation."""
  runner: CiRunner
}

"""Autogenerated input type of RunnerDelete"""
input RunnerDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the runner to delete."""
  id: CiRunnerID!
}

"""Autogenerated return type of RunnerDelete."""
type RunnerDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type RunnerPermissions {
  """If `true`, the user can perform `assign_runner` on this resource"""
  assignRunner: Boolean!

  """If `true`, the user can perform `delete_runner` on this resource"""
  deleteRunner: Boolean!

  """If `true`, the user can perform `read_runner` on this resource"""
  readRunner: Boolean!

  """If `true`, the user can perform `update_runner` on this resource"""
  updateRunner: Boolean!
}

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
}

type RunnerSetup {
  """Instructions for installing the runner on the specified architecture."""
  installInstructions: String!

  """
  Instructions for registering the runner. The actual registration tokens are
  not included in the commands. Instead, a placeholder `$REGISTRATION_TOKEN` is shown.
  """
  registerInstructions: String
}

"""Autogenerated input type of RunnersExportUsage"""
input RunnersExportUsageInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Filter jobs by the full path of the group or project they belong to. For
  example, `gitlab-org` or `gitlab-org/gitlab`. Available only to administrators
  and users with the Maintainer role for the group (when a group is specified),
  or project (when a project is specified). Limited to runners from 5000 child projects.
  """
  fullPath: ID

  """Scope of the runners to include in the report."""
  runnerType: CiRunnerType

  """
  UTC start date of the period to report on. Defaults to the start of last full month.
  """
  fromDate: ISO8601Date

  """
  UTC end date of the period to report on. " \
              "Defaults to the end of the month specified by `fromDate`.
  """
  toDate: ISO8601Date

  """
  Maximum number of projects to return. All other runner usage will be
  attributed to an `<Other projects>` entry. Defaults to 1000 projects.
  """
  maxProjectCount: Int = 1000
}

"""Autogenerated return type of RunnersExportUsage."""
type RunnersExportUsagePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of RunnersRegistrationTokenReset"""
input RunnersRegistrationTokenResetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Scope of the object to reset the token for."""
  type: CiRunnerType!

  """
  ID of the project or group to reset the token for. Omit if resetting instance runner token.
  """
  id: ID
}

"""Autogenerated return type of RunnersRegistrationTokenReset."""
type RunnersRegistrationTokenResetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Runner token after mutation."""
  token: String
}

"""Autogenerated input type of RunnerUnassignFromProject"""
input RunnerUnassignFromProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the runner to unassign from the project."""
  runnerId: CiRunnerID!

  """Full path of the project from which the runner will be unassigned."""
  projectPath: ID!
}

"""Autogenerated return type of RunnerUnassignFromProject."""
type RunnerUnassignFromProjectPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of RunnerUpdate"""
input RunnerUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the runner."""
  description: String

  """Runner's maintenance notes."""
  maintenanceNote: String

  """Maximum timeout (in seconds) for jobs processed by the runner."""
  maximumTimeout: Int

  """Access level of the runner."""
  accessLevel: CiRunnerAccessLevel

  """Indicates the runner is not allowed to receive jobs."""
  paused: Boolean

  """Indicates the runner is locked."""
  locked: Boolean

  """Indicates the runner is able to run untagged jobs."""
  runUntagged: Boolean

  """Tags associated with the runner."""
  tagList: [String!]

  """ID of the runner to update."""
  id: CiRunnerID!

  """
  Indicates the runner is allowed to receive jobs. Deprecated in GitLab 14.8: This was renamed.
  """
  active: Boolean

  """
  Projects associated with the runner. Available only for project runners.
  """
  associatedProjects: [ProjectID!]

  """
  Public projects' "compute cost factor" associated with the runner (GitLab.com
  only). Introduced in GitLab 17.7: **Status**: Experiment.
  """
  publicProjectsMinutesCostFactor: Float

  """
  Private projects' "compute cost factor" associated with the runner (GitLab.com
  only). Introduced in GitLab 17.7: **Status**: Experiment.
  """
  privateProjectsMinutesCostFactor: Float
}

"""Autogenerated return type of RunnerUpdate."""
type RunnerUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Runner after mutation."""
  runner: CiRunner
}

"""Autogenerated input type of SafeDisablePipelineVariables"""
input SafeDisablePipelineVariablesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group to disable pipeline variables for."""
  fullPath: ID!
}

"""Autogenerated return type of SafeDisablePipelineVariables."""
type SafeDisablePipelineVariablesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Indicates whether the migration was successfully enqueued."""
  success: Boolean!
}

"""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 {
  """Name of analyzer."""
  name: String!

  """State of the analyzer."""
  enabled: Boolean!

  """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 {
  """CI keyword of entity."""
  field: String!

  """Default value that is used if value is empty."""
  defaultValue: String!

  """Current value of the entity."""
  value: String!
}

"""Represents a CI configuration of SAST"""
input SastCiConfigurationInput {
  """List of global entities related to SAST configuration."""
  global: [SastCiConfigurationEntityInput!]

  """List of pipeline entities related to SAST configuration."""
  pipeline: [SastCiConfigurationEntityInput!]

  """List of analyzers and related variables for the SAST configuration."""
  analyzers: [SastCiConfigurationAnalyzersEntityInput!]
}

"""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 {
  """Size of UI component in SAST configuration page is small."""
  SMALL

  """Size of UI component in SAST configuration page is medium."""
  MEDIUM

  """Size of UI component in SAST configuration page is large."""
  LARGE
}

type SavedReply {
  """Content of the saved reply."""
  content: String!

  """Global ID of the user saved reply."""
  id: UsersSavedReplyID!

  """Name of the saved reply."""
  name: String!
}

"""The connection type for SavedReply."""
type SavedReplyConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [SavedReplyEdge]

  """A list of nodes."""
  nodes: [SavedReply]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of SavedReplyCreate"""
input SavedReplyCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!
}

"""Autogenerated return type of SavedReplyCreate."""
type SavedReplyCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: SavedReply
}

"""Autogenerated input type of SavedReplyDestroy"""
input SavedReplyDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user saved reply."""
  id: UsersSavedReplyID!
}

"""Autogenerated return type of SavedReplyDestroy."""
type SavedReplyDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: SavedReply
}

"""An edge in a connection."""
type SavedReplyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SavedReply
}

"""Autogenerated input type of SavedReplyUpdate"""
input SavedReplyUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!

  """Global ID of the user saved reply."""
  id: UsersSavedReplyID!
}

"""Autogenerated return type of SavedReplyUpdate."""
type SavedReplyUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: SavedReply
}

"""Check permissions for the current user on a saved view"""
type SavedViewPermissions {
  """If `true`, the user can perform `delete_saved_view` on this resource"""
  deleteSavedView: Boolean!

  """If `true`, the user can perform `read_saved_view` on this resource"""
  readSavedView: Boolean!

  """If `true`, the user can perform `update_saved_view` on this resource"""
  updateSavedView: Boolean!

  """
  If `true`, the user can perform `update_saved_view_visibility` on this resource
  """
  updateSavedViewVisibility: Boolean!
}

"""
A `SbomComponentID` is a global ID. It is encoded as a string.

An example `SbomComponentID` is: `"gid://gitlab/Sbom::Component/1"`.
"""
scalar SbomComponentID

"""
A `SbomComponentVersionID` is a global ID. It is encoded as a string.

An example `SbomComponentVersionID` is: `"gid://gitlab/Sbom::ComponentVersion/1"`.
"""
scalar SbomComponentVersionID

"""
A `SbomOccurrenceID` is a global ID. It is encoded as a string.

An example `SbomOccurrenceID` is: `"gid://gitlab/Sbom::Occurrence/1"`.
"""
scalar SbomOccurrenceID

"""Values for sbom source types"""
enum SbomSourceType {
  """Source Type: container_scanning_for_registry."""
  CONTAINER_SCANNING_FOR_REGISTRY

  """Source Type: dependency_scanning."""
  DEPENDENCY_SCANNING

  """Source Type: container_scanning."""
  CONTAINER_SCANNING

  """Enum source nil."""
  NIL_SOURCE
}

"""Represents the security scan information"""
type Scan {
  """List of errors."""
  errors: [String!]!

  """Name of the scan."""
  name: String!

  """Indicates the status of the scan."""
  status: ScanStatus!

  """List of warnings."""
  warnings: [String!]!
}

"""The connection type for Scan."""
type ScanConnection {
  """A list of edges."""
  edges: [ScanEdge]

  """A list of nodes."""
  nodes: [Scan]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ScanEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Scan
}

"""Represents the scan execution policy"""
type ScanExecutionPolicy implements OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  All deprecated properties in the policy. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  deprecatedProperties: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

"""Represents policy fields related to the scan execution policy."""
type ScanExecutionPolicyAttributesType {
  """
  All deprecated properties in the policy. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  deprecatedProperties: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!
}

"""Autogenerated input type of ScanExecutionPolicyCommit"""
input ScanExecutionPolicyCommitInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  fullPath: String

  """Full path of the project. Deprecated in GitLab 14.10: Use `fullPath`."""
  projectPath: ID

  """YAML snippet of the policy."""
  policyYaml: String!

  """Changes the operation mode."""
  operationMode: MutationOperationMode!

  """
  Name of the policy. If the name is null, the `name` field from `policy_yaml` is used.
  """
  name: String!
}

"""Autogenerated return type of ScanExecutionPolicyCommit."""
type ScanExecutionPolicyCommitPayload {
  """Name of the branch to which the policy changes are committed."""
  branch: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Validation errors encountered during execution of the mutation."""
  validationErrors: [SecurityPolicyValidationError!]
}

"""The connection type for ScanExecutionPolicy."""
type ScanExecutionPolicyConnection {
  """A list of edges."""
  edges: [ScanExecutionPolicyEdge]

  """A list of nodes."""
  nodes: [ScanExecutionPolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ScanExecutionPolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ScanExecutionPolicy
}

"""Options for filtering by scan mode."""
enum ScanModeEnum {
  """Return results from all scans."""
  ALL

  """Return results from full scans."""
  FULL

  """Return results from partial scans."""
  PARTIAL
}

"""Represents a resource scanned by a security scan"""
type ScannedResource {
  """HTTP request method used to access the URL."""
  requestMethod: String

  """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
}

"""Status of a scan profile for a project."""
type ScanProfileProjectStatus {
  """ID of the last CI job that updated the status."""
  buildId: JobID

  """Number of consecutive failed scans."""
  consecutiveFailureCount: Int!

  """Number of consecutive successful scans."""
  consecutiveSuccessCount: Int!

  """Timestamp of the last profile-triggered scan."""
  lastScanAt: Time

  """Scan profile associated with the status."""
  scanProfile: ScanProfileType!

  """
  Computed display status: NOT_CONFIGURED, PENDING, ACTIVE, WARNING, FAILED, or STALE.
  """
  status: ScanProfileStatus!
}

"""Computed display status for a scan profile."""
enum ScanProfileStatus {
  """Profile is not applied for the scan type."""
  NOT_CONFIGURED

  """Profile is attached but no scan has completed yet."""
  PENDING

  """Scans succeeding and not stale."""
  ACTIVE

  """Fewer than 3 consecutive scan failures."""
  WARNING

  """3+ consecutive scan failures."""
  FAILED

  """No scan activity in 90 days."""
  STALE
}

"""Scan profile trigger type"""
enum ScanProfileTriggerType {
  """Default branch pipeline"""
  DEFAULT_BRANCH_PIPELINE

  """Merge request pipeline"""
  MERGE_REQUEST_PIPELINE

  """Git push event"""
  GIT_PUSH_EVENT

  """SBOM ingested. Introduced in GitLab 19.2: **Status**: Experiment."""
  SBOM_INGESTED @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")
}

"""A scan profile."""
type ScanProfileType {
  """Timestamp of when the scan profile was created."""
  createdAt: ISO8601DateTime!

  """Description of the security scan profile."""
  description: String!

  """Indicates whether the scan profile is a default profile."""
  gitlabRecommended: Boolean!

  """Global ID of the security scan profile."""
  id: SecurityScanProfileID

  """Name of the security scan profile."""
  name: String!

  """Scan profile type."""
  scanType: SecurityScanProfileType!

  """
  Trigger types for the scan profile. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  triggers: [ScanProfileTriggerType!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Timestamp of when the scan profile was last updated."""
  updatedAt: ISO8601DateTime!
}

"""Represents the scan result policy"""
type ScanResultPolicy implements OrchestrationPolicy {
  """Multiple approvers action."""
  actionApprovers: [PolicyApproversType!]

  """
  All potential approvers of the group type, including groups inaccessible to the user.
  """
  allGroupApprovers: [PolicyApprovalGroup!]

  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Approvers of the custom role type. Users belonging to these role(s) alone will be approvers.
  """
  customRoles: [MemberRole!]

  """
  All deprecated properties in the policy. Introduced in GitLab 16.10: **Status**: Experiment.
  """
  deprecatedProperties: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """Enforcement type of the policy. Can be "enforce" or "warn"."""
  enforcementType: PolicyEnforcementType

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """
  Approvers of the role type. Users belonging to these role(s) alone will be approvers.
  """
  roleApprovers: [MemberAccessLevelName!]

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """Approvers of the user type."""
  userApprovers: [UserCore!]

  """YAML definition of the policy."""
  yaml: String!
}

"""The connection type for ScanResultPolicy."""
type ScanResultPolicyConnection {
  """A list of edges."""
  edges: [ScanResultPolicyEdge]

  """A list of nodes."""
  nodes: [ScanResultPolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ScanResultPolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ScanResultPolicy
}

"""The status of the security scan"""
enum ScanStatus {
  """The scan has been created."""
  CREATED

  """The report has been successfully prepared."""
  SUCCEEDED

  """The related CI build failed."""
  JOB_FAILED

  """The report artifact provided by the CI build couldn't be parsed."""
  REPORT_ERROR

  """Preparing the report for the scan."""
  PREPARING

  """Report couldn't be prepared."""
  PREPARATION_FAILED

  """Report for the scan has been removed from the database."""
  PURGED
}

"""JSON structure of a matched chunk"""
type SearchBlobChunk {
  """Path of the file. Introduced in GitLab 17.2: **Status**: Experiment."""
  lines: [SearchBlobLine!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Number of matches in the chunk. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  matchCountInChunk: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
}

"""JSON structure of a file with matches"""
type SearchBlobFileType {
  """
  Blame URL of the file. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  blameUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Maximum matches per file. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  chunks: [SearchBlobChunk!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """URL of the file. Introduced in GitLab 17.2: **Status**: Experiment."""
  fileUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Language of the file. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  language: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Matches per file up to a max of 50 chunks.             Default is 3 Introduced in GitLab 17.2: **Status**: Experiment.
  """
  matchCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Total number of matches per file. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  matchCountTotal: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Path of the file. Introduced in GitLab 17.2: **Status**: Experiment."""
  path: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Full path of the project. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  projectPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
}

"""JSON structure of each line in a matched chunk"""
type SearchBlobLine {
  """
  Column numbers of the first and last highlighted characters on a line. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  highlights: [[Int!]!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Line number of the blob. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  lineNumber: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Text content of the blob. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  text: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")
}

"""Level of search"""
enum SearchLevel {
  """Project search."""
  PROJECT

  """Group search."""
  GROUP

  """Global search including all groups and projects."""
  GLOBAL
}

"""Type of search"""
enum SearchType {
  """Basic search."""
  BASIC

  """Advanced search."""
  ADVANCED

  """Exact code search."""
  ZOEKT
}

"""Secondary security feature information."""
type SecondarySecurityFeature {
  """Display text for configuring the secondary feature."""
  configurationText: String!

  """Description of what the secondary feature does."""
  description: String!

  """Name of the secondary feature."""
  name: String!

  """Type identifier for the secondary feature."""
  type: String!
}

"""Representation of a secret permission."""
type SecretPermission {
  """Actions that can be performed on secrets."""
  actions: [SecretsManagementAction!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date

  """User who created the Secret Permission."""
  grantedBy: UserCore

  """Permissions to be provided. ['create', 'update', 'read', 'delete']."""
  permissions: String!

  """Who is provided access to. For eg: User/Role/MemberRole/Group."""
  principal: Principal!

  """Project the secret permission belong to."""
  project: Project!
}

"""The connection type for SecretPermission."""
type SecretPermissionConnection {
  """A list of edges."""
  edges: [SecretPermissionEdge]

  """A list of nodes."""
  nodes: [SecretPermission]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of SecretPermissionDelete"""
input SecretPermissionDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project permissions for the secret."""
  projectPath: ID!

  """Whose permission to be deleted."""
  principal: PrincipalInput!
}

"""Autogenerated return type of SecretPermissionDelete."""
type SecretPermissionDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted Secret Permission."""
  secretPermission: SecretPermission
}

"""An edge in a connection."""
type SecretPermissionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SecretPermission
}

"""Autogenerated input type of SecretPermissionUpdate"""
input SecretPermissionUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to which the permissions are added."""
  projectPath: ID!

  """User/MemberRole/Role/Group that is provided access."""
  principal: PrincipalInput!

  """Permissions to be provided. ['create', 'update', 'read', 'delete']."""
  permissions: [String!]!

  """Expiration date for Secret Permission (optional)."""
  expiredAt: ISO8601Date
}

"""Autogenerated return type of SecretPermissionUpdate."""
type SecretPermissionUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Secret Permission that was created."""
  secretPermission: SecretPermission
}

"""Rotation configuration and status for a secret."""
type SecretRotationInfo {
  """When the rotation configuration was created."""
  createdAt: Time!

  """When the last rotation reminder was sent."""
  lastReminderAt: Time

  """When the next rotation reminder will be sent."""
  nextReminderAt: Time!

  """Number of days between rotation reminders."""
  rotationIntervalDays: Int!

  """Current rotation status."""
  status: SecretRotationStatus!

  """When the rotation configuration was last updated."""
  updatedAt: Time!
}

"""Status of secret rotation"""
enum SecretRotationStatus {
  """Rotation is not due soon."""
  OK

  """Rotation is due within 7 days."""
  APPROACHING

  """Rotation is overdue (reminder was sent)."""
  OVERDUE
}

"""Actions that can be performed on secrets"""
enum SecretsManagementAction {
  """Read secrets."""
  READ

  """Create and update secrets."""
  WRITE

  """Delete secrets."""
  DELETE
}

"""Representation of a Secrets Manager namespace enrollment."""
type SecretsManagerEnrollment {
  """Namespace the enrollment belongs to."""
  namespace: Namespace!
}

"""Status of secret"""
enum SecretStatus {
  """Secret is complete."""
  COMPLETED

  """
  Secret creation appears stale (started long ago or missing completion timestamp).
  """
  CREATE_STALE

  """
  Secret update appears stale (started long ago or missing completion timestamp).
  """
  UPDATE_STALE

  """Secret creation is in progress."""
  CREATE_IN_PROGRESS

  """Secret update is in progress."""
  UPDATE_IN_PROGRESS
}

"""
A `SecurityAscpComponentID` is a global ID. It is encoded as a string.

An example `SecurityAscpComponentID` is: `"gid://gitlab/Security::Ascp::Component/1"`.
"""
scalar SecurityAscpComponentID

"""
A `SecurityAscpScanID` is a global ID. It is encoded as a string.

An example `SecurityAscpScanID` is: `"gid://gitlab/Security::Ascp::Scan/1"`.
"""
scalar SecurityAscpScanID

"""
A `SecurityAscpSecurityContextID` is a global ID. It is encoded as a string.

An example `SecurityAscpSecurityContextID` is: `"gid://gitlab/Security::Ascp::SecurityContext/1"`.
"""
scalar SecurityAscpSecurityContextID

"""
A `SecurityAscpSecurityGuidelineID` is a global ID. It is encoded as a string.

An example `SecurityAscpSecurityGuidelineID` is: `"gid://gitlab/Security::Ascp::SecurityGuideline/1"`.
"""
scalar SecurityAscpSecurityGuidelineID

"""A security attribute"""
type SecurityAttribute {
  """Color of the security attribute."""
  color: Color!

  """Description of the security attribute."""
  description: String

  """Editable state of the security attribute."""
  editableState: SecurityCategoryEditableState!

  """Global ID of the security attribute."""
  id: SecurityAttributeID!

  """Name of the security attribute."""
  name: String!

  """Security category the attribute belongs to."""
  securityCategory: SecurityCategory!
}

"""Mode for bulk updating security attributes"""
enum SecurityAttributeBulkUpdateMode {
  """Add attributes to projects (keeps existing attributes)."""
  ADD

  """Remove attributes from projects."""
  REMOVE

  """Replace all existing attributes with the specified attributes."""
  REPLACE
}

"""The connection type for SecurityAttribute."""
type SecurityAttributeConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [SecurityAttributeEdge]

  """A list of nodes."""
  nodes: [SecurityAttribute]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of SecurityAttributeCreate"""
input SecurityAttributeCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Attributes to create."""
  attributes: [SecurityAttributeInput!]!

  """Global ID of the security category."""
  categoryId: SecurityCategoryID!

  """Global ID of the namespace."""
  namespaceId: NamespaceID!
}

"""Autogenerated return type of SecurityAttributeCreate."""
type SecurityAttributeCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created security attributes."""
  securityAttributes: [SecurityAttribute!]
}

"""Autogenerated input type of SecurityAttributeDestroy"""
input SecurityAttributeDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the security attribute to destroy."""
  id: SecurityAttributeID!
}

"""Autogenerated return type of SecurityAttributeDestroy."""
type SecurityAttributeDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the destroyed security attribute."""
  deletedAttributeGid: SecurityAttributeID

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type SecurityAttributeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SecurityAttribute
}

"""
A `SecurityAttributeID` is a global ID. It is encoded as a string.

An example `SecurityAttributeID` is: `"gid://gitlab/Security::Attribute/1"`.
"""
scalar SecurityAttributeID

"""Input type for security attribute"""
input SecurityAttributeInput {
  """Name of the security attribute."""
  name: String!

  """Description of the security attribute."""
  description: String!

  """Color of the security attribute."""
  color: Color!
}

"""Autogenerated input type of SecurityAttributeProjectUpdate"""
input SecurityAttributeProjectUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project."""
  projectId: ProjectID!

  """Global IDs of the security attributes to add to the project."""
  addAttributeIds: [SecurityAttributeID!]

  """Global IDs of the security attributes to remove from the project."""
  removeAttributeIds: [SecurityAttributeID!]
}

"""Autogenerated return type of SecurityAttributeProjectUpdate."""
type SecurityAttributeProjectUpdatePayload {
  """Number of attributes added."""
  addedCount: Int

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated project."""
  project: Project

  """Number of attributes removed."""
  removedCount: Int
}

"""Autogenerated input type of SecurityAttributeUpdate"""
input SecurityAttributeUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Color of the security attribute."""
  color: Color

  """Description of the security attribute."""
  description: String

  """Global ID of the security attribute."""
  id: SecurityAttributeID!

  """Name of the security attribute."""
  name: String
}

"""Autogenerated return type of SecurityAttributeUpdate."""
type SecurityAttributeUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated security attribute."""
  securityAttribute: SecurityAttribute
}

"""A security category"""
type SecurityCategory {
  """Description of the security category."""
  description: String

  """Editable state of the security category."""
  editableState: SecurityCategoryEditableState!

  """Global ID of the security category."""
  id: SecurityCategoryID!

  """Whether multiple attributes can be selected."""
  multipleSelection: Boolean!

  """Name of the security category."""
  name: String!

  """Security attributes belonging to the category."""
  securityAttributes: [SecurityAttribute!]

  """Template type for predefined categories."""
  templateType: SecurityCategoryTemplateType
}

"""Autogenerated input type of SecurityCategoryCreate"""
input SecurityCategoryCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the security category."""
  description: String

  """Whether multiple attributes can be selected."""
  multipleSelection: Boolean

  """Name of the security category."""
  name: String!

  """Global ID of the category namespace."""
  namespaceId: NamespaceID!
}

"""Autogenerated return type of SecurityCategoryCreate."""
type SecurityCategoryCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created security category."""
  securityCategory: SecurityCategory
}

"""Autogenerated input type of SecurityCategoryDestroy"""
input SecurityCategoryDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the security category to destroy."""
  id: SecurityCategoryID!
}

"""Autogenerated return type of SecurityCategoryDestroy."""
type SecurityCategoryDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of the deleted security attributes."""
  deletedAttributesGid: [SecurityAttributeID!]

  """Global ID of the deleted security category."""
  deletedCategoryGid: SecurityCategoryID

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Editable state for security categories and attributes"""
enum SecurityCategoryEditableState {
  """Locked state."""
  LOCKED

  """Editable attributes state."""
  EDITABLE_ATTRIBUTES

  """Editable state."""
  EDITABLE
}

"""
A `SecurityCategoryID` is a global ID. It is encoded as a string.

An example `SecurityCategoryID` is: `"gid://gitlab/Security::Category/1"`.
"""
scalar SecurityCategoryID

"""Template type for predefined security categories"""
enum SecurityCategoryTemplateType {
  """Business impact category."""
  BUSINESS_IMPACT

  """Business unit category."""
  BUSINESS_UNIT

  """Application category."""
  APPLICATION

  """Exposure category."""
  EXPOSURE
}

"""Autogenerated input type of SecurityCategoryUpdate"""
input SecurityCategoryUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Description of the security category."""
  description: String

  """Global ID of the security category."""
  id: SecurityCategoryID!

  """Name of the security category."""
  name: String

  """Global ID of the category namespace."""
  namespaceId: NamespaceID!
}

"""Autogenerated return type of SecurityCategoryUpdate."""
type SecurityCategoryUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated security category."""
  securityCategory: SecurityCategory
}

"""Security configuration data for a project."""
type SecurityConfiguration {
  """Whether Auto DevOps is enabled for the project."""
  autoDevopsEnabled: Boolean

  """Path to Auto DevOps help documentation."""
  autoDevopsHelpPagePath: String

  """Path to Auto DevOps settings."""
  autoDevopsPath: String

  """Whether the current user can apply security profiles."""
  canApplyProfiles: Boolean!

  """Whether the current user can enable Auto DevOps."""
  canEnableAutoDevops: Boolean!

  """
  Whether the current user can enable secret push protection. Deprecated in
  GitLab 18.11: Automatic enablement of Secret Push Protection for public
  GitLab.com projects has been discontinued.
  """
  canEnableSpp: Boolean @deprecated(reason: "Automatic enablement of Secret Push Protection for public GitLab.com projects has been discontinued. Deprecated in GitLab 18.11.")

  """Whether the current user can manage security attributes."""
  canManageAttributes: Boolean!

  """Whether the current user can read security attributes."""
  canReadAttributes: Boolean!

  """Whether container scanning for registry is enabled."""
  containerScanningForRegistryEnabled: Boolean

  """List of security scan features and their configuration status."""
  features: [SecurityScanFeature!]!

  """Path to the GitLab CI configuration file history."""
  gitlabCiHistoryPath: String

  """Whether a GitLab CI configuration file exists in the project."""
  gitlabCiPresent: Boolean!

  """Full path of the root ancestor group."""
  groupFullPath: String

  """Path to manage group security attributes."""
  groupManageAttributesPath: String

  """Path to application security help documentation."""
  helpPagePath: String

  """
  Whether the instance is GitLab.com. Deprecated in GitLab 18.11: Automatic
  enablement of Secret Push Protection for public GitLab.com projects has been discontinued.
  """
  isGitlabCom: Boolean @deprecated(reason: "Automatic enablement of Secret Push Protection for public GitLab.com projects has been discontinued. Deprecated in GitLab 18.11.")

  """Path to the latest pipeline on the default branch."""
  latestPipelinePath: String

  """Source of license configuration."""
  licenseConfigurationSource: String

  """Whether license scanning for CycloneDX SBOM files is enabled."""
  licenseScanningForCyclonedxEnabled: Boolean

  """Maximum number of refs that can be tracked for security scanning."""
  maxTrackedRefs: Int

  """Path to secret detection configuration."""
  secretDetectionConfigurationPath: String

  """
  Whether secret push protection is available for projects in the instance.
  """
  secretPushProtectionAvailable: Boolean!

  """Whether secret push protection is enabled for the project."""
  secretPushProtectionEnabled: Boolean

  """
  Whether secret push protection is automatically enforced for all projects in the instance.
  """
  secretPushProtectionEnforced: Boolean

  """
  Whether the project has a license for secret push protection. Deprecated in
  GitLab 18.11: Automatic enablement of Secret Push Protection for public
  GitLab.com projects has been discontinued.
  """
  secretPushProtectionLicensed: Boolean @deprecated(reason: "Automatic enablement of Secret Push Protection for public GitLab.com projects has been discontinued. Deprecated in GitLab 18.11.")

  """Whether the project has a license for security scan profiles."""
  securityScanProfilesLicensed: Boolean!

  """Whether security training is available for the project."""
  securityTrainingEnabled: Boolean!

  """Path to upgrade security features."""
  upgradePath: String

  """Whether the current user has admin permissions for security testing."""
  userIsProjectAdmin: Boolean!

  """Whether secret detection validity checks are available."""
  validityChecksAvailable: Boolean

  """Whether secret detection validity checks are enabled."""
  validityChecksEnabled: Boolean

  """Path to export vulnerability archives via API."""
  vulnerabilityArchiveExportPath: String

  """Path to vulnerability training documentation."""
  vulnerabilityTrainingDocsPath: String
}

"""Security feature information for a scan type."""
type SecurityFeature {
  """Anchor link for the security feature."""
  anchor: String

  """Path to configuration help documentation."""
  configurationHelpPath: String

  """Description of what the security feature does."""
  description: String!

  """Path to help documentation for the security feature."""
  helpPath: String!

  """Full name of the security feature."""
  name: String!

  """Secondary feature information."""
  secondary: SecondarySecurityFeature

  """Short name of the security feature."""
  shortName: String

  """Type identifier for the security feature."""
  type: String!
}

"""Autogenerated input type of SecurityFindingCreateIssue"""
input SecurityFindingCreateIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the security finding to be used to create an issue."""
  uuid: String!

  """ID of the project to attach the issue to."""
  project: ProjectID!
}

"""Autogenerated return type of SecurityFindingCreateIssue."""
type SecurityFindingCreateIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue
}

"""Autogenerated input type of SecurityFindingCreateMergeRequest"""
input SecurityFindingCreateMergeRequestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the security finding to be used to create a merge request."""
  uuid: String!
}

"""Autogenerated return type of SecurityFindingCreateMergeRequest."""
type SecurityFindingCreateMergeRequestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Merge Request created after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of SecurityFindingCreateVulnerability"""
input SecurityFindingCreateVulnerabilityInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the security finding to be used to create a vulnerability."""
  uuid: String!
}

"""Autogenerated return type of SecurityFindingCreateVulnerability."""
type SecurityFindingCreateVulnerabilityPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerability created after mutation."""
  vulnerability: Vulnerability
}

"""Autogenerated input type of SecurityFindingDismiss"""
input SecurityFindingDismissInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the finding to be dismissed."""
  uuid: String!

  """Comment why finding should be dismissed."""
  comment: String

  """Reason why finding should be dismissed."""
  dismissalReason: VulnerabilityDismissalReason
}

"""Autogenerated return type of SecurityFindingDismiss."""
type SecurityFindingDismissPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Dismissed finding."""
  securityFinding: PipelineSecurityReportFinding

  """UUID of dismissed finding."""
  uuid: String
}

"""Autogenerated input type of SecurityFindingExternalIssueLinkCreate"""
input SecurityFindingExternalIssueLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the security finding to be used to create an issue."""
  uuid: String!

  """Type of the external issue link."""
  linkType: VulnerabilityExternalIssueLinkType!

  """ID of the project to attach the issue to."""
  project: ProjectID!

  """External tracker type of the external issue link."""
  externalTracker: VulnerabilityExternalIssueLinkExternalTracker!
}

"""Autogenerated return type of SecurityFindingExternalIssueLinkCreate."""
type SecurityFindingExternalIssueLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created external issue link."""
  externalIssueLink: VulnerabilityExternalIssueLink
}

"""Autogenerated input type of SecurityFindingJiraIssueFormUrlCreate"""
input SecurityFindingJiraIssueFormUrlCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the security finding to be used to create an issue."""
  uuid: String!

  """ID of the project to attach the issue to."""
  project: ProjectID!
}

"""Autogenerated return type of SecurityFindingJiraIssueFormUrlCreate."""
type SecurityFindingJiraIssueFormUrlCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """URL to Jira issue creation form with pre-filled vulnerability data."""
  jiraIssueFormUrl: String
}

"""Autogenerated input type of SecurityFindingRevertToDetected"""
input SecurityFindingRevertToDetectedInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the finding to be dismissed."""
  uuid: String!

  """Comment that explains why finding was reverted to detected status."""
  comment: String
}

"""Autogenerated return type of SecurityFindingRevertToDetected."""
type SecurityFindingRevertToDetectedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Finding reverted to detected."""
  securityFinding: PipelineSecurityReportFinding
}

"""Autogenerated input type of SecurityFindingSeverityOverride"""
input SecurityFindingSeverityOverrideInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """UUID of the finding to modify."""
  uuid: String!

  """New severity value for the finding."""
  severity: VulnerabilitySeverity!
}

"""Autogenerated return type of SecurityFindingSeverityOverride."""
type SecurityFindingSeverityOverridePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Finding of which the severity was modified."""
  securityFinding: PipelineSecurityReportFinding
}

"""Represents the status of a secret token found in a security finding"""
type SecurityFindingTokenStatus {
  """When the token status was created."""
  createdAt: Time!

  """ID of the finding token status."""
  id: ID!

  """When the token was last verified with the issuing service."""
  lastVerifiedAt: Time

  """Status of the token (unknown, active, inactive)."""
  status: VulnerabilityFindingTokenStatusState!

  """When the token status was last updated."""
  updatedAt: Time!
}

"""Represents security metrics"""
type SecurityMetrics {
  """
  Total risk score information.
  This feature is currently under development and not yet available for general
  use Introduced in GitLab 18.4: **Status**: Experiment.
  """
  riskScore: RiskScore @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Vulnerability age statistics based on predefined age bands.
  See [`VulnerabilitiesByAge`](#vulnerabilitiesbyage) for details.
  This feature is currently under development and not yet available for general
  use Introduced in GitLab 18.9: **Status**: Experiment.
  """
  vulnerabilitiesByAge(
    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]
  ): [VulnerabilitiesByAge!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Vulnerability identifier statistics with filtering.
  This feature is currently under development and not yet available for general
  use Introduced in GitLab 18.10: **Status**: Experiment.
  """
  vulnerabilitiesByIdentifier(
    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]
  ): [VulnerabilitiesByIdentifier!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Vulnerability metrics over time with filtering and grouping capabilities.
  This feature is currently under development and not yet available for general use
  """
  vulnerabilitiesOverTime(
    """Start date for the vulnerability metrics time range."""
    startDate: ISO8601Date!

    """
    End date for the vulnerability metrics time range. The end date should be within 31 days from the start date.
    """
    endDate: ISO8601Date!

    """Filter vulnerabilities by severity."""
    severity: [VulnerabilitySeverity!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilitiesOverTimeConnection

  """
  Count of open vulnerabilities per severity level.
  This feature is currently under development and not yet available for general use
  """
  vulnerabilitiesPerSeverity(
    """
    Start date for the vulnerability metrics time range. Optional. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    startDate: ISO8601Date

    """
    End date for the vulnerability metrics time range. Optional. Introduced in GitLab 18.3: **Status**: Experiment.
    """
    endDate: ISO8601Date
  ): VulnerabilitiesPerSeverity
}

"""
A `SecurityOrchestrationPolicyConfigurationID` is a global ID. It is encoded as a string.

An example `SecurityOrchestrationPolicyConfigurationID` is: `"gid://gitlab/Security::OrchestrationPolicyConfiguration/1"`.
"""
scalar SecurityOrchestrationPolicyConfigurationID

"""
A `SecurityPipelineExecutionProjectScheduleID` is a global ID. It is encoded as a string.

An example `SecurityPipelineExecutionProjectScheduleID` is: `"gid://gitlab/Security::PipelineExecutionProjectSchedule/1"`.
"""
scalar SecurityPipelineExecutionProjectScheduleID

"""Represents a security policy"""
type SecurityPolicy {
  """ID of the security policy."""
  id: ID!

  """Name of the security policy."""
  name: String!
}

"""
A `SecurityPolicyID` is a global ID. It is encoded as a string.

An example `SecurityPolicyID` is: `"gid://gitlab/Security::Policy/1"`.
"""
scalar SecurityPolicyID

"""Autogenerated input type of SecurityPolicyProjectAssign"""
input SecurityPolicyProjectAssignInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project or group."""
  fullPath: String

  """Full path of the project. Deprecated in GitLab 14.10: Use `fullPath`."""
  projectPath: ID

  """ID of the security policy project."""
  securityPolicyProjectId: ProjectID!
}

"""Autogenerated return type of SecurityPolicyProjectAssign."""
type SecurityPolicyProjectAssignPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SecurityPolicyProjectCreateAsync"""
input SecurityPolicyProjectCreateAsyncInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project or group."""
  fullPath: String!
}

"""Autogenerated return type of SecurityPolicyProjectCreateAsync."""
type SecurityPolicyProjectCreateAsyncPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SecurityPolicyProjectCreate"""
input SecurityPolicyProjectCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project or group."""
  fullPath: String

  """Full path of the project. Deprecated in GitLab 14.10: Use `fullPath`."""
  projectPath: ID
}

"""Autogenerated return type of SecurityPolicyProjectCreate."""
type SecurityPolicyProjectCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Security Policy Project that was created."""
  project: Project
}

"""Autogenerated input type of SecurityPolicyProjectUnassign"""
input SecurityPolicyProjectUnassignInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project or group."""
  fullPath: String

  """Full path of the project. Deprecated in GitLab 14.10: Use `fullPath`."""
  projectPath: ID
}

"""Autogenerated return type of SecurityPolicyProjectUnassign."""
type SecurityPolicyProjectUnassignPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

enum SecurityPolicyRelationType {
  """Policies defined for the project/group only."""
  DIRECT

  """Policies defined for the project/group and ancestor groups."""
  INHERITED

  """Policies defined for the project/group's ancestor groups only."""
  INHERITED_ONLY

  """
  Policies defined for the group's descendant projects/groups only. Only valid
  for group policies. Policies apply only to the 50 most recently created
  descendant policy projects.
  """
  DESCENDANT
}

"""
A `SecurityPolicySchedulePipelineID` is a global ID. It is encoded as a string.

An example `SecurityPolicySchedulePipelineID` is: `"gid://gitlab/Security::PolicySchedulePipeline/1"`.
"""
scalar SecurityPolicySchedulePipelineID

"""Represents a policy source. Its fields depend on the source type."""
union SecurityPolicySource = GroupSecurityPolicySource | ProjectSecurityPolicySource

"""Represents the security policy"""
type SecurityPolicyType implements OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Number of projects linked to this policy. Does not account for policy_scope
  filtering. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  linkedProjectsCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """Name of the policy."""
  name: String!

  """Attributes specific to the policy type."""
  policyAttributes: PolicyAttributesUnion!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """
  Test runs for this security policy. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  testRuns(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PolicyScheduleTestRunConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Description of the policy type."""
  type: String

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

"""The connection type for SecurityPolicyType."""
type SecurityPolicyTypeConnection {
  """A list of edges."""
  edges: [SecurityPolicyTypeEdge]

  """A list of nodes."""
  nodes: [SecurityPolicyType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SecurityPolicyTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SecurityPolicyType
}

"""Security policy validation error"""
type SecurityPolicyValidationError {
  """Error field."""
  field: String!

  """Index of the errored action."""
  index: Int

  """Error level."""
  level: String!

  """Error message."""
  message: String!

  """Error title."""
  title: String
}

"""Aggregated security posture counters for a namespace."""
type SecurityPostureCounters {
  """
  Number of unarchived projects with at least one failed scan. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  withFailures: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Number of unarchived projects with at least one security scanner configured.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  withScanners: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Number of unarchived projects with at least one stale scan. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  withStale: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
}

enum SecurityPreferredLicenseSourceConfiguration {
  """Use the SBOM as a source of license information for dependencies."""
  SBOM

  """
  Use internal instance license database as a source of license information for dependencies.
  """
  PMDB
}

"""
A `SecurityProjectSecurityExclusionID` is a global ID. It is encoded as a string.

An example `SecurityProjectSecurityExclusionID` is: `"gid://gitlab/Security::ProjectSecurityExclusion/1"`.
"""
scalar SecurityProjectSecurityExclusionID

"""
A `SecurityProjectTrackedContextID` is a global ID. It is encoded as a string.

An example `SecurityProjectTrackedContextID` is: `"gid://gitlab/Security::ProjectTrackedContext/1"`.
"""
scalar SecurityProjectTrackedContextID

input SecurityRefInput {
  """Name of the ref."""
  name: String!

  """Type of ref (branch or tag)."""
  refType: SecurityTrackedRefType!
}

"""Autogenerated input type of SecurityRefsTrack"""
input SecurityRefsTrackInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Array of refs to be tracked."""
  refs: [SecurityRefInput!]!
}

"""Autogenerated return type of SecurityRefsTrack."""
type SecurityRefsTrackPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the operation."""
  errors: [String!]!

  """Refs that were successfully tracked."""
  trackedRefs: [SecurityTrackedRef!]
}

"""Autogenerated input type of SecurityRefsUntrack"""
input SecurityRefsUntrackInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of the tracked refs to stop tracking."""
  refIds: [SecurityProjectTrackedContextID!]!
}

"""Autogenerated return type of SecurityRefsUntrack."""
type SecurityRefsUntrackPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Global IDs of refs that were successfully untracked."""
  untrackedRefIds: [ID!]
}

"""Represents summary of a security report"""
type SecurityReportSummary {
  """Aggregated counts for the `api_fuzzing` scan"""
  apiFuzzing: SecurityReportSummarySection

  """Aggregated counts for the `cluster_image_scanning` scan"""
  clusterImageScanning: SecurityReportSummarySection

  """Aggregated counts for the `container_scanning` scan"""
  containerScanning: SecurityReportSummarySection

  """Aggregated counts for the `container_scanning_for_registry` scan"""
  containerScanningForRegistry: 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 `generic` scan"""
  generic: SecurityReportSummarySection

  """Aggregated counts for the `sarif` scan"""
  sarif: 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 {
  """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

  """List of security scans ran for the type."""
  scans(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ScanConnection!

  """Total number of vulnerabilities."""
  vulnerabilitiesCount: Int
}

enum SecurityReportTypeEnum {
  """SAST scan report"""
  SAST

  """SAST ADVANCED scan report"""
  SAST_ADVANCED

  """SAST IAC scan report"""
  SAST_IAC

  """DAST scan report"""
  DAST

  """DEPENDENCY SCANNING scan report"""
  DEPENDENCY_SCANNING

  """CONTAINER SCANNING scan report"""
  CONTAINER_SCANNING

  """SECRET DETECTION scan report"""
  SECRET_DETECTION

  """COVERAGE FUZZING scan report"""
  COVERAGE_FUZZING

  """API FUZZING scan report"""
  API_FUZZING

  """CLUSTER IMAGE SCANNING scan report"""
  CLUSTER_IMAGE_SCANNING
}

"""Security scan feature configuration."""
type SecurityScanFeature {
  """Whether the security scan is available for the project."""
  available: Boolean!

  """Whether the security scan can be enabled via merge request."""
  canEnableByMergeRequest: Boolean!

  """Whether the current user can configure the security scan."""
  canUserConfigure: Boolean!

  """Path to configure the security scan."""
  configurationPath: String

  """Whether the security scan is configured for the project."""
  configured: Boolean!

  """Path to additional information about the security scan."""
  metaInfoPath: String

  """Whether on-demand scanning is available for the scan type."""
  onDemandAvailable: Boolean!

  """Additional security features specific to the scan type."""
  securityFeatures: SecurityFeature

  """Type of security scan (e.g., sast, dast, secret_detection)."""
  type: String!
}

"""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!]
}

"""The type of the security scanner"""
enum SecurityScannerType {
  """SAST scanner"""
  SAST

  """SAST advanced scanner"""
  SAST_ADVANCED

  """SAST IaC scanner"""
  SAST_IAC

  """DAST scanner"""
  DAST

  """Dependency scanning scanner"""
  DEPENDENCY_SCANNING

  """Container scanning scanner"""
  CONTAINER_SCANNING

  """Secret detection scanner"""
  SECRET_DETECTION

  """Coverage fuzzing scanner"""
  COVERAGE_FUZZING

  """API fuzzing scanner"""
  API_FUZZING

  """Cluster image scanning scanner"""
  CLUSTER_IMAGE_SCANNING
}

"""Autogenerated input type of SecurityScanProfileAttach"""
input SecurityScanProfileAttachInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Security scan profile ID to attach."""
  securityScanProfileId: SecurityScanProfileID!

  """Project IDs to attach the profile to."""
  projectIds: [ProjectID!] = []

  """Group IDs to attach the profile to."""
  groupIds: [GroupID!] = []
}

"""Autogenerated return type of SecurityScanProfileAttach."""
type SecurityScanProfileAttachPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SecurityScanProfileDetach"""
input SecurityScanProfileDetachInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Security scan profile ID to detach."""
  securityScanProfileId: SecurityScanProfileID!

  """Project IDs to detach the profile from."""
  projectIds: [ProjectID!] = []

  """Group IDs to detach the profile from."""
  groupIds: [GroupID!] = []
}

"""Autogenerated return type of SecurityScanProfileDetach."""
type SecurityScanProfileDetachPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
A `SecurityScanProfileID` is a global ID. It is encoded as a string.

An example `SecurityScanProfileID` is: `"gid://gitlab/Security::ScanProfile/1"`.
"""
scalar SecurityScanProfileID

"""Scan profile type"""
enum SecurityScanProfileType {
  """Sast"""
  SAST

  """Secret detection"""
  SECRET_DETECTION

  """Container scanning"""
  CONTAINER_SCANNING

  """Dependency scanning"""
  DEPENDENCY_SCANNING

  """
  Dependency scanning post processing. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  DEPENDENCY_SCANNING_POST_PROCESSING @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.2.")
}

"""
A `SecurityScheduledPipelineExecutionPolicyTestRunID` is a global ID. It is encoded as a string.

An example `SecurityScheduledPipelineExecutionPolicyTestRunID` is:
`"gid://gitlab/Security::ScheduledPipelineExecutionPolicyTestRun/1"`.
"""
scalar SecurityScheduledPipelineExecutionPolicyTestRunID

"""Represents a ref (branch or tag) tracked for security vulnerabilities"""
type SecurityTrackedRef {
  """Latest commit on the ref."""
  commit: Commit

  """Global ID of the tracked ref."""
  id: ID!

  """Whether the ref is the default branch."""
  isDefault: Boolean!

  """Whether the ref is protected."""
  isProtected: Boolean!

  """Name of the ref (branch or tag name)."""
  name: String!

  """Type of the ref being tracked."""
  refType: SecurityTrackedRefType!

  """Current tracking state of the ref."""
  state: SecurityTrackedRefState!

  """When tracking was enabled for the ref."""
  trackedAt: Time!

  """Count of open vulnerabilities on the ref."""
  vulnerabilitiesCount: Int!
}

"""The connection type for SecurityTrackedRef."""
type SecurityTrackedRefConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [SecurityTrackedRefEdge]

  """A list of nodes."""
  nodes: [SecurityTrackedRef]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SecurityTrackedRefEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SecurityTrackedRef
}

"""Return vulnerabilities scoped to certain types of refs."""
enum SecurityTrackedRefScope {
  """Returns vulnerabilities that are on a default branch."""
  DEFAULT_BRANCHES

  """Returns all tracked refs. This is the same as omitting the filter."""
  ALL_REFS
}

"""State of security tracked ref."""
enum SecurityTrackedRefState {
  """Ref is being tracked for vulnerabilities."""
  TRACKED

  """Ref is not being tracked for vulnerabilities."""
  UNTRACKED
}

"""Type of ref being tracked for security vulnerabilities."""
enum SecurityTrackedRefType {
  """Branch ref."""
  BRANCH

  """Tag ref."""
  TAG
}

"""
A `SecurityTrainingProviderID` is a global ID. It is encoded as a string.

An example `SecurityTrainingProviderID` is: `"gid://gitlab/Security::TrainingProvider/1"`.
"""
scalar SecurityTrainingProviderID

"""Autogenerated input type of SecurityTrainingUpdate"""
input SecurityTrainingUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """ID of the provider."""
  providerId: SecurityTrainingProviderID!

  """Sets the training provider as enabled for the project."""
  isEnabled: Boolean!

  """Sets the training provider as primary for the project."""
  isPrimary: Boolean
}

"""Autogenerated return type of SecurityTrainingUpdate."""
type SecurityTrainingUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Represents the training entity subject to mutation."""
  training: ProjectSecurityTraining
}

"""Represents a URL related to a security training"""
type SecurityTrainingUrl {
  """Name of the vulnerability identifier."""
  identifier: String

  """Name of the training provider."""
  name: String

  """Status of the request to training provider."""
  status: TrainingUrlRequestStatus

  """URL of the link for security training content."""
  url: String
}

"""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!

  """Error tracking backend."""
  integrated: Boolean

  """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: GitlabErrorTrackingDetailedErrorID!
  ): SentryDetailedError

  """Stack Trace of Sentry Error."""
  errorStackTrace(
    """ID of the Sentry issue."""
    id: GitlabErrorTrackingDetailedErrorID!
  ): SentryErrorStackTrace

  """Collection of Sentry Errors."""
  errors(
    """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): 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 resolved."""
  RESOLVED

  """Error has been ignored until next release."""
  RESOLVED_IN_NEXT_RELEASE

  """Error is unresolved."""
  UNRESOLVED

  """Error has been ignored."""
  IGNORED
}

"""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

  """Type of the service."""
  serviceType: ServiceType

  """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 {
  """Apple App Store Connect integration"""
  APPLE_APP_STORE_SERVICE

  """Asana integration"""
  ASANA_SERVICE

  """Assembla integration"""
  ASSEMBLA_SERVICE

  """Atlassian Bamboo integration"""
  BAMBOO_SERVICE

  """Bugzilla integration"""
  BUGZILLA_SERVICE

  """Buildkite integration"""
  BUILDKITE_SERVICE

  """Campfire integration"""
  CAMPFIRE_SERVICE

  """ClickUp integration"""
  CLICKUP_SERVICE

  """Confluence Workspace integration"""
  CONFLUENCE_SERVICE

  """Custom issue tracker integration"""
  CUSTOM_ISSUE_TRACKER_SERVICE

  """Datadog integration"""
  DATADOG_SERVICE

  """Diffblue Cover integration"""
  DIFFBLUE_COVER_SERVICE

  """Discord Notifications integration"""
  DISCORD_SERVICE

  """Drone integration"""
  DRONE_CI_SERVICE

  """Emails on push integration"""
  EMAILS_ON_PUSH_SERVICE

  """EWM integration"""
  EWM_SERVICE

  """External wiki integration"""
  EXTERNAL_WIKI_SERVICE

  """GitGuardian integration"""
  GIT_GUARDIAN_SERVICE

  """GitHub integration"""
  GITHUB_SERVICE

  """GitLab for Slack app integration"""
  GITLAB_SLACK_APPLICATION_SERVICE

  """Google Artifact Management integration (SaaS only)"""
  GOOGLE_CLOUD_PLATFORM_ARTIFACT_REGISTRY_SERVICE

  """Google Cloud IAM integration (SaaS only)"""
  GOOGLE_CLOUD_PLATFORM_WORKLOAD_IDENTITY_FEDERATION_SERVICE

  """Google Play integration"""
  GOOGLE_PLAY_SERVICE

  """Google Chat integration"""
  HANGOUTS_CHAT_SERVICE

  """Harbor integration"""
  HARBOR_SERVICE

  """irker (IRC gateway) integration"""
  IRKER_SERVICE

  """Jenkins integration"""
  JENKINS_SERVICE

  """Jira issues integration"""
  JIRA_SERVICE

  """GitLab for Jira Cloud app integration"""
  JIRA_CLOUD_APP_SERVICE

  """Linear integration"""
  LINEAR_SERVICE

  """Matrix notifications integration"""
  MATRIX_SERVICE

  """Mattermost notifications integration"""
  MATTERMOST_SERVICE

  """Mattermost slash commands integration"""
  MATTERMOST_SLASH_COMMANDS_SERVICE

  """Microsoft Teams notifications integration"""
  MICROSOFT_TEAMS_SERVICE

  """Packagist integration"""
  PACKAGIST_SERVICE

  """Phorge integration"""
  PHORGE_SERVICE

  """Pipeline status emails integration"""
  PIPELINES_EMAIL_SERVICE

  """Pivotal Tracker integration"""
  PIVOTALTRACKER_SERVICE

  """Pumble integration"""
  PUMBLE_SERVICE

  """Pushover integration"""
  PUSHOVER_SERVICE

  """Redmine integration"""
  REDMINE_SERVICE

  """Slack notifications integration"""
  SLACK_SERVICE

  """Squash TM integration"""
  SQUASH_TM_SERVICE

  """JetBrains TeamCity integration"""
  TEAMCITY_SERVICE

  """Telegram integration"""
  TELEGRAM_SERVICE

  """Unify Circuit integration"""
  UNIFY_CIRCUIT_SERVICE

  """Webex Teams integration"""
  WEBEX_TEAMS_SERVICE

  """JetBrains YouTrack integration"""
  YOUTRACK_SERVICE

  """ZenTao integration"""
  ZENTAO_SERVICE
}

"""Autogenerated input type of SetContainerScanningForRegistry"""
input SetContainerScanningForRegistryInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace (project)."""
  namespacePath: ID!

  """Desired status for container scanning for registry feature."""
  enable: Boolean!
}

"""Autogenerated return type of SetContainerScanningForRegistry."""
type SetContainerScanningForRegistryPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether the feature is enabled."""
  containerScanningForRegistryEnabled: Boolean

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SetCvsForContainerScanning"""
input SetCvsForContainerScanningInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Desired status for CVS for container scanning."""
  enable: Boolean!
}

"""Autogenerated return type of SetCvsForContainerScanning."""
type SetCvsForContainerScanningPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether CVS for container scanning is enabled."""
  cvsForContainerScanningEnabled: Boolean

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SetCvsForDependencyScanning"""
input SetCvsForDependencyScanningInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Desired status for CVS for dependency scanning."""
  enable: Boolean!
}

"""Autogenerated return type of SetCvsForDependencyScanning."""
type SetCvsForDependencyScanningPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether CVS for dependency scanning is enabled."""
  cvsForDependencyScanningEnabled: Boolean

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SetGroupCustomAttribute"""
input SetGroupCustomAttributeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group."""
  groupPath: ID!

  """Key of the custom attribute."""
  key: String!

  """Value of the custom attribute."""
  value: String!
}

"""Autogenerated return type of SetGroupCustomAttribute."""
type SetGroupCustomAttributePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Custom attribute after mutation."""
  customAttribute: CustomAttribute

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SetGroupSecretPushProtection"""
input SetGroupSecretPushProtectionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether to enable the feature."""
  secretPushProtectionEnabled: Boolean!

  """Full path of the group."""
  namespacePath: ID!

  """IDs of projects to exclude from the feature."""
  projectsToExclude: [Int!]
}

"""Autogenerated return type of SetGroupSecretPushProtection."""
type SetGroupSecretPushProtectionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of SetGroupValidityChecks"""
input SetGroupValidityChecksInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Whether to enable validity checks for all projects in the group."""
  validityChecksEnabled: Boolean!

  """Full path of the group."""
  namespacePath: ID!

  """IDs of projects to exclude from validity checks configuration."""
  projectsToExclude: [Int!]
}

"""Autogenerated return type of SetGroupValidityChecks."""
type SetGroupValidityChecksPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Indicates whether validity checks have been enabled for the group."""
  validityChecksEnabled: Boolean!
}

"""Autogenerated input type of SetLicenseConfigurationSource"""
input SetLicenseConfigurationSourceInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Preferred source of license information for dependencies."""
  source: SecurityPreferredLicenseSourceConfiguration!
}

"""Autogenerated return type of SetLicenseConfigurationSource."""
type SetLicenseConfigurationSourcePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Preferred source of license information for dependencies."""
  licenseConfigurationSource: SecurityPreferredLicenseSourceConfiguration
}

"""Autogenerated input type of SetLicenseScanningForCyclonedx"""
input SetLicenseScanningForCyclonedxInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project."""
  projectPath: ID!

  """Desired status for license scanning for CycloneDX files."""
  enable: Boolean!
}

"""Autogenerated return type of SetLicenseScanningForCyclonedx."""
type SetLicenseScanningForCyclonedxPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Whether license scanning for CycloneDX files is enabled."""
  licenseScanningForCyclonedxEnabled: Boolean
}

"""Autogenerated input type of SetPagesForceHttps"""
input SetPagesForceHttpsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Indicates user wants to enforce HTTPS on their pages."""
  value: Boolean!

  """Path of the project to set the pages force HTTPS."""
  projectPath: ID!
}

"""Autogenerated return type of SetPagesForceHttps."""
type SetPagesForceHttpsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project that was updated."""
  project: Project
}

"""Autogenerated input type of SetPagesUseUniqueDomain"""
input SetPagesUseUniqueDomainInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Indicates user wants to use unique subdomains for their pages."""
  value: Boolean!

  """Path of the project to set the pages to use unique domains."""
  projectPath: ID!
}

"""Autogenerated return type of SetPagesUseUniqueDomain."""
type SetPagesUseUniqueDomainPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Project that was updated."""
  project: Project
}

"""Autogenerated input type of SetPreReceiveSecretDetection"""
input SetPreReceiveSecretDetectionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace (project)."""
  namespacePath: ID!

  """Desired status for secret push protection feature."""
  enable: Boolean!
}

"""Autogenerated return type of SetPreReceiveSecretDetection."""
type SetPreReceiveSecretDetectionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Whether the feature is enabled."""
  preReceiveSecretDetectionEnabled: Boolean

  """Whether the feature is enabled."""
  secretPushProtectionEnabled: Boolean
}

"""Autogenerated input type of SetSecretPushProtection"""
input SetSecretPushProtectionInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace (project)."""
  namespacePath: ID!

  """Desired status for secret push protection feature."""
  enable: Boolean!
}

"""Autogenerated return type of SetSecretPushProtection."""
type SetSecretPushProtectionPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Whether the feature is enabled."""
  preReceiveSecretDetectionEnabled: Boolean

  """Whether the feature is enabled."""
  secretPushProtectionEnabled: Boolean
}

"""Autogenerated input type of SetValidityChecks"""
input SetValidityChecksInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace (project)."""
  namespacePath: ID!

  """Desired status for validity checks feature."""
  enable: Boolean!
}

"""Autogenerated return type of SetValidityChecks."""
type SetValidityChecksPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Whether the feature is enabled."""
  validityChecksEnabled: Boolean
}

"""Represents a vulnerability severity override"""
type SeverityOverride {
  """User who changed the severity."""
  author: UserCore!

  """Time of severity change."""
  createdAt: Time

  """New severity of the vulnerability."""
  newSeverity: VulnerabilitySeverity!

  """Original severity of the vulnerability."""
  originalSeverity: VulnerabilitySeverity!
}

"""The connection type for SeverityOverride."""
type SeverityOverrideConnection {
  """A list of edges."""
  edges: [SeverityOverrideEdge]

  """A list of nodes."""
  nodes: [SeverityOverride]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SeverityOverrideEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SeverityOverride
}

"""How to format SHA strings."""
enum ShaFormat {
  """Abbreviated format. Short SHAs are typically eight characters long."""
  SHORT

  """Unabbreviated format."""
  LONG
}

enum SharedRunnersSetting {
  """Sharing of runners is disabled and unoverridable."""
  DISABLED_AND_UNOVERRIDABLE

  """Sharing of runners is disabled and overridable."""
  DISABLED_AND_OVERRIDABLE

  """Sharing of runners is enabled."""
  ENABLED
}

"""Duo Chat slash command"""
type SlashCommand {
  """Description of what the slash command does."""
  description: String!

  """Name of the slash command."""
  name: String!

  """
  Indicates whether the command should be submitted automatically when clicked.
  """
  shouldSubmit: Boolean!
}

"""Represents a snippet entry"""
type Snippet implements NoteableInterface {
  """Owner of the snippet."""
  author: UserCore

  """Snippet blobs."""
  blobs(
    """Paths of the blobs."""
    paths: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetBlobConnection

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Timestamp the snippet was created."""
  createdAt: Time!

  """Description of the snippet."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """All discussions on the 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

  """Indicates the snippet is hidden because the author has been banned."""
  hidden: Boolean!

  """HTTP URL to the snippet repository."""
  httpUrlToRepo: String

  """ID of the snippet."""
  id: SnippetID!

  """Indicates whether the snippet was imported."""
  imported: Boolean!

  """Import source of the snippet."""
  importedFrom: ImportSource!

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """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 the 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!

  """Raw content of the blob, if the blob is text data."""
  rawPlainData: 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 a snippet blob."""
  create

  """Update a snippet blob."""
  update

  """Delete a snippet blob."""
  delete

  """Move a snippet blob."""
  move
}

"""Represents an action to perform over a snippet file"""
input SnippetBlobActionInputType {
  """Type of input action."""
  action: SnippetBlobActionEnum!

  """Previous path of the snippet file."""
  previousPath: String

  """Path of the snippet file."""
  filePath: String!

  """Snippet file content."""
  content: String
}

"""The connection type for SnippetBlob."""
type SnippetBlobConnection {
  """A list of edges."""
  edges: [SnippetBlobEdge]

  """Indicates if the snippet has unretrievable blobs."""
  hasUnretrievableBlobs: Boolean!

  """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 asynchronously."""
  loadAsync: Boolean!

  """Loading partial name."""
  loadingPartialName: String!

  """Error rendering the blob content."""
  renderError: String

  """Shows whether the blob is 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
}

"""
A `SnippetID` is a global ID. It is encoded as a string.

An example `SnippetID` is: `"gid://gitlab/Snippet/1"`.
"""
scalar SnippetID

type SnippetPermissions {
  """If `true`, the user can perform `admin_snippet` on this resource"""
  adminSnippet: Boolean!

  """If `true`, the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """If `true`, the user can perform `read_snippet` on this resource"""
  readSnippet: Boolean!

  """If `true`, the user can perform `report_snippet` on this resource"""
  reportSnippet: Boolean!

  """If `true`, the user can perform `update_snippet` on this resource"""
  updateSnippet: Boolean!
}

"""Represents the Geo sync and verification state of a snippet repository"""
type SnippetRepositoryRegistry {
  """
  Indicate if the checksums of the SnippetRepositoryRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the SnippetRepositoryRegistry was created"""
  createdAt: Time

  """Path to the data management view for this SnippetRepositoryRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the SnippetRepositoryRegistry"""
  id: ID!

  """Error message during sync of the SnippetRepositoryRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the SnippetRepositoryRegistry
  """
  lastSyncedAt: Time

  """Indicate if the SnippetRepositoryRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the SnippetRepositoryRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the SnippetRepositoryRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the SnippetRepositoryRegistry
  """
  retryCount: Int

  """ID of the Snippet Repository."""
  snippetRepositoryId: ID!

  """Sync state of the SnippetRepositoryRegistry"""
  state: RegistryState

  """The local checksum of the SnippetRepositoryRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the SnippetRepositoryRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the SnippetRepositoryRegistry"""
  verificationFailure: String

  """Timestamp after which the SnippetRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the SnippetRepositoryRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of SnippetRepositoryRegistry started"""
  verificationStartedAt: Time

  """Verification state of the SnippetRepositoryRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the SnippetRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for SnippetRepositoryRegistry."""
type SnippetRepositoryRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [SnippetRepositoryRegistryEdge]

  """A list of nodes."""
  nodes: [SnippetRepositoryRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SnippetRepositoryRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SnippetRepositoryRegistry
}

"""Common sort values"""
enum Sort {
  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Values for sort direction"""
enum SortDirectionEnum {
  """Ascending order."""
  ASC

  """Descending order."""
  DESC
}

"""
Values for sorting the mapping of users on source instance to users on destination instance.
"""
enum SourceUserSort {
  """Status of the mapping by ascending order."""
  STATUS_ASC

  """Status of the mapping by descending order."""
  STATUS_DESC

  """Instance source name by ascending order."""
  SOURCE_NAME_ASC

  """Instance source name by descending order."""
  SOURCE_NAME_DESC

  """ID of the source user by ascending order."""
  ID_ASC

  """ID of the source user by descending order."""
  ID_DESC
}

"""SPDX license entry from the SPDX licence catalogue."""
type SpdxLicense {
  """Full name of the license."""
  name: String!

  """SPDX identifier of the license."""
  spdxIdentifier: String!

  """URL to the SPDX license page."""
  url: String
}

"""Squash option overrides for a protected branch"""
type SquashOption {
  """Help text for the squash option."""
  helpText: String!

  """Human-readable description of the squash option."""
  option: String!
}

"""Options for default squash behaviour for merge requests"""
enum SquashOptionSetting {
  """Do not allow."""
  NEVER

  """Allow."""
  ALLOWED

  """Encourage."""
  ENCOURAGED

  """Require."""
  ALWAYS
}

"""SSH signature for a signed commit"""
type SshSignature implements CommitSignature {
  """SHA of the associated commit."""
  commitSha: String

  """SSH key used for the signature."""
  key: Key

  """Fingerprint of the key."""
  keyFingerprintSha256: String

  """Project of the associated commit."""
  project: Project

  """User associated with the key."""
  user: UserCore

  """Indicates verification status of the associated key or certificate."""
  verificationStatus: VerificationStatus
}

"""Represents a standard role"""
type StandardRole implements RoleInterface {
  """Access level as a number."""
  accessLevel: Int!

  """Role description."""
  description: String

  """
  URL path to the role details webpage. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  detailsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Role ID."""
  id: ID!

  """Role name."""
  name: String
}

"""The connection type for StandardRole."""
type StandardRoleConnection {
  """A list of edges."""
  edges: [StandardRoleEdge]

  """A list of nodes."""
  nodes: [StandardRole]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type StandardRoleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: StandardRole
}

"""Progress of standards adherence checks"""
type StandardsAdherenceChecksStatus {
  """Number of adherence checks successfully completed."""
  checksCompleted: Int!

  """UTC timestamp when the adherence checks scan was started."""
  startedAt: Time!

  """
  Number of adherence checks multiplied by the number of projects in the group.
  """
  totalChecks: Int!
}

"""Autogenerated input type of StarProject"""
input StarProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project to star or unstar."""
  projectId: ProjectID!

  """Indicates whether to star or unstar the project."""
  starred: Boolean!
}

"""Autogenerated return type of StarProject."""
type StarProjectPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Number of stars for the project."""
  count: String!

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type StatusAction {
  """Title for the button, for example: Retry the job."""
  buttonTitle: String

  """
  Custom confirmation message for a manual job. Introduced in GitLab 17.0: **Status**: Experiment.
  """
  confirmationMessage: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.")

  """Icon used in the action button."""
  icon: String

  """ID for a status action."""
  id: 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
}

"""Input for mapping a removed status to a replacement status"""
input StatusMappingInput {
  """Global ID of the status being removed/replaced."""
  oldStatusId: WorkItemsStatusesStatusID!

  """Global ID of the replacement status."""
  newStatusId: WorkItemsStatusesStatusID!
}

"""The connection type for String."""
type StringConnection {
  """A list of edges."""
  edges: [StringEdge]

  """A list of nodes."""
  nodes: [String]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type StringEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: String
}

"""an expression with a string value."""
type StringExpression implements ExpressionInterface {
  """Field the expression applies to."""
  field: String!

  """Operator of the expression."""
  operator: String!

  """String value of the expression."""
  value: 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!

  """SHA of 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
}

type Subscription {
  """
  Triggered when a response from AI integration is received. Introduced in GitLab 15.11: **Status**: Experiment.
  """
  aiCompletionResponse(
    """ID of the resource."""
    resourceId: AiModelID

    """ID of the user."""
    userId: UserID

    """
    Client generated ID that be subscribed to, to receive a response for the mutation.
    """
    clientSubscriptionId: String

    """Name of the AI action performed as part of the mutation."""
    aiAction: AiAction
  ): AiMessage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.")

  """Triggered when a job changes state."""
  ciJobProcessed(
    """Global ID of the project."""
    projectId: ProjectID!

    """Indicates if the job contains artifacts."""
    withArtifacts: Boolean
  ): CiJob

  """Triggered when a job status is updated."""
  ciJobStatusUpdated(
    """Global ID of the job."""
    jobId: CiBuildID!
  ): CiJob

  """
  Triggered when pipeline creation requests are updated for a merge request.
  """
  ciPipelineCreationRequestsUpdated(
    """Global ID of the merge request."""
    mergeRequestId: MergeRequestID!
  ): MergeRequest

  """
  Triggered when a pipeline schedule is updated. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  ciPipelineScheduleStatusUpdated(
    """Global ID of the project."""
    projectId: ProjectID!
  ): PipelineSchedule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Triggered when a pipeline status is updated. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  ciPipelineStatusUpdated(
    """Global ID of the pipeline."""
    pipelineId: CiPipelineID!
  ): Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Triggered when any pipeline status is updated. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  ciPipelineStatusesUpdated(
    """Global ID of the project."""
    projectId: ProjectID!
  ): Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Triggered when a stage status is updated. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  ciStageStatusUpdated(
    """Global ID of the stage."""
    stageId: CiStageID!
  ): CiStage @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Triggered when jobs in a stage are updated. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  ciStageUpdated(
    """Global ID of the stage."""
    stageId: CiStageID!
  ): CiJob @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """Triggered when the assignees of an issuable are updated."""
  issuableAssigneesUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the due date or start date of an issuable is updated."""
  issuableDatesUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the description of an issuable is updated."""
  issuableDescriptionUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the epic of an issuable is updated."""
  issuableEpicUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the health status of an issuable is updated."""
  issuableHealthStatusUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the iteration of an issuable is updated."""
  issuableIterationUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the labels of an issuable are updated."""
  issuableLabelsUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the milestone of an issuable is updated."""
  issuableMilestoneUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the title of an issuable is updated."""
  issuableTitleUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """
  Triggered when a todo on an issuable is updated. Introduced in GitLab 17.5: **Status**: Experiment.
  """
  issuableTodoUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.5.")

  """Triggered when the weight of an issuable is updated."""
  issuableWeightUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the crm contacts of an issuable are updated."""
  issueCrmContactsUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when approval state of a merge request is updated."""
  mergeRequestApprovalStateUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when a merge request diff is generated."""
  mergeRequestDiffGenerated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the merge status of a merge request is updated."""
  mergeRequestMergeStatusUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """Triggered when the reviewers of a merge request are updated."""
  mergeRequestReviewersUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """
  Triggered when the security policy sync updates the status. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  securityPoliciesSyncUpdated(
    """ID of the security orchestration policy configuration."""
    policyConfigurationId: SecurityOrchestrationPolicyConfigurationID!
  ): PoliciesSyncUpdated @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Triggered when the security policy project is created for a specific group or
  project. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  securityPolicyProjectCreated(
    """Full path of the project or group."""
    fullPath: String!
  ): PolicyProjectCreated @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Triggered when a policy schedule test run state is updated. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  securityPolicyScheduleTestRunUpdated(
    """Global ID of the policy schedule test run."""
    testRunId: SecurityScheduledPipelineExecutionPolicyTestRunID!
  ): PolicyScheduleTestRun @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Triggered when a merge request the user is an assignee or a reviewer of is
  updated. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  userMergeRequestUpdated(
    """ID of the user."""
    userId: UserID!
  ): MergeRequest @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Triggered when a note is created. Introduced in GitLab 15.9: **Status**: Experiment.
  """
  workItemNoteCreated(
    """ID of the noteable."""
    noteableId: NoteableID
  ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """
  Triggered when a note is deleted. Introduced in GitLab 15.9: **Status**: Experiment.
  """
  workItemNoteDeleted(
    """ID of the noteable."""
    noteableId: NoteableID
  ): DeletedNote @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """
  Triggered when a note is updated. Introduced in GitLab 15.9: **Status**: Experiment.
  """
  workItemNoteUpdated(
    """ID of the noteable."""
    noteableId: NoteableID
  ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """Triggered when a work item is updated."""
  workItemUpdated(
    """ID of the work item."""
    workItemId: WorkItemID!
  ): WorkItem

  """Triggered when the checkpoints/events of a workflow is updated."""
  workflowEventsUpdated(
    """Workflow ID to fetch duo workflow."""
    workflowId: AiDuoWorkflowsWorkflowID!
  ): DuoWorkflowEvent
}

"""Represents an entry from the future subscriptions"""
type SubscriptionFutureEntry {
  """Company of the licensee."""
  company: String

  """Email of the licensee."""
  email: String

  """Date when the license expires."""
  expiresAt: Date

  """Name of the licensee."""
  name: String

  """Name of the subscription plan."""
  plan: String!

  """Date when the license started."""
  startsAt: Date

  """Type of license the subscription will yield."""
  type: String!

  """Number of paid user seats."""
  usersInLicenseCount: Int
}

"""The connection type for SubscriptionFutureEntry."""
type SubscriptionFutureEntryConnection {
  """A list of edges."""
  edges: [SubscriptionFutureEntryEdge]

  """A list of nodes."""
  nodes: [SubscriptionFutureEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SubscriptionFutureEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: SubscriptionFutureEntry
}

"""Types of change for a subscription history record"""
enum SubscriptionHistoryChangeType {
  """This was the previous state before the subscription was updated."""
  GITLAB_SUBSCRIPTION_UPDATED

  """This was the previous state before the subscription was destroyed."""
  GITLAB_SUBSCRIPTION_DESTROYED
}

"""Status of the subscription to an issuable."""
enum SubscriptionStatus {
  """User is explicitly subscribed to the issuable."""
  EXPLICITLY_SUBSCRIBED

  """User is explicitly unsubscribed from the issuable."""
  EXPLICITLY_UNSUBSCRIBED
}

"""Represents a Suggested Reviewers result set"""
type SuggestedReviewersType {
  """List of accepted reviewer usernames."""
  accepted: [String!]

  """Timestamp of when the suggestions were created."""
  createdAt: Time!

  """List of suggested reviewer usernames."""
  suggested: [String!]!

  """Timestamp of when the suggestions were updated."""
  updatedAt: Time!
}

type Suggestion {
  """Indicates whether the suggestion has been applied."""
  applied: Boolean!

  """Original content being replaced by the suggestion."""
  fromContent: String!

  """First line number of the change being suggested."""
  fromLine: Int!

  """ID of the suggestion."""
  id: SuggestionID!

  """Content suggested as the replacement."""
  toContent: String!

  """Last line number of the change being suggested."""
  toLine: Int!
}

"""The connection type for Suggestion."""
type SuggestionConnection {
  """A list of edges."""
  edges: [SuggestionEdge]

  """A list of nodes."""
  nodes: [Suggestion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SuggestionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Suggestion
}

"""
A `SuggestionID` is a global ID. It is encoded as a string.

An example `SuggestionID` is: `"gid://gitlab/Suggestion/1"`.
"""
scalar SuggestionID

type SystemNoteMetadata {
  """System note metadata action."""
  action: String

  """Version of the changed description."""
  descriptionVersion: DescriptionVersion

  """Global ID of the specific system note metadata."""
  id: SystemNoteMetadataID!
}

"""
A `SystemNoteMetadataID` is a global ID. It is encoded as a string.

An example `SystemNoteMetadataID` is: `"gid://gitlab/SystemNoteMetadata/1"`.
"""
scalar SystemNoteMetadataID

type Tag {
  """Commit for the tag."""
  commit: Commit

  """Tagging message."""
  message: String

  """Name of the tag."""
  name: String!
}

"""Autogenerated input type of TagCreate"""
input TagCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project full path the branch is associated with."""
  projectPath: ID!

  """Name of the tag."""
  name: String!

  """Tag name or commit SHA to create tag from."""
  ref: String!

  """Tagging message."""
  message: String = ""
}

"""Autogenerated return type of TagCreate."""
type TagCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Tag after mutation."""
  tag: Tag
}

"""Autogenerated input type of TagDelete"""
input TagDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project full path the branch is associated with."""
  projectPath: ID!

  """Name of the tag."""
  name: String!
}

"""Autogenerated return type of TagDelete."""
type TagDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Tag after mutation."""
  tag: Tag
}

"""Represents a targeted message"""
type TargetedMessage {
  """ID of the targeted message."""
  id: ID!

  """Roles targeted by the message. Empty array means all roles."""
  roles: [Int!]!

  """Type of the targeted message (e.g., banner_page_level)."""
  targetType: String!
}

"""Completion status of tasks"""
type TaskCompletionStatus {
  """Number of completed tasks."""
  completedCount: Int!

  """Number of total tasks."""
  count: Int!
}

"""Terraform module metadata"""
type TerraformModuleMetadata {
  """Timestamp of when the metadata was created."""
  createdAt: Time!

  """Fields of the metadata."""
  fields: TerraformModuleMetadataFields!

  """ID of the metadata."""
  id: PackagesTerraformModuleMetadatumID!

  """Timestamp of when the metadata was last updated."""
  updatedAt: Time!
}

"""Terraform module metadata dependencies"""
type TerraformModuleMetadataDependencies {
  """Modules of the module."""
  modules: [TerraformModuleMetadataDependency!]

  """Providers of the module."""
  providers: [TerraformModuleMetadataDependency!]
}

"""Terraform module metadata dependency"""
type TerraformModuleMetadataDependency {
  """Name of the dependency."""
  name: String!

  """Source of the dependency."""
  source: String

  """Version of the dependency."""
  version: String
}

"""Terraform module metadata example"""
type TerraformModuleMetadataExample implements TerraformModuleMetadataSharedFields {
  """Inputs of the module."""
  inputs: [TerraformModuleMetadataInput!]

  """Name of the example."""
  name: String!

  """Outputs of the module."""
  outputs: [TerraformModuleMetadataOutput!]

  """Readme data."""
  readme: String

  """GitLab Flavored Markdown rendering of `readme`"""
  readmeHtml: String
}

"""Terraform module metadata fields type"""
type TerraformModuleMetadataFields {
  """Examples of the module."""
  examples: [TerraformModuleMetadataExample!]

  """Root module."""
  root: TerraformModuleMetadataRoot!

  """Submodules of the module."""
  submodules: [TerraformModuleMetadataSubmodule!]
}

"""Terraform module metadata input type"""
type TerraformModuleMetadataInput {
  """Default value of the input."""
  default: String

  """Description of the input."""
  description: String

  """Name of the input."""
  name: String!

  """Type of the input."""
  type: String!
}

"""Terraform module metadata output"""
type TerraformModuleMetadataOutput {
  """Description of the output field."""
  description: String

  """Name of the output field."""
  name: String!
}

"""Metadata for Terraform root module"""
type TerraformModuleMetadataRoot implements TerraformModuleMetadataSharedFields {
  """Dependencies of the module."""
  dependencies: TerraformModuleMetadataDependencies

  """Inputs of the module."""
  inputs: [TerraformModuleMetadataInput!]

  """Outputs of the module."""
  outputs: [TerraformModuleMetadataOutput!]

  """Readme data."""
  readme: String

  """GitLab Flavored Markdown rendering of `readme`"""
  readmeHtml: String

  """Resources of the module."""
  resources: [String!]
}

interface TerraformModuleMetadataSharedFields {
  """Inputs of the module."""
  inputs: [TerraformModuleMetadataInput!]

  """Outputs of the module."""
  outputs: [TerraformModuleMetadataOutput!]

  """Readme data."""
  readme: String

  """GitLab Flavored Markdown rendering of `readme`"""
  readmeHtml: String
}

"""Terraform module metadata submodule"""
type TerraformModuleMetadataSubmodule implements TerraformModuleMetadataSharedFields {
  """Dependencies of the submodule."""
  dependencies: TerraformModuleMetadataDependencies

  """Inputs of the module."""
  inputs: [TerraformModuleMetadataInput!]

  """Name of the submodule."""
  name: String!

  """Outputs of the module."""
  outputs: [TerraformModuleMetadataOutput!]

  """Readme data."""
  readme: String

  """GitLab Flavored Markdown rendering of `readme`"""
  readmeHtml: String

  """Resources of the submodule."""
  resources: [String!]
}

type TerraformState {
  """Timestamp the Terraform state was created."""
  createdAt: Time!

  """Timestamp the Terraform state was deleted."""
  deletedAt: Time

  """ID of the Terraform state."""
  id: ID!

  """Latest version of the Terraform state."""
  latestVersion: TerraformStateVersion

  """Timestamp the Terraform state was locked."""
  lockedAt: Time

  """User currently holding a lock on the Terraform state."""
  lockedByUser: UserCore

  """Name of the Terraform state."""
  name: String!

  """
  Whether a protection rule exists for the Terraform state. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  protectionRuleExists: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Timestamp the Terraform state was updated."""
  updatedAt: Time!
}

"""The connection type for TerraformState."""
type TerraformStateConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [TerraformStateEdge]

  """A list of nodes."""
  nodes: [TerraformState]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of TerraformStateDelete"""
input TerraformStateDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Terraform state."""
  id: TerraformStateID!
}

"""Autogenerated return type of TerraformStateDelete."""
type TerraformStateDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""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
}

"""
A `TerraformStateID` is a global ID. It is encoded as a string.

An example `TerraformStateID` is: `"gid://gitlab/Terraform::State/1"`.
"""
scalar TerraformStateID

"""Autogenerated input type of TerraformStateLock"""
input TerraformStateLockInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Terraform state."""
  id: TerraformStateID!
}

"""Autogenerated return type of TerraformStateLock."""
type TerraformStateLockPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
A protection rule for Terraform state backends, controlling who can write to a
state based on project role and request source.
"""
type TerraformStateProtectionRule {
  """
  Restriction on the source of write requests. `ANYWHERE` allows all sources,
  `CI_ONLY` requires a CI job token, `CI_ON_PROTECTED_BRANCH_ONLY` requires a CI
  job on a protected branch. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  allowedFrom: TerraformStateProtectionRuleAllowedFrom! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Global ID of the Terraform state protection rule. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: TerraformStateProtectionRuleID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Minimum GitLab access level required to perform write operations on the
  Terraform state. Valid values include `DEVELOPER`, `MAINTAINER`, `OWNER`, or
  `ADMIN`. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  minimumAccessLevelForWrite: TerraformStateProtectionRuleAccessLevel! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Terraform state name protected by the rule. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  stateName: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""Access level for Terraform state protection rule write operations."""
enum TerraformStateProtectionRuleAccessLevel {
  """Developer access. Introduced in GitLab 18.11: **Status**: Experiment."""
  DEVELOPER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Maintainer access. Introduced in GitLab 18.11: **Status**: Experiment."""
  MAINTAINER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Owner access. Introduced in GitLab 18.11: **Status**: Experiment."""
  OWNER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Admin access. Introduced in GitLab 18.11: **Status**: Experiment."""
  ADMIN @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""
Source restriction for Terraform state protection rule write operations.
"""
enum TerraformStateProtectionRuleAllowedFrom {
  """Anywhere. Introduced in GitLab 18.11: **Status**: Experiment."""
  ANYWHERE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Ci only. Introduced in GitLab 18.11: **Status**: Experiment."""
  CI_ONLY @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Ci on protected branch only. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  CI_ON_PROTECTED_BRANCH_ONLY @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""The connection type for TerraformStateProtectionRule."""
type TerraformStateProtectionRuleConnection {
  """A list of edges."""
  edges: [TerraformStateProtectionRuleEdge]

  """A list of nodes."""
  nodes: [TerraformStateProtectionRule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TerraformStateProtectionRuleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TerraformStateProtectionRule
}

"""
A `TerraformStateProtectionRuleID` is a global ID. It is encoded as a string.

An example `TerraformStateProtectionRuleID` is: `"gid://gitlab/Terraform::StateProtectionRule/1"`.
"""
scalar TerraformStateProtectionRuleID

"""Autogenerated input type of TerraformStateUnlock"""
input TerraformStateUnlockInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Terraform state."""
  id: TerraformStateID!
}

"""Autogenerated return type of TerraformStateUnlock."""
type TerraformStateUnlockPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

type TerraformStateVersion {
  """Timestamp the version was created."""
  createdAt: Time!

  """User that created the version."""
  createdByUser: UserCore

  """URL for downloading the version's JSON file."""
  downloadPath: String

  """ID of the Terraform state version."""
  id: ID!

  """Job that created the version."""
  job: CiJob

  """Serial number of the version."""
  serial: Int

  """Timestamp the version was updated."""
  updatedAt: Time!
}

"""
Represents the Geo sync and verification state of a terraform state version
"""
type TerraformStateVersionRegistry {
  """
  Indicate if the checksums of the TerraformStateVersionRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the TerraformStateVersionRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this TerraformStateVersionRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """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

  """Indicate if the TerraformStateVersionRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the TerraformStateVersionRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the TerraformStateVersionRegistry is 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 local checksum of the TerraformStateVersionRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the TerraformStateVersionRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """Error message during verification of the TerraformStateVersionRegistry"""
  verificationFailure: String

  """Timestamp after which the TerraformStateVersionRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the TerraformStateVersionRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of TerraformStateVersionRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the TerraformStateVersionRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the TerraformStateVersionRegistry
  """
  verifiedAt: Time
}

"""The connection type for TerraformStateVersionRegistry."""
type TerraformStateVersionRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """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
}

"""Test case in pipeline test report."""
type TestCase {
  """URL of the test case attachment file."""
  attachmentUrl: String

  """Classname of the test case."""
  classname: String

  """Test case execution time in seconds."""
  executionTime: Float

  """Path to the file of the test case."""
  file: String

  """Name of the test case."""
  name: String

  """Recent failure history of the test case on the base branch."""
  recentFailures: RecentFailures

  """Stack trace of the test case."""
  stackTrace: String

  """Status of the test case (error, failed, success, skipped)."""
  status: TestCaseStatus

  """System output of the test case."""
  systemOutput: String
}

"""The connection type for TestCase."""
type TestCaseConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [TestCaseEdge]

  """A list of nodes."""
  nodes: [TestCase]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TestCaseEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TestCase
}

enum TestCaseStatus {
  """Test case that has a status of error."""
  error

  """Test case that has a status of failed."""
  failed

  """Test case that has a status of success."""
  success

  """Test case that has a status of skipped."""
  skipped
}

"""Represents a requirement test report"""
type TestReport {
  """Author of the test report."""
  author: UserCore

  """Timestamp of when the test report was created."""
  createdAt: Time!

  """ID of the test report."""
  id: ID!

  """State of the test report."""
  state: TestReportState!

  """
  Indicates whether the test report was generated with references to legacy requirement IIDs.
  """
  usesLegacyIid: Boolean
}

"""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 {
  """Passed test report."""
  PASSED

  """Failed test report."""
  FAILED
}

"""Test report for a pipeline"""
type TestReportSummary {
  """Test suites belonging to a pipeline test report."""
  testSuites(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TestSuiteSummaryConnection!

  """Total report statistics for a pipeline test report."""
  total: TestReportTotal!
}

"""Total test report statistics."""
type TestReportTotal {
  """Total number of the test cases."""
  count: Int

  """Total number of test cases that had an error."""
  error: Int

  """Total number of test cases that failed."""
  failed: Int

  """Total number of test cases that were skipped."""
  skipped: Int

  """Total number of test cases that succeeded."""
  success: Int

  """Test suite error message."""
  suiteError: String

  """Total duration of the tests."""
  time: Float
}

"""Test suite in a pipeline test report."""
type TestSuite {
  """Total number of test cases that had an error."""
  errorCount: Int

  """Total number of test cases that failed in the test suite."""
  failedCount: Int

  """Name of the test suite."""
  name: String

  """Total number of test cases that were skipped in the test suite."""
  skippedCount: Int

  """Total number of test cases that succeeded in the test suite."""
  successCount: Int

  """Test suite error message."""
  suiteError: String

  """Test cases in the test suite."""
  testCases(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TestCaseConnection

  """Total number of the test cases in the test suite."""
  totalCount: Int

  """Total duration of the tests in the test suite."""
  totalTime: Float
}

"""Test suite summary in a pipeline test report."""
type TestSuiteSummary {
  """IDs of the builds used to run the test suite."""
  buildIds: [ID!]

  """Total number of test cases that had an error."""
  errorCount: Int

  """Total number of test cases that failed in the test suite."""
  failedCount: Int

  """Name of the test suite."""
  name: String

  """Total number of test cases that were skipped in the test suite."""
  skippedCount: Int

  """Total number of test cases that succeeded in the test suite."""
  successCount: Int

  """Test suite error message."""
  suiteError: String

  """Total number of the test cases in the test suite."""
  totalCount: Int

  """Total duration of the tests in the test suite."""
  totalTime: Float
}

"""The connection type for TestSuiteSummary."""
type TestSuiteSummaryConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [TestSuiteSummaryEdge]

  """A list of nodes."""
  nodes: [TestSuiteSummary]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TestSuiteSummaryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TestSuiteSummary
}

"""
Time represented in ISO 8601.

For example: `2021-03-09T14:58:50+00:00`.

See `https://www.iso.org/iso-8601-date-and-time-format.html`.

"""
scalar Time

"""Represents measured stats metrics for timeboxes"""
type TimeboxMetrics {
  """Count metric."""
  count: Int!

  """Weight metric."""
  weight: Int!
}

"""Represents a historically accurate report about the timebox"""
type TimeboxReport {
  """Daily scope and completed totals for burnup charts."""
  burnupTimeSeries: [BurnupChartDailyTotals!]

  """If the report cannot be generated, information about why."""
  error: TimeboxReportError

  """Represents the time report stats for the timebox."""
  stats: TimeReportStats
}

"""Explains why we could not generate a timebox report."""
type TimeboxReportError {
  """Machine readable code, categorizing the error."""
  code: TimeboxReportErrorReason

  """Human readable message explaining what happened."""
  message: String
}

"""Category of error."""
enum TimeboxReportErrorReason {
  """This type does not support timebox reports."""
  UNSUPPORTED

  """One or both of start_date and due_date is missing."""
  MISSING_DATES

  """There are too many events."""
  TOO_MANY_EVENTS

  """Priority by ascending order."""
  PRIORITY_ASC

  """Priority by descending order."""
  PRIORITY_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

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

interface TimeboxReportInterface {
  """Historically accurate report about the timebox."""
  report(
    """
    Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`.
    """
    fullPath: String
  ): TimeboxReport
}

"""A time-frame defined as a closed inclusive range of two dates"""
input Timeframe {
  """Start of the range."""
  start: Date!

  """End of the range."""
  end: Date!
}

"""Autogenerated input type of TimelineEventCreate"""
input TimelineEventCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Incident ID of the timeline event."""
  incidentId: IssueID!

  """Text note of the timeline event."""
  note: String!

  """Timestamp of when the event occurred."""
  occurredAt: Time!

  """Tags for the incident timeline event."""
  timelineEventTagNames: [String!]
}

"""Autogenerated return type of TimelineEventCreate."""
type TimelineEventCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timeline event."""
  timelineEvent: TimelineEventType
}

"""Autogenerated input type of TimelineEventDestroy"""
input TimelineEventDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Timeline event ID to remove."""
  id: IncidentManagementTimelineEventID!
}

"""Autogenerated return type of TimelineEventDestroy."""
type TimelineEventDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timeline event."""
  timelineEvent: TimelineEventType
}

"""Autogenerated input type of TimelineEventPromoteFromNote"""
input TimelineEventPromoteFromNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Note ID from which the timeline event promoted."""
  noteId: NoteID!
}

"""Autogenerated return type of TimelineEventPromoteFromNote."""
type TimelineEventPromoteFromNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timeline event."""
  timelineEvent: TimelineEventType
}

"""Autogenerated input type of TimelineEventTagCreate"""
input TimelineEventTagCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project to create the timeline event tag in."""
  projectPath: ID!

  """Name of the tag."""
  name: String!
}

"""Autogenerated return type of TimelineEventTagCreate."""
type TimelineEventTagCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timeline event tag."""
  timelineEventTag: TimelineEventTagType
}

"""Describes a tag on an incident management timeline event."""
type TimelineEventTagType {
  """ID of the timeline event tag."""
  id: IncidentManagementTimelineEventTagID!

  """Name of the timeline event tag."""
  name: String!
}

"""The connection type for TimelineEventTagType."""
type TimelineEventTagTypeConnection {
  """A list of edges."""
  edges: [TimelineEventTagTypeEdge]

  """A list of nodes."""
  nodes: [TimelineEventTagType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TimelineEventTagTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TimelineEventTagType
}

"""Describes an incident management timeline event"""
type TimelineEventType {
  """Indicates the timeline event icon."""
  action: String!

  """User that created the timeline event."""
  author: UserCore

  """Timestamp when the event created."""
  createdAt: Time!

  """Indicates the timeline event is editable."""
  editable: Boolean!

  """ID of the timeline event."""
  id: IncidentManagementTimelineEventID!

  """Incident of the timeline event."""
  incident: Issue!

  """Text note of the timeline event."""
  note: String

  """HTML note of the timeline event."""
  noteHtml: String

  """Timestamp when the event occurred."""
  occurredAt: Time!

  """Note from which the timeline event was created."""
  promotedFromNote: Note

  """Tags for the incident timeline event."""
  timelineEventTags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelineEventTagTypeConnection

  """Timestamp when the event updated."""
  updatedAt: Time!

  """User that updated the timeline event."""
  updatedByUser: UserCore
}

"""The connection type for TimelineEventType."""
type TimelineEventTypeConnection {
  """A list of edges."""
  edges: [TimelineEventTypeEdge]

  """A list of nodes."""
  nodes: [TimelineEventType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TimelineEventTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TimelineEventType
}

"""Autogenerated input type of TimelineEventUpdate"""
input TimelineEventUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the timeline event to update."""
  id: IncidentManagementTimelineEventID!

  """Text note of the timeline event."""
  note: String

  """Timestamp when the event occurred."""
  occurredAt: Time

  """Tags for the incident timeline event."""
  timelineEventTagNames: [String!]
}

"""Autogenerated return type of TimelineEventUpdate."""
type TimelineEventUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timeline event."""
  timelineEvent: TimelineEventType
}

type Timelog {
  """Internal ID of the timelog."""
  id: ID!

  """Issue that logged time was added to."""
  issue: Issue

  """Merge request that logged time was added to."""
  mergeRequest: MergeRequest

  """Note where the quick action was executed to add the logged time."""
  note: Note

  """Target project of the timelog merge request or issue."""
  project: Project!

  """Timestamp of when the time tracked was spent at."""
  spentAt: Time

  """Summary of how the time was spent."""
  summary: String

  """Time spent displayed in seconds."""
  timeSpent: Int!

  """User that logged the time."""
  user: UserCore!

  """Permissions for the current user on the resource"""
  userPermissions: TimelogPermissions!
}

"""The connection type for Timelog."""
type TimelogConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [TimelogEdge]

  """A list of nodes."""
  nodes: [Timelog]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """Total time spent in seconds."""
  totalSpentTime: BigInt!
}

"""Autogenerated input type of TimelogCreate"""
input TimelogCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Amount of time spent."""
  timeSpent: String!

  """
  Timestamp of when the time was spent. If empty, defaults to current time.
  """
  spentAt: Time

  """Summary of time spent."""
  summary: String!

  """Global ID of the issuable (Issue, WorkItem or MergeRequest)."""
  issuableId: IssuableID!
}

"""Autogenerated return type of TimelogCreate."""
type TimelogCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timelog."""
  timelog: Timelog
}

"""Autogenerated input type of TimelogDelete"""
input TimelogDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the timelog."""
  id: TimelogID!
}

"""Autogenerated return type of TimelogDelete."""
type TimelogDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Timelog."""
  timelog: Timelog
}

"""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
}

"""
A `TimelogID` is a global ID. It is encoded as a string.

An example `TimelogID` is: `"gid://gitlab/Timelog/1"`.
"""
scalar TimelogID

type TimelogPermissions {
  """If `true`, the user can perform `admin_timelog` on this resource"""
  adminTimelog: Boolean!
}

"""Values for sorting timelogs"""
enum TimelogSort {
  """Spent at ascending order."""
  SPENT_AT_ASC

  """Spent at descending order."""
  SPENT_AT_DESC

  """Time spent ascending order."""
  TIME_SPENT_ASC

  """Time spent descending order."""
  TIME_SPENT_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""Represents the time report stats for timeboxes"""
type TimeReportStats {
  """Completed issues metrics."""
  complete: TimeboxMetrics

  """Incomplete issues metrics."""
  incomplete: TimeboxMetrics

  """Total issues metrics."""
  total: TimeboxMetrics
}

"""A closed, inclusive range of two timestamps"""
input TimestampRange {
  """Start of the range."""
  start: Time!

  """End of the range."""
  end: Time!
}

type TimeTrackingTimelogCategory {
  """Whether the category is billable or not."""
  billable: Boolean

  """Billing rate for the category."""
  billingRate: Float

  """Color assigned to the category."""
  color: Color

  """When the category was created."""
  createdAt: Time!

  """Description of the category."""
  description: String

  """Internal ID of the timelog category."""
  id: ID!

  """Name of the category."""
  name: String!

  """When the category was last updated."""
  updatedAt: Time!
}

"""The connection type for TimeTrackingTimelogCategory."""
type TimeTrackingTimelogCategoryConnection {
  """A list of edges."""
  edges: [TimeTrackingTimelogCategoryEdge]

  """A list of nodes."""
  nodes: [TimeTrackingTimelogCategory]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TimeTrackingTimelogCategoryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TimeTrackingTimelogCategory
}

"""Representing a to-do entry"""
type Todo {
  """Action of the to-do item."""
  action: TodoActionEnum!

  """Author of the to-do item."""
  author: UserCore!

  """Body of the to-do item."""
  body: String!

  """Timestamp the to-do item was created."""
  createdAt: Time!

  """Group the to-do item is associated with."""
  group: Group

  """ID of the to-do item."""
  id: ID!

  """Access type of access request to-do items."""
  memberAccessType: String

  """Note which created the to-do item."""
  note: Note

  """Project the to-do item is associated with."""
  project: Project

  """Time until when the todo is snoozed."""
  snoozedUntil: Time

  """State of the to-do item."""
  state: TodoStateEnum!

  """
  Target of the to-do item. Deprecated in GitLab 17.4: Under certain
  circumstances, the `target` field on a to-do item can be `null`. The GraphQL
  schema currently declares `target` field as non-nullable. Use the new
  `target_entity` field instead.
  """
  target: Todoable! @deprecated(reason: "Under certain circumstances, the `target` field on a to-do item can be `null`. The GraphQL schema currently declares `target` field as non-nullable. Use the new `target_entity` field instead. Deprecated in GitLab 17.4.")

  """Target of the to-do item."""
  targetEntity: Todoable

  """Target type of the to-do item."""
  targetType: TodoTargetEnum!

  """URL of the to-do item target."""
  targetUrl: String
}

interface Todoable {
  """Name or title of the object."""
  name: String

  """URL of the object."""
  webUrl: String
}

"""
A `TodoableID` is a global ID. It is encoded as a string.

An example `TodoableID` is: `"gid://gitlab/Todoable/1"`.
"""
scalar TodoableID

enum TodoActionEnum {
  """Todo action name for assigned."""
  assigned

  """Todo action name for review_requested."""
  review_requested

  """Todo action name for mentioned."""
  mentioned

  """Todo action name for build_failed."""
  build_failed

  """Todo action name for marked."""
  marked

  """Todo action name for approval_required."""
  approval_required

  """Todo action name for unmergeable."""
  unmergeable

  """Todo action name for directly_addressed."""
  directly_addressed

  """Todo action name for member_access_requested."""
  member_access_requested

  """Todo action name for review_submitted."""
  review_submitted

  """Todo action name for ssh_key_expired."""
  ssh_key_expired

  """Todo action name for ssh_key_expiring_soon."""
  ssh_key_expiring_soon

  """Todo action name for merge_train_removed."""
  merge_train_removed

  """Todo action name for okr_checkin_requested."""
  okr_checkin_requested

  """Todo action name for added_approver."""
  added_approver

  """Todo action name for duo_pro_access_granted."""
  duo_pro_access_granted

  """Todo action name for duo_enterprise_access_granted."""
  duo_enterprise_access_granted

  """Todo action name for duo_core_access_granted."""
  duo_core_access_granted

  """Todo action name for duo_workflow_input_required."""
  duo_workflow_input_required
}

"""The connection type for Todo."""
type TodoConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [TodoEdge]

  """A list of nodes."""
  nodes: [Todo]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of TodoCreate"""
input TodoCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the to-do item's parent. Issues, merge requests, designs, and epics are supported.
  """
  targetId: TodoableID!
}

"""Autogenerated return type of TodoCreate."""
type TodoCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """To-do item created."""
  todo: Todo
}

"""Autogenerated input type of TodoDeleteAllDone"""
input TodoDeleteAllDoneInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """To-do items marked as done before the timestamp will be deleted."""
  updatedBefore: Time
}

"""Autogenerated return type of TodoDeleteAllDone."""
type TodoDeleteAllDonePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of TodoDeleteMany"""
input TodoDeleteManyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the to-do items to process (a maximum of 100 is supported at once).
  """
  ids: [TodoID!]!
}

"""Autogenerated return type of TodoDeleteMany."""
type TodoDeleteManyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""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
}

"""
A `TodoID` is a global ID. It is encoded as a string.

An example `TodoID` is: `"gid://gitlab/Todo/1"`.
"""
scalar TodoID

"""Autogenerated input type of TodoMarkDone"""
input TodoMarkDoneInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the to-do item 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 the mutation."""
  errors: [String!]!

  """Requested to-do item."""
  todo: Todo!
}

"""Autogenerated input type of TodoResolveMany"""
input TodoResolveManyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the to-do items to process (a maximum of 100 is supported at once).
  """
  ids: [TodoID!]!
}

"""Autogenerated return type of TodoResolveMany."""
type TodoResolveManyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Resolved to-do items."""
  todos: [Todo!]!
}

"""Autogenerated input type of TodoRestore"""
input TodoRestoreInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the to-do item to restore."""
  id: TodoID!
}

"""Autogenerated input type of TodoRestoreMany"""
input TodoRestoreManyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the to-do items to process (a maximum of 100 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 the mutation."""
  errors: [String!]!

  """Restored to-do items."""
  todos: [Todo!]!
}

"""Autogenerated return type of TodoRestore."""
type TodoRestorePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Requested to-do item."""
  todo: Todo!
}

"""Autogenerated input type of TodosMarkAllDone"""
input TodosMarkAllDoneInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID of the to-do item's parent. Issues, merge requests, designs, and
  epics are supported. If argument is omitted, all pending to-do items of the
  current user are marked as done.
  """
  targetId: TodoableID

  """ID of an author."""
  authorId: [ID!]

  """ID of a project."""
  projectId: [ID!]

  """ID of a group."""
  groupId: [ID!]

  """Action to be filtered."""
  action: [TodoActionEnum!]

  """Type of the todo."""
  type: [TodoTargetEnum!]
}

"""Autogenerated return type of TodosMarkAllDone."""
type TodosMarkAllDonePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated to-do items."""
  todos: [Todo!]!
}

"""Autogenerated input type of TodoSnooze"""
input TodoSnoozeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the to-do item to be snoozed."""
  id: TodoID!

  """Time until which the todo should be snoozed."""
  snoozeUntil: Time!
}

"""Autogenerated input type of TodoSnoozeMany"""
input TodoSnoozeManyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the to-do items to process (a maximum of 100 is supported at once).
  """
  ids: [TodoID!]!

  """Time until which the todos should be snoozed."""
  snoozeUntil: Time!
}

"""Autogenerated return type of TodoSnoozeMany."""
type TodoSnoozeManyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Snoozed to-do items."""
  todos: [Todo!]!
}

"""Autogenerated return type of TodoSnooze."""
type TodoSnoozePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Requested to-do item."""
  todo: Todo!
}

"""Sort options for todos."""
enum TodoSort {
  """By label priority in ascending order."""
  LABEL_PRIORITY_ASC

  """By label priority in descending order."""
  LABEL_PRIORITY_DESC

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

enum TodoStateEnum {
  """State of the todo is pending."""
  pending

  """State of the todo is done."""
  done
}

enum TodoTargetEnum {
  """Commit."""
  COMMIT

  """Issue."""
  ISSUE

  """Work item."""
  WORKITEM

  """Merge request."""
  MERGEREQUEST

  """Design."""
  DESIGN

  """Alert."""
  ALERT

  """Project."""
  PROJECT

  """Namespace."""
  NAMESPACE

  """SSH key."""
  KEY

  """Wiki page."""
  WIKIPAGEMETA

  """An Epic."""
  EPIC

  """User."""
  USER

  """Vulnerability."""
  VULNERABILITY

  """Project Compliance Violation."""
  COMPLIANCE_VIOLATION

  """Duo Workflow session."""
  DUO_WORKFLOW
}

"""Autogenerated input type of TodoUnSnooze"""
input TodoUnSnoozeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the to-do item to be snoozed."""
  id: TodoID!
}

"""Autogenerated input type of TodoUnsnoozeMany"""
input TodoUnsnoozeManyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the to-do items to process (a maximum of 100 is supported at once).
  """
  ids: [TodoID!]!
}

"""Autogenerated return type of TodoUnsnoozeMany."""
type TodoUnsnoozeManyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Unsnoozed to-do items."""
  todos: [Todo!]!
}

"""Autogenerated return type of TodoUnSnooze."""
type TodoUnSnoozePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Requested to-do item."""
  todo: Todo!
}

type Topic {
  """URL to avatar image file of the topic."""
  avatarUrl: String

  """Description of the topic."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """ID of the topic."""
  id: ID!

  """Name of the topic."""
  name: String!

  """Title of the topic."""
  title: String!
}

"""The connection type for Topic."""
type TopicConnection {
  """A list of edges."""
  edges: [TopicEdge]

  """A list of nodes."""
  nodes: [Topic]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TopicEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Topic
}

"""Attributes for defining a tracking event."""
input TrackingEventInput {
  """Event action."""
  action: String!

  """Event category."""
  category: String!

  """Extra metadata for the event."""
  extra: JSON

  """Event label."""
  label: String

  """Event property."""
  property: String

  """Event value."""
  value: String
}

"""
Status of the request to the training provider. The URL of a TrainingUrl is
calculated asynchronously. When PENDING, the URL of the TrainingUrl will be
null. When COMPLETED, the URL of the TrainingUrl will be available.
"""
enum TrainingUrlRequestStatus {
  """Pending request."""
  PENDING

  """Completed request."""
  COMPLETED
}

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(
    """
    Path to get the last commit for. Default value is the root of the repository.
    """
    path: String

    """Commit ref to get the last commit for. Default value is HEAD."""
    ref: String

    """Type of ref."""
    refType: RefType
  ): Commit

  """
  Web path to tree permalink. The `permalinkPath` field returns a string that
  represents the web path to a specific version of a directory, identified by
  its commit SHA. Use this path to create permanent links to directories at
  specific points in your repository's history. Introduced in GitLab 17.11:
  **Status**: Experiment.
  """
  permalinkPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """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!
}

"""The connection type for Tree."""
type TreeConnection {
  """A list of edges."""
  edges: [TreeEdge]

  """A list of nodes."""
  nodes: [Tree]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TreeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Tree
}

"""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!

  """SHA of 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
}

"""Trial usage statistics"""
type TrialUsage {
  """Total credits used during a trial."""
  creditsUsed: Float

  """Number of users who have used credits during a trial."""
  totalUsersUsingCredits: Int

  """List of users with their trial usage data."""
  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

    """Returns the last _n_ elements from the list."""
    last: Int

    """Username of the User."""
    username: String
  ): GitlabTrialUsageUserConnection
}

"""Requires ClickHouse. Premium and Ultimate only."""
type troubleshootJobMetrics {
  """Total count of `troubleshoot_job` event."""
  troubleshootJobEventCount: Int
}

"""
Troubleshoot Job user metrics for a user. Requires ClickHouse. Premium and Ultimate with GitLab Duo Enterprise only.
"""
type troubleshootJobUserMetrics {
  """Date of the last Troubleshoot Job activity for the user."""
  lastDuoActivityOn: Date

  """Total count of all Troubleshoot Job events for the user."""
  totalEventCount: Int

  """Total count of `troubleshoot_job` event."""
  troubleshootJobEventCount: Int
}

enum TypeEnum {
  """Snippet created independent of any project."""
  personal

  """Snippet related to a specific project."""
  project
}

"""
A `TypesNamespaceID` is a global ID. It is encoded as a string.

An example `TypesNamespaceID` is: `"gid://gitlab/Types::Namespace/1"`.
"""
scalar TypesNamespaceID

input UnionedEpicFilterInput {
  """
  Filters epics that have at least one of the given labels. Deprecated in GitLab 16.6: Use labelNames instead.
  """
  labelName: [String!]

  """Filters epics that have at least one of the given labels."""
  labelNames: [String!]

  """
  Filters epics that are authored by one of the given users. Deprecated in GitLab 16.6: Use authorUsernames instead.
  """
  authorUsername: [String!]

  """Filters epics that are authored by one of the given users."""
  authorUsernames: [String!]

  """
  Filter custom fields by one of the given values. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

input UnionedIssueFilterInput {
  """Filters issues that are assigned to at least one of the given users."""
  assigneeUsernames: [String!]

  """Filters issues that are authored by one of the given users."""
  authorUsernames: [String!]

  """Filters issues that have at least one of the given labels."""
  labelNames: [String!]

  """
  Filter custom fields by one of the given values. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

input UnionedMergeRequestFilterInput {
  """
  Filter by reviewer presence. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  reviewerWildcard: ReviewerWildcardId

  """
  Filters merge requests that have no reviewer OR only reviewer. Only compatible
  with reviewerWildcard. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  onlyReviewerUsername: String

  """Filters MRs that are assigned to at least one of the given users."""
  assigneeUsernames: [String!]

  """
  Filters merge requests that have been reviewed. Only compatible with
  reviewerWildcard. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  reviewStates: [MergeRequestReviewState!]
}

input UnionedWorkItemFilterInput {
  """
  Filters work items that are assigned to at least one of the given users (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """
  Filters work items that are authored by one of the given users (maximum is 100 usernames).
  """
  authorUsernames: [String!]

  """
  Filters work items that have at least one of the given labels (maximum is 100 labels).
  """
  labelNames: [String!]

  """
  Filter custom fields by one of the given values. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""Autogenerated input type of UnlinkProjectComplianceViolationIssue"""
input UnlinkProjectComplianceViolationIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project compliance violation."""
  violationId: ComplianceManagementProjectsComplianceViolationID!

  """Full path of the project the issue belongs to."""
  projectPath: ID!

  """IID of the issue to be unlinked."""
  issueIid: String!
}

"""Autogenerated return type of UnlinkProjectComplianceViolationIssue."""
type UnlinkProjectComplianceViolationIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated project compliance violation."""
  violation: ProjectComplianceViolation
}

"""
Defines which user roles, users, or groups can unprotect a protected branch.
"""
type UnprotectAccessLevel {
  """GitLab::Access level."""
  accessLevel: Int!

  """Human readable representation for the access level."""
  accessLevelDescription: String!

  """Group associated with the access level."""
  group: AccessLevelGroup

  """User associated with the access level."""
  user: AccessLevelUser
}

"""The connection type for UnprotectAccessLevel."""
type UnprotectAccessLevelConnection {
  """A list of edges."""
  edges: [UnprotectAccessLevelEdge]

  """A list of nodes."""
  nodes: [UnprotectAccessLevel]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UnprotectAccessLevelEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UnprotectAccessLevel
}

"""A regexp containing patterns sourced from user input"""
scalar UntrustedRegexp

"""Autogenerated input type of UpdateAiToolRule"""
input UpdateAiToolRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the root namespace to update the tool rule for."""
  fullPath: ID!

  """Permission mode for local or IDE surface."""
  localAccess: AiToolPermission

  """
  Full path of the project to update the tool rule for. When provided, creates a
  project-level rule that can only be stricter than the namespace rule.
  """
  projectPath: ID

  """
  Tool name string identifying the tool to update. For example, "create_issue".
  """
  toolId: String!

  """Permission mode for web surface."""
  webAccess: AiToolPermission
}

"""Autogenerated return type of UpdateAiToolRule."""
type UpdateAiToolRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated tool rule after mutation."""
  toolRule: AiToolRule
}

"""Autogenerated input type of UpdateAlertStatus"""
input UpdateAlertStatusInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """Status to set the alert."""
  status: AlertManagementStatus!
}

"""Autogenerated return type of UpdateAlertStatus."""
type UpdateAlertStatusPayload {
  """Alert after mutation."""
  alert: AlertManagementAlert

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

"""Autogenerated input type of UpdateBoardEpicUserPreferences"""
input UpdateBoardEpicUserPreferencesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Board global ID."""
  boardId: BoardID!

  """ID of an epic to set preferences for."""
  epicId: EpicID!

  """Whether the epic should be collapsed in the board."""
  collapsed: Boolean!
}

"""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 the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateBoard"""
input UpdateBoardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Board name."""
  name: String

  """Whether or not backlog list is hidden."""
  hideBacklogList: Boolean

  """Whether or not closed list is hidden."""
  hideClosedList: Boolean

  """Board global ID."""
  id: BoardID!

  """ID of user to be assigned to the board."""
  assigneeId: UserID

  """ID of milestone to be assigned to the board."""
  milestoneId: MilestoneID

  """ID of iteration to be assigned to the board."""
  iterationId: IterationID

  """ID of iteration cadence to be assigned to the board."""
  iterationCadenceId: IterationsCadenceID

  """Weight value to be assigned to the board."""
  weight: Int

  """Labels of the issue."""
  labels: [String!]

  """IDs of labels to be added to the board."""
  labelIds: [LabelID!]
}

"""Autogenerated input type of UpdateBoardList"""
input UpdateBoardListInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Position of list within the board."""
  position: Int

  """Indicates if the list is collapsed for the user."""
  collapsed: Boolean

  """Global ID of the list."""
  listId: ListID!
}

"""Autogenerated return type of UpdateBoardList."""
type UpdateBoardListPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Mutated list."""
  list: BoardList
}

"""Autogenerated return type of UpdateBoard."""
type UpdateBoardPayload {
  """Board after mutation."""
  board: Board

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateComplianceFramework"""
input UpdateComplianceFrameworkInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance framework to update."""
  id: ComplianceManagementFrameworkID!

  """Parameters to update the compliance framework with."""
  params: ComplianceFrameworkInput!
}

"""Autogenerated return type of UpdateComplianceFramework."""
type UpdateComplianceFrameworkPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Compliance framework after mutation."""
  complianceFramework: ComplianceFramework

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateComplianceRequirement"""
input UpdateComplianceRequirementInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance requirement to update."""
  id: ComplianceManagementComplianceFrameworkComplianceRequirementID!

  """Parameters to update the compliance requirement with."""
  params: ComplianceRequirementInput!

  """Controls to add or update to the compliance requirement."""
  controls: [ComplianceRequirementsControlInput!]
}

"""Autogenerated return type of UpdateComplianceRequirement."""
type UpdateComplianceRequirementPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Compliance requirement after updation."""
  requirement: ComplianceRequirement
}

"""Autogenerated input type of UpdateComplianceRequirementsControl"""
input UpdateComplianceRequirementsControlInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the compliance requirement control to update."""
  id: ComplianceManagementComplianceFrameworkComplianceRequirementsControlID!

  """Parameters to update the compliance requirement control with."""
  params: ComplianceRequirementsControlInput!
}

"""Autogenerated return type of UpdateComplianceRequirementsControl."""
type UpdateComplianceRequirementsControlPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Compliance requirement control after updation."""
  requirementsControl: ComplianceRequirementsControl
}

"""Autogenerated input type of UpdateContainerExpirationPolicy"""
input UpdateContainerExpirationPolicyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project path where the container expiration policy is located."""
  projectPath: ID!

  """Indicates whether the container expiration policy is enabled."""
  enabled: Boolean

  """Schedule of the container expiration policy."""
  cadence: ContainerExpirationPolicyCadenceEnum

  """Tags older than the given age will expire."""
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """Number of tags to retain."""
  keepN: ContainerExpirationPolicyKeepEnum

  """Tags with names matching the regex pattern will expire."""
  nameRegex: UntrustedRegexp

  """Tags with names matching the regex pattern will be preserved."""
  nameRegexKeep: UntrustedRegexp
}

"""Autogenerated return type of UpdateContainerExpirationPolicy."""
type UpdateContainerExpirationPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Container expiration policy after mutation. Deprecated in GitLab 17.5: Use `container_tags_expiration_policy`.
  """
  containerExpirationPolicy: ContainerExpirationPolicy @deprecated(reason: "Use `container_tags_expiration_policy`. Deprecated in GitLab 17.5.")

  """Container tags expiration policy after mutation."""
  containerTagsExpirationPolicy: ContainerTagsExpirationPolicy

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateContainerProtectionRepositoryRule"""
input UpdateContainerProtectionRepositoryRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the container repository protection rule to be updated."""
  id: ContainerRegistryProtectionRuleID!

  """
  Container repository path pattern protected by the protection rule. Must start
  with the project’s full path. For example: `my-project/*-prod-*`. Wildcard
  character `*` is allowed anywhere after the project’s full path.
  """
  repositoryPathPattern: String

  """
  Minimum GitLab access level required to delete container images from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, the default minimum access level is `DEVELOPER`. Valid
  only when feature flag `container_registry_protected_containers_delete` is
  enabled. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  minimumAccessLevelForDelete: ContainerProtectionRepositoryRuleAccessLevel

  """
  Minimum GitLab access level required to push container images to the container
  repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the
  value is `nil`, the default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: ContainerProtectionRepositoryRuleAccessLevel
}

"""Autogenerated return type of UpdateContainerProtectionRepositoryRule."""
type UpdateContainerProtectionRepositoryRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Container repository protection rule after mutation."""
  containerProtectionRepositoryRule: ContainerProtectionRepositoryRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateContainerProtectionTagRule"""
input UpdateContainerProtectionTagRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the tag protection rule to update."""
  id: ContainerRegistryProtectionTagRuleID!

  """
  The pattern that matches container image tags to protect. For example, `v1.*`. Wildcard character `*` allowed.
  """
  tagNamePattern: String

  """
  Minimum GitLab access level required to delete container image tags from the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can delete tags. 
  """
  minimumAccessLevelForDelete: ContainerProtectionTagRuleAccessLevel

  """
  Minimum GitLab access level required to push container image tags to the
  container repository. Valid values include `MAINTAINER`, `OWNER`, or `ADMIN`.
  If the value is `nil`, no access level can push tags. 
  """
  minimumAccessLevelForPush: ContainerProtectionTagRuleAccessLevel
}

"""Autogenerated return type of UpdateContainerProtectionTagRule."""
type UpdateContainerProtectionTagRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Protection rule for container image tags after creation."""
  containerProtectionTagRule: ContainerProtectionTagRule

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateCustomDashboard"""
input UpdateCustomDashboardInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the dashboard to update."""
  id: AnalyticsCustomDashboardsDashboardID!

  """Dashboard name."""
  name: String

  """Dashboard description."""
  description: String

  """Dashboard layout/config."""
  config: CustomDashboardConfigInput
}

"""Autogenerated return type of UpdateCustomDashboard."""
type UpdateCustomDashboardPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Updated dashboard."""
  dashboard: CustomDashboard

  """Errors encountered during update."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateDependencyProxyImageTtlGroupPolicy"""
input UpdateDependencyProxyImageTtlGroupPolicyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path for the group dependency proxy image TTL policy."""
  groupPath: ID!

  """Indicates whether the policy is enabled or disabled."""
  enabled: Boolean

  """Number of days to retain a cached image file."""
  ttl: Int
}

"""Autogenerated return type of UpdateDependencyProxyImageTtlGroupPolicy."""
type UpdateDependencyProxyImageTtlGroupPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group image TTL policy after mutation."""
  dependencyProxyImageTtlPolicy: DependencyProxyImageTtlGroupPolicy

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateDependencyProxyPackagesSettings"""
input UpdateDependencyProxyPackagesSettingsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project path for the dependency proxy for packages settings."""
  projectPath: ID!

  """
  Indicates whether the dependency proxy for packages is enabled for the project.
  """
  enabled: Boolean

  """URL for the external Maven packages registry."""
  mavenExternalRegistryUrl: String

  """Username for the external Maven packages registry."""
  mavenExternalRegistryUsername: String

  """
  Password for the external Maven packages registry. Introduced in 16.5: This
  feature is an Experiment. It can be changed or removed at any time.
  """
  mavenExternalRegistryPassword: String
}

"""Autogenerated return type of UpdateDependencyProxyPackagesSettings."""
type UpdateDependencyProxyPackagesSettingsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Dependency proxy for packages settings after mutation."""
  dependencyProxyPackagesSetting: DependencyProxyPackagesSetting

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateDependencyProxySettings"""
input UpdateDependencyProxySettingsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path for the group dependency proxy."""
  groupPath: ID!

  """Indicates whether the policy is enabled or disabled."""
  enabled: Boolean

  """
  Identity credential used to authenticate with Docker Hub when pulling images.
  Can be a username (for password or personal access token (PAT)) or
  organization name (for organization access token (OAT)).
  """
  identity: String

  """
  Secret credential used to authenticate with Docker Hub when pulling images.
  Can be a password, personal access token (PAT), or organization access token (OAT).
  """
  secret: String
}

"""Autogenerated return type of UpdateDependencyProxySettings."""
type UpdateDependencyProxySettingsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group dependency proxy settings after mutation."""
  dependencyProxySetting: DependencyProxySetting

  """Errors encountered during the mutation."""
  errors: [String!]!
}

input UpdateDiffImagePositionInput {
  """X position of the note."""
  x: Int

  """Y position of the note."""
  y: Int

  """Total width of the image."""
  width: Int

  """Total height of the image."""
  height: Int
}

"""Autogenerated input type of UpdateDuoWorkflowToolCallApprovals"""
input UpdateDuoWorkflowToolCallApprovalsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the workflow to update."""
  workflowId: AiDuoWorkflowsWorkflowID!

  """Name of the tool to approve."""
  toolName: String!

  """Arguments for the tool call."""
  toolCallArgs: JSON

  """Glob pattern to approve for matching tool call arguments."""
  pattern: String
}

"""Autogenerated return type of UpdateDuoWorkflowToolCallApprovals."""
type UpdateDuoWorkflowToolCallApprovalsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during update."""
  errors: [String!]!

  """Updated workflow with new tool approvals."""
  workflow: DuoWorkflow
}

"""Autogenerated input type of UpdateEpicBoardList"""
input UpdateEpicBoardListInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Position of list within the board."""
  position: Int

  """Indicates if the list is collapsed for the user."""
  collapsed: Boolean

  """Global ID of the epic list."""
  listId: BoardsEpicListID!
}

"""Autogenerated return type of UpdateEpicBoardList."""
type UpdateEpicBoardListPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Mutated epic list."""
  list: EpicList
}

"""Autogenerated input type of UpdateEpic"""
input UpdateEpicInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """IID of the epic to mutate."""
  iid: ID!

  """Group the epic to mutate is in."""
  groupPath: ID!

  """Title of the epic."""
  title: String

  """Description of the epic."""
  description: String

  """Indicates if the epic is confidential."""
  confidential: Boolean

  """Start date of the epic."""
  startDateFixed: String

  """End date of the epic."""
  dueDateFixed: String

  """
  Indicates start date should be sourced from start_date_fixed field not the issue milestones.
  """
  startDateIsFixed: Boolean

  """
  Indicates end date should be sourced from due_date_fixed field not the issue milestones.
  """
  dueDateIsFixed: Boolean

  """IDs of labels to be added to the epic."""
  addLabelIds: [ID!]

  """IDs of labels to be removed from the epic."""
  removeLabelIds: [ID!]

  """Array of labels to be added to the epic."""
  addLabels: [String!]

  """Color of the epic."""
  color: Color

  """State event for the epic."""
  stateEvent: EpicStateEvent

  """Array of labels to be removed from the epic."""
  removeLabels: [String!]
}

"""Autogenerated return type of UpdateEpic."""
type UpdateEpicPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Epic after mutation."""
  epic: Epic

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateImageDiffNote"""
input UpdateImageDiffNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the note to update."""
  id: NoteID!

  """Content of the note."""
  body: String

  """Position of the 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 the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of UpdateIssue"""
input UpdateIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """Description of the issue."""
  description: String

  """Due date of the issue."""
  dueDate: ISO8601Date

  """Indicates the issue is confidential."""
  confidential: Boolean

  """Indicates discussion is locked on the issue."""
  locked: Boolean

  """Type of the issue."""
  type: IssueType

  """Title of the issue."""
  title: String

  """
  ID of the milestone to assign to the issue. Accepts either a global ID, for
  example `"gid://gitlab/Milestone/42"`, or a numeric ID, for example `"42"`. On
  update milestone will be removed if set to null.
  """
  milestoneId: ID

  """IDs of labels to be added to the issue."""
  addLabelIds: [ID!]

  """IDs of labels to be removed from the issue."""
  removeLabelIds: [ID!]

  """IDs of labels to be set. Replaces existing issue labels."""
  labelIds: [ID!]

  """Close or reopen an issue."""
  stateEvent: IssueStateEvent

  """
  Estimated time to complete the issue. Use `null` or `0` to remove the current estimate.
  """
  timeEstimate: String

  """Desired health status."""
  healthStatus: HealthStatus

  """Weight of the issue."""
  weight: Int

  """
  ID of the parent epic. NULL when removing the association. Deprecated in
  GitLab 17.5: This will be replaced by WorkItem hierarchyWidget.
  """
  epicId: EpicID
}

"""Autogenerated return type of UpdateIssue."""
type UpdateIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of UpdateIteration"""
input UpdateIterationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group of the iteration."""
  groupPath: ID!

  """Global ID of the iteration."""
  id: ID!

  """Title of the iteration."""
  title: String

  """Description of the iteration."""
  description: String

  """Start date of the iteration."""
  startDate: String

  """End date of the iteration."""
  dueDate: String
}

"""Autogenerated return type of UpdateIteration."""
type UpdateIterationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated iteration."""
  iteration: Iteration
}

"""Autogenerated input type of UpdateNamespacePackageSettings"""
input UpdateNamespacePackageSettingsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Namespace path where the namespace package setting is located."""
  namespacePath: ID!

  """
  Indicates whether duplicate Maven packages are allowed for the namespace.
  """
  mavenDuplicatesAllowed: Boolean

  """
  When maven_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect.
  """
  mavenDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate generic packages are allowed for the namespace.
  """
  genericDuplicatesAllowed: Boolean

  """
  When generic_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect.
  """
  genericDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate NuGet packages are allowed for the namespace.
  """
  nugetDuplicatesAllowed: Boolean

  """
  When nuget_duplicates_allowed is false, you can publish duplicate packages
  with names that match this regex. Otherwise, this setting has no effect. 
  """
  nugetDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether duplicate Terraform packages are allowed for the namespace.
  """
  terraformModuleDuplicatesAllowed: Boolean

  """
  When terraform_module_duplicates_allowed is false, you can publish duplicate
  packages with names that match this regex. Otherwise, this setting has no effect.
  """
  terraformModuleDuplicateExceptionRegex: UntrustedRegexp

  """
  Indicates whether Maven package forwarding is allowed for the namespace.
  """
  mavenPackageRequestsForwarding: Boolean

  """Indicates whether npm package forwarding is allowed for the namespace."""
  npmPackageRequestsForwarding: Boolean

  """
  Indicates whether PyPI package forwarding is allowed for the namespace.
  """
  pypiPackageRequestsForwarding: Boolean

  """
  Indicates whether Maven package forwarding is locked for all descendent namespaces.
  """
  lockMavenPackageRequestsForwarding: Boolean

  """
  Indicates whether npm package forwarding is locked for all descendent namespaces.
  """
  lockNpmPackageRequestsForwarding: Boolean

  """
  Indicates whether PyPI package forwarding is locked for all descendent namespaces.
  """
  lockPypiPackageRequestsForwarding: Boolean

  """
  Indicates whether the NuGet symbol server is enabled for the namespace.
  """
  nugetSymbolServerEnabled: Boolean

  """
  Indicates whether audit events are created when publishing or deleting a
  package in the namespace (Premium and Ultimate only).
  """
  auditEventsEnabled: Boolean
}

"""Autogenerated return type of UpdateNamespacePackageSettings."""
type UpdateNamespacePackageSettingsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Namespace package setting after mutation."""
  packageSettings: PackageSettings
}

"""Autogenerated input type of UpdateNote"""
input UpdateNoteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the note to update."""
  id: NoteID!

  """Content of the note."""
  body: String
}

"""Autogenerated return type of UpdateNote."""
type UpdateNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note

  """Status of quick actions after mutation."""
  quickActionsStatus: QuickActionsStatus
}

"""Autogenerated input type of UpdatePackagesCleanupPolicy"""
input UpdatePackagesCleanupPolicyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Project path where the packages cleanup policy is located."""
  projectPath: ID!

  """Number of duplicated package files to retain."""
  keepNDuplicatedPackageFiles: PackagesCleanupKeepDuplicatedPackageFilesEnum
}

"""Autogenerated return type of UpdatePackagesCleanupPolicy."""
type UpdatePackagesCleanupPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Packages cleanup policy after mutation."""
  packagesCleanupPolicy: PackagesCleanupPolicy
}

"""Autogenerated input type of UpdatePackagesProtectionRule"""
input UpdatePackagesProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the package protection rule to be updated."""
  id: PackagesProtectionRuleID!

  """
  Package name protected by the protection rule. For example, `@my-scope/my-package-*`. Wildcard character `*` allowed.
  """
  packageNamePattern: String

  """
  Package type protected by the protection rule. For example, `NPM`, `PYPI`.
  """
  packageType: PackagesProtectionRulePackageType

  """
  Minimum GitLab access required to delete packages from the package registry.
  Valid values include `OWNER` or `ADMIN`. If the value is `nil`, the default
  minimum access level is `MAINTAINER`. Available only when feature flag
  `packages_protected_packages_delete` is enabled. Introduced in GitLab 17.10:
  **Status**: Experiment.
  """
  minimumAccessLevelForDelete: PackagesProtectionRuleAccessLevelForDelete

  """
  Minimum GitLab access required to push packages to the package registry. Valid
  values include `MAINTAINER`, `OWNER`, or `ADMIN`. If the value is `nil`, the
  default minimum access level is `DEVELOPER`.
  """
  minimumAccessLevelForPush: PackagesProtectionRuleAccessLevel
}

"""Autogenerated return type of UpdatePackagesProtectionRule."""
type UpdatePackagesProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Packages protection rule after mutation."""
  packageProtectionRule: PackagesProtectionRule
}

"""Autogenerated input type of UpdateProjectComplianceViolation"""
input UpdateProjectComplianceViolationInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the project compliance violation to update."""
  id: ComplianceManagementProjectsComplianceViolationID!

  """New status for the project compliance violation."""
  status: ComplianceViolationStatus!
}

"""Autogenerated return type of UpdateProjectComplianceViolation."""
type UpdateProjectComplianceViolationPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Compliance violation after status update."""
  complianceViolation: ProjectComplianceViolation

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateRequirement"""
input UpdateRequirementInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Title of the requirement."""
  title: String

  """Description of the requirement."""
  description: String

  """Full project path the requirement is associated with."""
  projectPath: ID!

  """State of the requirement."""
  state: RequirementState

  """
  IID of the requirement to update. Deprecated in GitLab 15.8: Use work_item_iid instead.
  """
  iid: String

  """IID of the requirement work item to update."""
  workItemIid: String

  """Creates a test report for the requirement with the given state."""
  lastTestReportState: TestReportState
}

"""Autogenerated return type of UpdateRequirement."""
type UpdateRequirementPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Requirement after mutation."""
  requirement: Requirement
}

"""Autogenerated input type of UpdateSnippet"""
input UpdateSnippetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the snippet to update."""
  id: SnippetID!

  """Title of the snippet."""
  title: String

  """Description of the snippet."""
  description: String

  """Visibility level of the snippet."""
  visibilityLevel: VisibilityLevelsEnum

  """Actions to perform over the snippet repository and blobs."""
  blobActions: [SnippetBlobActionInputType!]
}

"""Autogenerated return type of UpdateSnippet."""
type UpdateSnippetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

"""Autogenerated input type of UpdateTerraformStateProtectionRule"""
input UpdateTerraformStateProtectionRuleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the Terraform state protection rule to update."""
  id: TerraformStateProtectionRuleID!

  """
  Terraform state name protected by the rule. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  stateName: String

  """
  Minimum GitLab access level required to perform write operations on the
  Terraform state. Valid values include `DEVELOPER`, `MAINTAINER`, `OWNER`, or
  `ADMIN`. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  minimumAccessLevelForWrite: TerraformStateProtectionRuleAccessLevel

  """
  Restriction on the source of write requests. `ANYWHERE` allows all sources,
  `CI_ONLY` requires a CI job token, `CI_ON_PROTECTED_BRANCH_ONLY` requires a CI
  job on a protected branch. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  allowedFrom: TerraformStateProtectionRuleAllowedFrom
}

"""Autogenerated return type of UpdateTerraformStateProtectionRule."""
type UpdateTerraformStateProtectionRulePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """
  Terraform state protection rule after mutation. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  terraformStateProtectionRule: TerraformStateProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")
}

"""Attributes to update value stream stage."""
input UpdateValueStreamStageInput {
  """Name of the stage."""
  name: String

  """
  Whether the stage is customized. If false, it assigns a built-in default stage by name.
  """
  custom: Boolean = true

  """End event identifier."""
  endEventIdentifier: ValueStreamStageEvent

  """Label ID associated with the end event identifier."""
  endEventLabelId: LabelID

  """Whether the stage is hidden."""
  hidden: Boolean

  """Start event identifier."""
  startEventIdentifier: ValueStreamStageEvent

  """Label ID associated with the start event identifier."""
  startEventLabelId: LabelID

  """ID of the stage to be updated."""
  id: AnalyticsCycleAnalyticsStageID
}

"""Autogenerated input type of UpdateVirtualRegistriesSetting"""
input UpdateVirtualRegistriesSettingInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path for the group virtual registries."""
  fullPath: ID!

  """Enable or disable the virtual registries."""
  enabled: Boolean
}

"""Autogenerated return type of UpdateVirtualRegistriesSetting."""
type UpdateVirtualRegistriesSettingPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Virtual registries settings after mutation."""
  virtualRegistriesSetting: VirtualRegistriesSetting
}

scalar Upload

"""Autogenerated input type of UploadCreate"""
input UploadCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """File to upload."""
  file: Upload!
}

"""Autogenerated return type of UploadCreate."""
type UploadCreatePayload {
  """Alt text for the uploaded file. Usually the name of the file."""
  alt: String

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Full path to the file."""
  fullPath: String

  """Markdown-formatted link to the file."""
  markdown: String

  """Uploaded file."""
  upload: FileUpload

  """URL to access the file."""
  url: String
}

"""Autogenerated input type of UploadDelete"""
input UploadDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the project with which the resource is associated."""
  projectPath: ID

  """Full path of the group with which the resource is associated."""
  groupPath: ID

  """Secret part of upload path."""
  secret: String!

  """Upload filename."""
  filename: String!
}

"""Autogenerated return type of UploadDelete."""
type UploadDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted upload."""
  upload: FileUpload
}

"""
A `UploadID` is a global ID. It is encoded as a string.

An example `UploadID` is: `"gid://gitlab/Upload/1"`.
"""
scalar UploadID

"""Represents the Geo replication and verification state of an upload."""
type UploadRegistry {
  """
  Indicate if the checksums of the UploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the UploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this UploadRegistry"""
  dataManagementDetailsPath: String

  """ID of the Upload."""
  fileId: ID!

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the UploadRegistry"""
  id: ID!

  """Error message during sync of the UploadRegistry"""
  lastSyncFailure: String

  """Timestamp of the most recent successful sync of the UploadRegistry"""
  lastSyncedAt: Time

  """Indicate if the UploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the UploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the UploadRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the UploadRegistry"""
  retryCount: Int

  """Sync state of the UploadRegistry"""
  state: RegistryState

  """The local checksum of the UploadRegistry"""
  verificationChecksum: String

  """The expected checksum of the UploadRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the UploadRegistry"""
  verificationFailure: String

  """Timestamp after which the UploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the UploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of UploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the UploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the UploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for UploadRegistry."""
type UploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [UploadRegistryEdge]

  """A list of nodes."""
  nodes: [UploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UploadRegistry
}

"""Autogenerated input type of UpsertFlatUserCap"""
input UpsertFlatUserCapInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Path of the top-level group namespace. Omit for self-managed instance scope.
  """
  namespacePath: String

  """Default per-user budget cap applied to all users."""
  flatUserCap: Float!

  """Whether the flat per-user budget cap is enabled."""
  flatUserCapEnabled: Boolean!
}

"""Autogenerated return type of UpsertFlatUserCap."""
type UpsertFlatUserCapPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated flat per-user budget cap."""
  flatUserCap: Float

  """Whether the flat per-user budget cap is enabled."""
  flatUserCapEnabled: Boolean
}

"""Autogenerated input type of UpsertUserBudgetCapOverrides"""
input UpsertUserBudgetCapOverridesInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """List of per-user budget cap overrides to upsert."""
  overrides: [BudgetCapUserOverrideInput!]!

  """
  Path of the top-level group namespace. Omit for self-managed instance scope.
  """
  namespacePath: String
}

"""Autogenerated return type of UpsertUserBudgetCapOverrides."""
type UpsertUserBudgetCapOverridesPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated user budget cap overrides."""
  userOverrides: [GitlabSubscriptionBudgetCapUserOverride!]
}

interface UpstreamInterface {
  """
  Time before the cache expires for the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  cacheValidityHours: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Description of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Name of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Number of registries using the upstream. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  registriesCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  URL of the upstream registry. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  url: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
}

"""Represents a recorded measurement (object count) for the Admins"""
type UsageTrendsMeasurement {
  """Object count."""
  count: Int!

  """Type of objects being measured."""
  identifier: MeasurementIdentifier!

  """Time the measurement was recorded."""
  recordedAt: Time
}

"""The connection type for UsageTrendsMeasurement."""
type UsageTrendsMeasurementConnection {
  """A list of edges."""
  edges: [UsageTrendsMeasurementEdge]

  """A list of nodes."""
  nodes: [UsageTrendsMeasurement]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UsageTrendsMeasurementEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UsageTrendsMeasurement
}

"""Representation of a GitLab user."""
interface User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

type UserAchievement {
  """Achievement awarded."""
  achievement: Achievement!

  """Message associated with the awarded achievement."""
  awardMessage: String

  """GitLab Flavored Markdown rendering of `award_message`"""
  awardMessageHtml: String

  """Awarded by."""
  awardedByUser: UserCore!

  """Timestamp the achievement was created."""
  createdAt: Time!

  """ID of the user achievement."""
  id: AchievementsUserAchievementID!

  """Priority of the user achievement."""
  priority: Int

  """Timestamp the achievement was revoked."""
  revokedAt: Time

  """Revoked by."""
  revokedByUser: UserCore

  """Indicates whether or not the achievement is shown on the profile."""
  showOnProfile: Boolean!

  """Timestamp the achievement was last updated."""
  updatedAt: Time!

  """Achievement recipient."""
  user: UserCore!
}

"""The connection type for UserAchievement."""
type UserAchievementConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [UserAchievementEdge]

  """A list of nodes."""
  nodes: [UserAchievement]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UserAchievementEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserAchievement
}

"""Autogenerated input type of UserAchievementPrioritiesUpdate"""
input UserAchievementPrioritiesUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global IDs of the user achievements being prioritized, ordered from highest to lowest priority.
  """
  userAchievementIds: [AchievementsUserAchievementID!]!
}

"""Autogenerated return type of UserAchievementPrioritiesUpdate."""
type UserAchievementPrioritiesUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated user achievements."""
  userAchievements: [UserAchievement!]!
}

"""Autogenerated input type of UserAchievementsDelete"""
input UserAchievementsDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user achievement being deleted."""
  userAchievementId: AchievementsUserAchievementID!
}

"""Autogenerated return type of UserAchievementsDelete."""
type UserAchievementsDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted user achievement."""
  userAchievement: UserAchievement
}

"""Autogenerated input type of UserAchievementsUpdate"""
input UserAchievementsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user achievement being updated."""
  userAchievementId: AchievementsUserAchievementID!

  """
  Indicates whether or not the user achievement is visible on the profile.
  """
  showOnProfile: Boolean!
}

"""Autogenerated return type of UserAchievementsUpdate."""
type UserAchievementsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Achievement award."""
  userAchievement: UserAchievement
}

"""An assignment of an AddOnPurchase to a User."""
type UserAddOnAssignment {
  """Add-on purchase the user is assigned to."""
  addOnPurchase: AddOnPurchase!
}

"""Autogenerated input type of UserAddOnAssignmentBulkCreate"""
input UserAddOnAssignmentBulkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of AddOnPurchase to be assigned to."""
  addOnPurchaseId: GitlabSubscriptionsAddOnPurchaseID!

  """Global IDs of user to be assigned."""
  userIds: [UserID!]!
}

"""Autogenerated return type of UserAddOnAssignmentBulkCreate."""
type UserAddOnAssignmentBulkCreatePayload {
  """AddOnPurchase state after mutation."""
  addOnPurchase: AddOnPurchase

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Users who the add-on purchase was assigned to."""
  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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): AddOnUserConnection
}

"""Autogenerated input type of UserAddOnAssignmentBulkRemove"""
input UserAddOnAssignmentBulkRemoveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of AddOnPurchase to be unassigned from."""
  addOnPurchaseId: GitlabSubscriptionsAddOnPurchaseID!

  """Global IDs of user to be unassigned."""
  userIds: [UserID!]!
}

"""Autogenerated return type of UserAddOnAssignmentBulkRemove."""
type UserAddOnAssignmentBulkRemovePayload {
  """AddOnPurchase state after mutation."""
  addOnPurchase: AddOnPurchase

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Users who was unassigned from the add-on purchase."""
  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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): AddOnUserConnection
}

"""The connection type for UserAddOnAssignment."""
type UserAddOnAssignmentConnection {
  """A list of edges."""
  edges: [UserAddOnAssignmentEdge]

  """A list of nodes."""
  nodes: [UserAddOnAssignment]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of UserAddOnAssignmentCreate"""
input UserAddOnAssignmentCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of AddOnPurchase to be assigned to."""
  addOnPurchaseId: GitlabSubscriptionsAddOnPurchaseID!

  """Global ID of user to be assigned."""
  userId: UserID!
}

"""Autogenerated return type of UserAddOnAssignmentCreate."""
type UserAddOnAssignmentCreatePayload {
  """AddOnPurchase state after mutation."""
  addOnPurchase: AddOnPurchase

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User who the add-on purchase was assigned to."""
  user: AddOnUser
}

"""An edge in a connection."""
type UserAddOnAssignmentEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserAddOnAssignment
}

"""Autogenerated input type of UserAddOnAssignmentRemove"""
input UserAddOnAssignmentRemoveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of AddOnPurchase assignment belongs to."""
  addOnPurchaseId: GitlabSubscriptionsAddOnPurchaseID!

  """Global ID of user whose assignment will be removed."""
  userId: UserID!
}

"""Autogenerated return type of UserAddOnAssignmentRemove."""
type UserAddOnAssignmentRemovePayload {
  """AddOnPurchase state after mutation."""
  addOnPurchase: AddOnPurchase

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User that the add-on was removed from."""
  user: AddOnUser
}

type UserCallout {
  """Date when the callout was dismissed."""
  dismissedAt: Time

  """Name of the feature that the callout is for."""
  featureName: UserCalloutFeatureNameEnum
}

"""The connection type for UserCallout."""
type UserCalloutConnection {
  """A list of edges."""
  edges: [UserCalloutEdge]

  """A list of nodes."""
  nodes: [UserCallout]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of UserCalloutCreate"""
input UserCalloutCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Feature name you want to dismiss the callout for."""
  featureName: String!
}

"""Autogenerated return type of UserCalloutCreate."""
type UserCalloutCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User callout dismissed."""
  userCallout: UserCallout!
}

"""An edge in a connection."""
type UserCalloutEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserCallout
}

"""Name of the feature that the callout is for."""
enum UserCalloutFeatureNameEnum {
  """Callout feature name for gke_cluster_integration."""
  GKE_CLUSTER_INTEGRATION

  """Callout feature name for cluster_security_warning."""
  CLUSTER_SECURITY_WARNING

  """Callout feature name for ultimate_trial."""
  ULTIMATE_TRIAL

  """Callout feature name for geo_enable_hashed_storage."""
  GEO_ENABLE_HASHED_STORAGE

  """Callout feature name for geo_migrate_hashed_storage."""
  GEO_MIGRATE_HASHED_STORAGE

  """Callout feature name for canary_deployment."""
  CANARY_DEPLOYMENT

  """Callout feature name for gold_trial_billings."""
  GOLD_TRIAL_BILLINGS

  """Callout feature name for suggest_popover_dismissed."""
  SUGGEST_POPOVER_DISMISSED

  """Callout feature name for tabs_position_highlight."""
  TABS_POSITION_HIGHLIGHT

  """Callout feature name for threat_monitoring_info."""
  THREAT_MONITORING_INFO

  """Callout feature name for web_ide_alert_dismissed."""
  WEB_IDE_ALERT_DISMISSED

  """Callout feature name for active_user_count_threshold."""
  ACTIVE_USER_COUNT_THRESHOLD

  """Callout feature name for buy_pipeline_minutes_notification_dot."""
  BUY_PIPELINE_MINUTES_NOTIFICATION_DOT

  """Callout feature name for personal_access_token_expiry."""
  PERSONAL_ACCESS_TOKEN_EXPIRY

  """Callout feature name for suggest_pipeline."""
  SUGGEST_PIPELINE

  """Callout feature name for feature_flags_new_version."""
  FEATURE_FLAGS_NEW_VERSION

  """Callout feature name for registration_enabled_callout."""
  REGISTRATION_ENABLED_CALLOUT

  """Callout feature name for new_user_signups_cap_reached."""
  NEW_USER_SIGNUPS_CAP_REACHED

  """Callout feature name for unfinished_tag_cleanup_callout."""
  UNFINISHED_TAG_CLEANUP_CALLOUT

  """Callout feature name for pipeline_needs_banner."""
  PIPELINE_NEEDS_BANNER

  """Callout feature name for pipeline_needs_hover_tip."""
  PIPELINE_NEEDS_HOVER_TIP

  """Callout feature name for web_ide_ci_environments_guidance."""
  WEB_IDE_CI_ENVIRONMENTS_GUIDANCE

  """Callout feature name for security_configuration_upgrade_banner."""
  SECURITY_CONFIGURATION_UPGRADE_BANNER

  """Callout feature name for trial_status_reminder_d14."""
  TRIAL_STATUS_REMINDER_D14

  """Callout feature name for trial_status_reminder_d3."""
  TRIAL_STATUS_REMINDER_D3

  """Callout feature name for security_configuration_devops_alert."""
  SECURITY_CONFIGURATION_DEVOPS_ALERT

  """Callout feature name for profile_personal_access_token_expiry."""
  PROFILE_PERSONAL_ACCESS_TOKEN_EXPIRY

  """Callout feature name for verification_reminder."""
  VERIFICATION_REMINDER

  """Callout feature name for ci_deprecation_warning_for_types_keyword."""
  CI_DEPRECATION_WARNING_FOR_TYPES_KEYWORD

  """Callout feature name for namespace_storage_pre_enforcement_banner."""
  NAMESPACE_STORAGE_PRE_ENFORCEMENT_BANNER

  """Callout feature name for ci_minutes_limit_alert_warning_stage."""
  CI_MINUTES_LIMIT_ALERT_WARNING_STAGE

  """Callout feature name for ci_minutes_limit_alert_danger_stage."""
  CI_MINUTES_LIMIT_ALERT_DANGER_STAGE

  """Callout feature name for ci_minutes_limit_alert_exceeded_stage."""
  CI_MINUTES_LIMIT_ALERT_EXCEEDED_STAGE

  """Callout feature name for preview_user_over_limit_free_plan_alert."""
  PREVIEW_USER_OVER_LIMIT_FREE_PLAN_ALERT

  """Callout feature name for user_reached_limit_free_plan_alert."""
  USER_REACHED_LIMIT_FREE_PLAN_ALERT

  """Callout feature name for submit_license_usage_data_banner."""
  SUBMIT_LICENSE_USAGE_DATA_BANNER

  """Callout feature name for personal_project_limitations_banner."""
  PERSONAL_PROJECT_LIMITATIONS_BANNER

  """
  Callout feature name for namespace_storage_limit_alert_warning_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_WARNING_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_alert_alert_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_ALERT_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_alert_error_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_ERROR_THRESHOLD

  """
  Callout feature name for project_repository_limit_alert_warning_threshold.
  """
  PROJECT_REPOSITORY_LIMIT_ALERT_WARNING_THRESHOLD

  """Callout feature name for namespace_over_storage_users_combined_alert."""
  NAMESPACE_OVER_STORAGE_USERS_COMBINED_ALERT

  """
  Callout feature name for security_policy_protected_branch_modification.
  """
  SECURITY_POLICY_PROTECTED_BRANCH_MODIFICATION

  """Callout feature name for joining_a_project_alert."""
  JOINING_A_PROJECT_ALERT

  """Callout feature name for transition_to_jihu_callout."""
  TRANSITION_TO_JIHU_CALLOUT

  """Callout feature name for period_in_terraform_state_name_alert."""
  PERIOD_IN_TERRAFORM_STATE_NAME_ALERT

  """Callout feature name for work_item_epic_feedback."""
  WORK_ITEM_EPIC_FEEDBACK

  """Callout feature name for branch_rules_tip_callout."""
  BRANCH_RULES_TIP_CALLOUT

  """Callout feature name for openssl_callout."""
  OPENSSL_CALLOUT

  """Callout feature name for pipl_compliance_alert."""
  PIPL_COMPLIANCE_ALERT

  """
  Callout feature name for merge_request_dashboard_display_preferences_popover.
  """
  MERGE_REQUEST_DASHBOARD_DISPLAY_PREFERENCES_POPOVER

  """Callout feature name for vulnerability_archival."""
  VULNERABILITY_ARCHIVAL

  """Callout feature name for duo_amazon_q_alert."""
  DUO_AMAZON_Q_ALERT

  """Callout feature name for email_otp_enrollment_callout."""
  EMAIL_OTP_ENROLLMENT_CALLOUT

  """Callout feature name for merge_request_dashboard_show_drafts."""
  MERGE_REQUEST_DASHBOARD_SHOW_DRAFTS

  """Callout feature name for focused_vulnerability_reporting."""
  FOCUSED_VULNERABILITY_REPORTING

  """Callout feature name for expired_trial_status_widget."""
  EXPIRED_TRIAL_STATUS_WIDGET

  """Callout feature name for vulnerability_report_limited_experience."""
  VULNERABILITY_REPORT_LIMITED_EXPERIENCE

  """Callout feature name for file_tree_browser_popover."""
  FILE_TREE_BROWSER_POPOVER

  """Callout feature name for virtual_registry_permission_change_alert."""
  VIRTUAL_REGISTRY_PERMISSION_CHANGE_ALERT

  """Callout feature name for security_scanner_profiles_announcement."""
  SECURITY_SCANNER_PROFILES_ANNOUNCEMENT

  """Callout feature name for single_origin_fallback_callout."""
  SINGLE_ORIGIN_FALLBACK_CALLOUT

  """Callout feature name for duo_panel_auto_expanded."""
  DUO_PANEL_AUTO_EXPANDED

  """Callout feature name for work_items_onboarding_modal."""
  WORK_ITEMS_ONBOARDING_MODAL

  """Callout feature name for duo_panel_empty_state_auto_expanded."""
  DUO_PANEL_EMPTY_STATE_AUTO_EXPANDED

  """Callout feature name for inline_blame_popover."""
  INLINE_BLAME_POPOVER

  """Callout feature name for security_manager_role."""
  SECURITY_MANAGER_ROLE
}

"""Core representation of a GitLab user."""
type UserCore implements Todoable & User {
  """Indicates if the user is active."""
  active: Boolean

  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Username of the reviewer."""
    reviewerUsername: String

    """Filter by reviewer presence. Incompatible with reviewerUsername."""
    reviewerWildcardId: ReviewerWildcardId

    """Include merge requests the user is assigned to."""
    includeAssigned: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """URL of the user's avatar."""
  avatarUrl: String

  """Bio of the user."""
  bio: String

  """Indicates if the user is a bot."""
  bot: Boolean!

  """User callouts that belong to the user."""
  callouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCalloutConnection

  """User's default commit email."""
  commitEmail: String

  """Indicates if composite identity is enforced for the user."""
  compositeIdentityEnforced: Boolean

  """Projects the user has contributed to."""
  contributedProjects(
    """Search query."""
    search: String

    """Sort contributed projects."""
    sort: ProjectSort = LATEST_ACTIVITY_DESC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """Include personal projects."""
    includePersonal: Boolean = false

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Filters by projects that are not archived and not marked for deletion."""
    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
  ): ProjectConnection

  """Timestamp of when the user was created."""
  createdAt: Time

  """Custom attributes of the user. Only available to admins."""
  customAttributes: [CustomAttribute!]

  """Discord ID of the user."""
  discord: String

  """Duo status for the user."""
  duoStatus: UserDuoStatus

  """User email. Deprecated in GitLab 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.")

  """User's email addresses."""
  emails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailConnection

  """Activity events visible to the current user, most recent first."""
  events(
    """Filter events by type. Defaults to all events."""
    filter: UserEventFilter

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EventConnection

  """GitHub profile name of the user."""
  github: String

  """Whether Ona is enabled at the user level."""
  gitpodEnabled: Boolean

  """User callouts that belong to the user per group."""
  groupCallouts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserGroupCalloutConnection

  """Group count for the user."""
  groupCount: Int

  """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

  """Groups where the user has access."""
  groups(
    """Filter by permissions the user has on groups."""
    permissionScope: GroupPermission

    """Search by group name or path."""
    search: String

    """Sort groups by given criteria."""
    sort: GroupSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): GroupConnection

  """Indicates if the user is a regular user."""
  human: Boolean

  """Global ID of the user."""
  id: UserID!

  """IDE settings."""
  ide: Ide

  """Job title of the user."""
  jobTitle: String

  """Date the user last performed any actions."""
  lastActivityOn: Date

  """LinkedIn profile name of the user."""
  linkedin: String

  """Location of the user."""
  location: String

  """
  Human-readable name of the user. Returns `****` if the user is a project bot
  and the requester does not have permission to view the project.
  """
  name: String!

  """Personal namespace of the user."""
  namespace: Namespace

  """User's custom namespace commit emails."""
  namespaceCommitEmails(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): NamespaceCommitEmailConnection

  """Who the user represents or works for."""
  organization: String

  """
  Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment.
  """
  organizations(
    """Search query, which can be for the organization name or a path."""
    search: String

    """When true, returns only organizations solely owned by the user."""
    soloOwned: 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
  ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.")

  """
  Personal access tokens of the user. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  personalAccessTokens(
    """Filter personal access tokens by ID."""
    id: PersonalAccessTokenID

    """Query to search personal access tokens by name."""
    search: String

    """
    Sort personal access tokens by the given criteria. Default is `expires_at_asc`.
    """
    sort: AccessTokenSort = EXPIRES_ASC

    """Filter personal access tokens by state."""
    state: AccessTokenState

    """Filter personal access tokens by their revoked status."""
    revoked: Boolean

    """Filter personal access tokens that expire before the specified date."""
    expiresBefore: Date

    """Filter personal access tokens that expire after the specified date."""
    expiresAfter: Date

    """Filter personal access tokens created before the timestamp."""
    createdBefore: Time

    """Filter personal access tokens created after the timestamp."""
    createdAfter: Time

    """Filter personal access tokens last used before the timestamp."""
    lastUsedBefore: Time

    """Filter personal access tokens last used after the timestamp."""
    lastUsedAfter: Time

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): PersonalAccessTokenConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Web path to the Ona section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Ona for the user."""
  profileEnableGitpodPath: String

  """Project count for the user."""
  projectCount: Int

  """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

  """Pronouns of the user."""
  pronouns: String

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Search query for title or description."""
    search: String

    """
    Specify the fields to perform the search in.
    Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
    
    """
    in: [IssuableSearchableField!]

    """Usernames of the approvers."""
    approvedBy: [String!]

    """Filter by release tag."""
    releaseTag: String

    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """Username of the merger."""
    mergedBy: String

    """Filter by your reaction emoji."""
    myReactionEmoji: String

    """List of arguments with inclusive OR."""
    or: UnionedMergeRequestFilterInput

    """
    Array of source branch names.
    All resolved merge requests will have one of these branches as their source.
    
    """
    sourceBranches: [String!]

    """
    Array of target branch names.
    All resolved merge requests will have one of these branches as their target.
    
    """
    targetBranches: [String!]

    """
    Merge request state. If provided, all resolved merge requests will have the state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """
    Path of the blob changed in merge request.
    Requires state, targetBranches, and createdAfter arguments. Introduced in GitLab 17.7: **Status**: Experiment.
    """
    blobPath: String

    """Merge requests closed after the date."""
    closedAfter: Time

    """Merge requests closed before the date."""
    closedBefore: Time

    """Merge requests created after the timestamp."""
    createdAfter: Time

    """Merge requests created before the timestamp."""
    createdBefore: Time

    """Merge requests deployed after the timestamp."""
    deployedAfter: Time

    """Merge requests deployed before the timestamp."""
    deployedBefore: Time

    """ID of the deployment."""
    deploymentId: String

    """Environment merge requests have been deployed to."""
    environmentName: String

    """Merge requests updated after the timestamp."""
    updatedAfter: Time

    """Merge requests updated before the timestamp."""
    updatedBefore: Time

    """
    Username of the reviewer to ignore when searching by reviewer state. Introduced in GitLab 18.0: **Status**: Experiment.
    """
    ignoredReviewerUsername: String

    """Labels applied to the merge request."""
    labelName: [String]

    """
    Array of label names. All resolved merge requests will have all of these
    labels. Deprecated in GitLab 17.1: Use `labelName`.
    """
    labels: [String!]

    """Merge requests merged after the date."""
    mergedAfter: Time

    """Merge requests merged before the date."""
    mergedBefore: Time

    """Title of the milestone. Incompatible with milestoneWildcardId."""
    milestoneTitle: String

    """
    Filter issues by milestone ID wildcard. Incompatible with milestoneTitle.
    """
    milestoneWildcardId: MilestoneWildcardId

    """
    Reviewer state of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewState: MergeRequestReviewState

    """
    Reviewer states of the merge request. Introduced in GitLab 17.0: **Status**: Experiment.
    """
    reviewStates: [MergeRequestReviewState!]

    """Sort merge requests by the criteria."""
    sort: MergeRequestSort = created_desc

    """Merge requests the current user is subscribed to."""
    subscribed: SubscriptionStatus

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Usernames of possible approvers."""
    approver: [String!]

    """
    The global ID of the group the authored merge requests should be in.
    Merge requests in subgroups are included.
    
    """
    groupId: GroupID

    """
    The full-path of the project the authored merge requests should be in.
    Incompatible with projectId.
    
    """
    projectPath: String

    """
    The global ID of the project the authored merge requests should be in.
    Incompatible with projectPath.
    
    """
    projectId: ProjectID

    """Merge requests from archived projects."""
    includeArchived: Boolean = false

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    assigneeUsername: String

    """Usernames of users assigned to the merge request."""
    assigneeUsernames: [String!]

    """
    Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername.
    """
    assigneeWildcardId: AssigneeWildcardId

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection

  """Saved replies authored by the user."""
  savedReplies(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SavedReplyConnection

  """Saved reply authored by the user."""
  savedReply(
    """ID of a saved reply."""
    id: UsersSavedReplyID!
  ): SavedReply

  """Snippets authored by the user."""
  snippets(
    """
    Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`.
    """
    ids: [SnippetID!]

    """Visibility of the snippet."""
    visibility: VisibilityScopesEnum

    """Type of snippet."""
    type: TypeEnum

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SnippetConnection

  """Projects starred by the user."""
  starredProjects(
    """Search query."""
    search: String

    """
    Filters by projects that are not archived and not scheduled for deletion.
    """
    active: Boolean

    """List starred projects by sort order."""
    sort: ProjectSort = NAME_ASC

    """
    Return only projects where current user has at least the specified access level.
    """
    minAccessLevel: AccessLevelEnum

    """
    Filter projects by programming language name (case insensitive). For example: `css` or `ruby`.
    """
    programmingLanguageName: String

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection

  """State of the user."""
  state: UserState!

  """User status."""
  status: UserStatus

  """Time logged by the user."""
  timelogs(
    """
    List timelogs within a date range where the logged date is equal to or after startDate.
    """
    startDate: Time

    """
    List timelogs within a date range where the logged date is equal to or before endDate.
    """
    endDate: Time

    """
    List timelogs within a time range where the logged time is equal to or after startTime.
    """
    startTime: Time

    """
    List timelogs within a time range where the logged time is equal to or before endTime.
    """
    endTime: Time

    """List timelogs for a project."""
    projectId: ProjectID

    """List timelogs for a group."""
    groupId: GroupID

    """List timelogs for a user."""
    username: String

    """List timelogs in a particular order."""
    sort: TimelogSort = SPENT_AT_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TimelogConnection

  """To-do items of the user."""
  todos(
    """Action to be filtered."""
    action: [TodoActionEnum!]

    """ID of an author."""
    authorId: [ID!]

    """ID of a project."""
    projectId: [ID!]

    """ID of a group."""
    groupId: [ID!]

    """State of the todo."""
    state: [TodoStateEnum!]

    """Whether the to-do item is snoozed."""
    isSnoozed: Boolean

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Sort todos by given criteria."""
    sort: TodoSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): TodoConnection

  """X (formerly Twitter) username of the user."""
  twitter: String

  """Type of the user."""
  type: UserType!

  """
  Achievements for the user. Only returns for namespaces where the
  `achievements` feature flag is enabled. Introduced in GitLab 15.10:
  **Status**: Experiment.
  """
  userAchievements(
    """
    Indicates whether or not achievements hidden from the profile should be included in the result.
    """
    includeHidden: Boolean = false

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Preferences for the user."""
  userPreferences: UserPreferences

  """Username of the user. Unique within the instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!

  """Workspaces owned by the current user."""
  workspaces(
    """
    Filter workspaces by workspace GlobalIDs. For example, `["gid://gitlab/RemoteDevelopment::Workspace/1"]`.
    """
    ids: [RemoteDevelopmentWorkspaceID!]

    """Filter workspaces by project GlobalIDs."""
    projectIds: [ProjectID!]

    """Filter workspaces by actual states."""
    actualStates: [String!]

    """Filter workspaces by agent GlobalIDs."""
    agentIds: [ClustersAgentID!]

    """
    Filter workspaces by actual states. Deprecated in GitLab 16.7: Use actual_states instead.
    """
    includeActualStates: [String!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceConnection
}

"""The connection type for UserCore."""
type UserCoreConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [UserCoreEdge]

  """A list of nodes."""
  nodes: [UserCore]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UserCoreEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserCore
}

"""Autogenerated input type of UserCustomAttributeSet"""
input UserCustomAttributeSetInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the user."""
  userId: UserID!

  """Key of the custom attribute."""
  key: String!

  """Value of the custom attribute."""
  value: String!
}

"""Autogenerated return type of UserCustomAttributeSet."""
type UserCustomAttributeSetPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Custom attribute after mutation."""
  customAttribute: CustomAttribute

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Represents the Duo status for a user."""
type UserDuoStatus {
  """Indicates if the user is disabled for assignment in Duo features."""
  disabled: Boolean!

  """Reason why the user is disabled for assignment in Duo features."""
  disabledReason: String

  """List of available flow trigger events for the user in Duo features."""
  flowTriggerEvents: [AiFlowTriggerEventType!]!
}

"""Filter for user activity events."""
enum UserEventFilter {
  """All events."""
  ALL

  """Push events."""
  PUSH

  """Merge events."""
  MERGED

  """Issue events."""
  ISSUE

  """Comment events."""
  COMMENTS

  """Team events."""
  TEAM

  """Wiki page events."""
  WIKI

  """Design events."""
  DESIGNS
}

type UserGroupCallout {
  """Date when the callout was dismissed."""
  dismissedAt: Time!

  """Name of the feature that the callout is for."""
  featureName: UserGroupCalloutFeatureName!

  """Group id that the callout applies."""
  groupId: GroupID!
}

"""The connection type for UserGroupCallout."""
type UserGroupCalloutConnection {
  """A list of edges."""
  edges: [UserGroupCalloutEdge]

  """A list of nodes."""
  nodes: [UserGroupCallout]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of UserGroupCalloutCreate"""
input UserGroupCalloutCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Feature name you want to dismiss the callout for."""
  featureName: String!

  """Group for the callout."""
  groupId: GroupID!
}

"""Autogenerated return type of UserGroupCalloutCreate."""
type UserGroupCalloutCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User group callout dismissed."""
  userGroupCallout: UserGroupCallout!
}

"""An edge in a connection."""
type UserGroupCalloutEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserGroupCallout
}

"""Name of the feature that the callout is for."""
enum UserGroupCalloutFeatureName {
  """Callout feature name for approaching_seat_count_threshold."""
  APPROACHING_SEAT_COUNT_THRESHOLD

  """Callout feature name for namespace_storage_pre_enforcement_banner."""
  NAMESPACE_STORAGE_PRE_ENFORCEMENT_BANNER

  """Callout feature name for ci_minutes_limit_alert_warning_stage."""
  CI_MINUTES_LIMIT_ALERT_WARNING_STAGE

  """Callout feature name for ci_minutes_limit_alert_danger_stage."""
  CI_MINUTES_LIMIT_ALERT_DANGER_STAGE

  """Callout feature name for ci_minutes_limit_alert_exceeded_stage."""
  CI_MINUTES_LIMIT_ALERT_EXCEEDED_STAGE

  """Callout feature name for preview_user_over_limit_free_plan_alert."""
  PREVIEW_USER_OVER_LIMIT_FREE_PLAN_ALERT

  """Callout feature name for user_reached_limit_free_plan_alert."""
  USER_REACHED_LIMIT_FREE_PLAN_ALERT

  """Callout feature name for free_group_limited_alert."""
  FREE_GROUP_LIMITED_ALERT

  """
  Callout feature name for namespace_storage_limit_alert_warning_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_WARNING_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_alert_alert_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_ALERT_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_alert_error_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_ALERT_ERROR_THRESHOLD

  """Callout feature name for usage_quota_trial_alert."""
  USAGE_QUOTA_TRIAL_ALERT

  """Callout feature name for preview_usage_quota_free_plan_alert."""
  PREVIEW_USAGE_QUOTA_FREE_PLAN_ALERT

  """Callout feature name for enforcement_at_limit_alert."""
  ENFORCEMENT_AT_LIMIT_ALERT

  """Callout feature name for web_hook_disabled."""
  WEB_HOOK_DISABLED

  """
  Callout feature name for project_repository_limit_alert_warning_threshold.
  """
  PROJECT_REPOSITORY_LIMIT_ALERT_WARNING_THRESHOLD

  """Callout feature name for namespace_over_storage_users_combined_alert."""
  NAMESPACE_OVER_STORAGE_USERS_COMBINED_ALERT

  """Callout feature name for all_seats_used_alert."""
  ALL_SEATS_USED_ALERT

  """Callout feature name for expired_duo_pro_trial_widget."""
  EXPIRED_DUO_PRO_TRIAL_WIDGET

  """Callout feature name for expired_duo_enterprise_trial_widget."""
  EXPIRED_DUO_ENTERPRISE_TRIAL_WIDGET

  """Callout feature name for expired_trial_status_widget."""
  EXPIRED_TRIAL_STATUS_WIDGET

  """Callout feature name for namespace_user_cap_reached_alert."""
  NAMESPACE_USER_CAP_REACHED_ALERT

  """Callout feature name for end_of_trial_modal."""
  END_OF_TRIAL_MODAL

  """Callout feature name for duo_code_review_enabled_by_default."""
  DUO_CODE_REVIEW_ENABLED_BY_DEFAULT
}

"""
A `UserID` is a global ID. It is encoded as a string.

An example `UserID` is: `"gid://gitlab/User/1"`.
"""
scalar UserID

type UserMemberRole {
  """Global ID of the user member role association."""
  id: GlobalID!

  """Member Role to which the user belongs."""
  memberRole: MemberRole!

  """User to which the member role belongs."""
  user: UserCore!
}

"""
Information about a merge request given a specific user.

This object has two parts to its state: a `User` and a `MergeRequest`. All
fields relate to interactions between the two entities.

"""
type UserMergeRequestInteraction {
  """Approval rules that apply to the user for the merge request."""
  applicableApprovalRules: [ApprovalRule!]

  """Whether the user has approved the merge request."""
  approved: Boolean!

  """Whether the user can merge the merge request."""
  canMerge: Boolean!

  """Whether the user can update the merge request."""
  canUpdate: Boolean!

  """State of the review by the user."""
  reviewState: MergeRequestReviewState

  """Whether the user has provided a review for the merge request."""
  reviewed: Boolean!
}

type UserNamespaceLinks implements NamespacesLinkPaths {
  """
  Path for autocomplete award emojis. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  autocompleteAwardEmojisPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Calendar path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  calendarPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace contribution guide path."""
  contributionGuidePath: String

  """Help page path for emails."""
  emailsHelpPagePath: String

  """Namespace epics_list."""
  epicsList: String

  """
  Path to the epics list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  epicsListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace group_issues."""
  groupIssues: String

  """
  Full path of the group. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues_list."""
  issuesList: String

  """
  Path to the issues list for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  issuesListPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace issues settings path."""
  issuesSettings: String

  """Namespace labels_fetch."""
  labelsFetch: String

  """Namespace labels_manage."""
  labelsManage: String

  """Help page path for Markdown."""
  markdownHelpPath: String

  """
  Full path of the namespace (project.namespace.full_path or group full_path).
  Introduced in GitLab 18.6: **Status**: Experiment.
  """
  namespaceFullPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_comment_template_paths."""
  newCommentTemplate: [CommentTemplatePath!]

  """
  Path to create a new issue. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newIssuePath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Namespace new_project."""
  newProject: String

  """
  New trial path for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  newTrialPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """Help page path for quick actions."""
  quickActionsHelpPath: String

  """Namespace register_path."""
  register: String

  """Namespace report_abuse."""
  reportAbuse: String

  """
  RSS path for work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  rssPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """Namespace sign_in_path."""
  signIn: String

  """
  User email for export CSV. Returns `null` for user namespaces. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  userExportEmail: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")
}

type UserNamespaceMarkdownPaths implements MarkdownPaths {
  """Supported paths for autocomplete sources for a given namespace."""
  autocompleteSourcesPath(
    """IID of the work item."""
    iid: String

    """ID of the work item type."""
    workItemTypeId: String
  ): JSON

  """Path for the markdown preview for given namespace."""
  markdownPreviewPath(
    """IID of the target item for markdown preview."""
    iid: String
  ): String

  """Uploads path for a given namespace."""
  uploadsPath: String
}

type UserNamespaceMetadata implements NamespaceMetadata {
  """
  ID of the group. Returns null for user namespaces. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  groupId: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  User preference for initial sort order. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  initialSort: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether issue repositioning is disabled for the namespace. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  isIssueRepositioningDisabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Maximum allowed attachment size (humanized). Introduced in GitLab 18.6: **Status**: Experiment.
  """
  maxAttachmentSize: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Whether to show the new work item link. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  showNewWorkItem: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Time tracking limit to hours setting. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  timeTrackingLimitToHours: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")
}

"""
Represents the Geo replication and verification state of a `user_permission_export_upload_upload`.
"""
type UserPermissionExportUploadUploadRegistry {
  """
  Indicate if the checksums of the UserPermissionExportUploadUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """
  Timestamp when the UserPermissionExportUploadUploadRegistry was created
  """
  createdAt: Time

  """
  Path to the data management view for this UserPermissionExportUploadUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the UserPermissionExportUploadUploadRegistry"""
  id: ID!

  """
  Error message during sync of the UserPermissionExportUploadUploadRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the UserPermissionExportUploadUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the UserPermissionExportUploadUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the UserPermissionExportUploadUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the UserPermissionExportUploadUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the UserPermissionExportUploadUploadRegistry
  """
  retryCount: Int

  """Sync state of the UserPermissionExportUploadUploadRegistry"""
  state: RegistryState

  """ID of the User Permission Export File Upload."""
  userPermissionExportUploadUploadId: ID!

  """The local checksum of the UserPermissionExportUploadUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the UserPermissionExportUploadUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the UserPermissionExportUploadUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the UserPermissionExportUploadUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the UserPermissionExportUploadUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of UserPermissionExportUploadUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the UserPermissionExportUploadUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the UserPermissionExportUploadUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for UserPermissionExportUploadUploadRegistry."""
type UserPermissionExportUploadUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [UserPermissionExportUploadUploadRegistryEdge]

  """A list of nodes."""
  nodes: [UserPermissionExportUploadUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UserPermissionExportUploadUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserPermissionExportUploadUploadRegistry
}

type UserPermissions {
  """If `true`, the user can perform `create_snippet` on this resource"""
  createSnippet: Boolean!
}

type UserPreferences {
  """
  Default namespace context for Duo features when namespace cannot be inferred.
  """
  duoDefaultNamespace: Namespace

  """Status of the Web IDE Extension Marketplace opt-in for the user."""
  extensionsMarketplaceOptInStatus: ExtensionsMarketplaceOptInStatus!

  """Sort order for issue lists."""
  issuesSort: IssueSort

  """Governing and billing namespace for Orbit."""
  knowledgeGraphGoverningNamespace: Namespace

  """Merge request dashboard list rendering type."""
  mergeRequestDashboardListType: MergeRequestsDashboardListType

  """Show draft merge requests on merge request dashboard."""
  mergeRequestDashboardShowDrafts: Boolean

  """
  Orbit agent settings for the user. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  orbitSettings: JSON! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  Default list view for organization groups and projects. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  organizationGroupsProjectsDisplay: OrganizationGroupProjectDisplay! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """
  Sort order for organization groups and projects. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  organizationGroupsProjectsSort: OrganizationGroupProjectSort @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Sort order for projects."""
  projectsSort: ProjectSort

  """
  Timezone of the user. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  timezone: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """Use work item view instead of legacy issue view."""
  useWorkItemsView: Boolean

  """Determines whether the pipeline list shows ID or IID."""
  visibilityPipelineIdType: VisibilityPipelineIdType

  """
  Whether to skip the commit message modal and use the auto-generated commit
  message when saving changes to a wiki document. Introduced in GitLab 18.10:
  **Status**: Experiment.
  """
  wikiUseAutoCommitMessage: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Display settings for the work item lists."""
  workItemsDisplaySettings: JSON!
}

"""Autogenerated input type of UserPreferencesUpdate"""
input UserPreferencesUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Status of the Web IDE Extension Marketplace opt-in for the user."""
  extensionsMarketplaceOptInStatus: ExtensionsMarketplaceOptInStatus

  """Sort order for issue lists."""
  issuesSort: IssueSort

  """Merge request dashboard list rendering type."""
  mergeRequestDashboardListType: MergeRequestsDashboardListType

  """Show draft merge requests on the merge request dashboard."""
  mergeRequestDashboardShowDrafts: Boolean

  """Sort order for issue lists."""
  mergeRequestsSort: MergeRequestSort

  """Use work item view instead of legacy issue view."""
  useWorkItemsView: Boolean

  """Determines whether the pipeline list shows ID or IID."""
  visibilityPipelineIdType: VisibilityPipelineIdType

  """Sort order for projects."""
  projectsSort: ProjectSort

  """
  Sort order for organization groups and projects. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  organizationGroupsProjectsSort: OrganizationGroupProjectSort

  """
  Default list view for organization groups and projects. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  organizationGroupsProjectsDisplay: OrganizationGroupProjectDisplay

  """
  Display settings for the work item lists, e.g.: "{ shouldOpenItemsInSidePanel:
  false }". Introduced in GitLab 18.1: **Status**: Experiment.
  """
  workItemsDisplaySettings: JSON

  """
  Orbit agent settings, e.g.: "{ enabled: false }". Introduced in GitLab 19.0: **Status**: Experiment.
  """
  orbitSettings: JSON

  """
  Whether to skip the commit message modal and use the auto-generated commit
  message when saving changes to a wiki document. Introduced in GitLab 18.10:
  **Status**: Experiment.
  """
  wikiUseAutoCommitMessage: Boolean

  """
  Default namespace context for Duo features when namespace can not be inferred.
  """
  duoDefaultNamespaceId: Int

  """Governing and billing namespace for Orbit."""
  knowledgeGraphGoverningNamespaceId: Int
}

"""Autogenerated return type of UserPreferencesUpdate."""
type UserPreferencesUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User preferences after mutation."""
  userPreferences: UserPreferences
}

"""Types of User Promotion States."""
enum UserPromotionStatusType {
  """Successfully applied all promotion requests for user."""
  SUCCESS

  """
  User promotion was successful, but all promotion requests were not successfully applied.
  """
  PARTIAL_SUCCESS

  """Failed to apply promotion requests for user."""
  FAILED
}

"""Autogenerated input type of UserSetNamespaceCommitEmail"""
input UserSetNamespaceCommitEmailInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the namespace to set the namespace commit email for."""
  namespaceId: NamespaceID!

  """ID of the email to set."""
  emailId: EmailID
}

"""Autogenerated return type of UserSetNamespaceCommitEmail."""
type UserSetNamespaceCommitEmailPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User namespace commit email after mutation."""
  namespaceCommitEmail: NamespaceCommitEmail
}

"""Represents a Pending Member Approval Queued for Role Promotion"""
type UsersQueuedForRolePromotion {
  """Highest New GitLab::Access level requested for the member."""
  newAccessLevel: AccessLevel

  """User that is associated with the member approval object."""
  user: UserCore
}

"""The connection type for UsersQueuedForRolePromotion."""
type UsersQueuedForRolePromotionConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [UsersQueuedForRolePromotionEdge]

  """A list of nodes."""
  nodes: [UsersQueuedForRolePromotion]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UsersQueuedForRolePromotionEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UsersQueuedForRolePromotion
}

"""
A `UsersSavedReplyID` is a global ID. It is encoded as a string.

An example `UsersSavedReplyID` is: `"gid://gitlab/Users::SavedReply/1"`.
"""
scalar UsersSavedReplyID

"""Possible states of a user"""
enum UserState {
  """User is active and can use the system."""
  active

  """User has been blocked by an administrator and cannot use the system."""
  blocked

  """User is no longer active and cannot use the system."""
  deactivated

  """User is blocked, and their contributions are hidden."""
  banned

  """User has been blocked by the system."""
  ldap_blocked

  """User is blocked and pending approval."""
  blocked_pending_approval
}

type UserStatus {
  """User availability status."""
  availability: AvailabilityEnum!

  """Timestamp when the status should be automatically cleared."""
  clearStatusAt: Time

  """Indicates if the user is disabled for assignment in Duo features."""
  disabledForDuoUsage: Boolean!

  """Reason why the user is disabled for assignment in Duo features."""
  disabledForDuoUsageReason: String

  """String representation of emoji."""
  emoji: String

  """User status message."""
  message: String

  """HTML of the user status message"""
  messageHtml: String
}

"""Possible types of user"""
enum UserType {
  """Human"""
  HUMAN

  """Support bot"""
  SUPPORT_BOT

  """Alert bot"""
  ALERT_BOT

  """Visual review bot"""
  VISUAL_REVIEW_BOT

  """Service user"""
  SERVICE_USER

  """Ghost"""
  GHOST

  """Project bot"""
  PROJECT_BOT

  """Security bot"""
  SECURITY_BOT

  """Automation bot"""
  AUTOMATION_BOT

  """Security policy bot"""
  SECURITY_POLICY_BOT

  """Admin bot"""
  ADMIN_BOT

  """Service account"""
  SERVICE_ACCOUNT

  """Placeholder"""
  PLACEHOLDER

  """Duo code review bot"""
  DUO_CODE_REVIEW_BOT

  """Import user"""
  IMPORT_USER
}

"""
Represents the Geo replication and verification state of a `user_upload`
"""
type UserUploadRegistry {
  """
  Indicate if the checksums of the UserUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the UserUploadRegistry was created"""
  createdAt: Time

  """Path to the data management view for this UserUploadRegistry"""
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the UserUploadRegistry"""
  id: ID!

  """Error message during sync of the UserUploadRegistry"""
  lastSyncFailure: String

  """Timestamp of the most recent successful sync of the UserUploadRegistry"""
  lastSyncedAt: Time

  """Indicate if the UserUploadRegistry is missing on primary."""
  missingOnPrimary: Boolean

  """ID of the UserUploadRegistry's model record."""
  modelRecordId: Int

  """Timestamp after which the UserUploadRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the UserUploadRegistry"""
  retryCount: Int

  """Sync state of the UserUploadRegistry"""
  state: RegistryState

  """ID of the User Upload."""
  userUploadId: ID!

  """The local checksum of the UserUploadRegistry"""
  verificationChecksum: String

  """The expected checksum of the UserUploadRegistry in case of mismatch."""
  verificationChecksumMismatched: String

  """Error message during verification of the UserUploadRegistry"""
  verificationFailure: String

  """Timestamp after which the UserUploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the UserUploadRegistry
  """
  verificationRetryCount: Int

  """Timestamp when the verification of UserUploadRegistry started"""
  verificationStartedAt: Time

  """Verification state of the UserUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the UserUploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for UserUploadRegistry."""
type UserUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [UserUploadRegistryEdge]

  """A list of nodes."""
  nodes: [UserUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type UserUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: UserUploadRegistry
}

type ValueStream {
  """ID of the value stream."""
  id: AnalyticsCycleAnalyticsValueStreamID!

  """Name of the value stream."""
  name: String!

  """Namespace the value stream belongs to."""
  namespace: Namespace!

  """
  Project the value stream belongs to, returns empty if it belongs to a group.
  Introduced in GitLab 15.6: **Status**: Experiment.
  """
  project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.")

  """Value Stream stages."""
  stages(
    """Value stream stage id."""
    id: ID
  ): [ValueStreamStage!]
}

type ValueStreamAnalytics {
  """Shows information about background data collection and aggregation."""
  aggregationStatus: AggregationStatus
}

type ValueStreamAnalyticsDateMetric {
  """Date for the metric."""
  date: Date

  """Identifier for the metric."""
  identifier: String!

  """Optional links for drilling down."""
  links: [ValueStreamMetricLinkType!]!

  """Title for the metric."""
  title: String!

  """Unit of measurement."""
  unit: String

  """Value for the metric."""
  value: Float
}

type ValueStreamAnalyticsMetric {
  """Identifier for the metric."""
  identifier: String!

  """Optional links for drilling down."""
  links: [ValueStreamMetricLinkType!]!

  """Title for the metric."""
  title: String!

  """Unit of measurement."""
  unit: String

  """Value for the metric."""
  value: Float
}

"""The connection type for ValueStream."""
type ValueStreamConnection {
  """A list of edges."""
  edges: [ValueStreamEdge]

  """A list of nodes."""
  nodes: [ValueStream]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of ValueStreamCreate"""
input ValueStreamCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Value stream configuration."""
  setting: ValueStreamSettingInput

  """Value stream name."""
  name: String!

  """Value stream stages."""
  stages: [CreateValueStreamStageInput!]

  """
  Full path of the namespace(project or group) the value stream is created in.
  """
  namespacePath: ID!
}

"""Autogenerated return type of ValueStreamCreate."""
type ValueStreamCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created value stream."""
  valueStream: ValueStream
}

"""
Represents a recorded measurement (object count) for the requested group
"""
type ValueStreamDashboardCount {
  """Object count."""
  count: Int

  """Type of object being measured."""
  identifier: ValueStreamDashboardMetric!

  """Time the measurement was taken."""
  recordedAt: Time
}

"""Possible identifier types for a measurement"""
enum ValueStreamDashboardMetric {
  """Project count."""
  PROJECTS

  """Issue count."""
  ISSUES

  """Group count."""
  GROUPS

  """Merge request count."""
  MERGE_REQUESTS

  """Pipeline count."""
  PIPELINES

  """User count."""
  USERS

  """
  Contributor count. EXPERIMENTAL: Only available on the SaaS version of GitLab
  when the ClickHouse database backend is enabled.
  """
  CONTRIBUTORS
}

"""Possible identifier types for project-level measurement"""
enum ValueStreamDashboardProjectLevelMetric {
  """Issue count."""
  ISSUES

  """Merge request count."""
  MERGE_REQUESTS

  """Pipeline count."""
  PIPELINES

  """
  Contributor count. EXPERIMENTAL: Only available on the SaaS version of GitLab
  when the ClickHouse database backend is enabled.
  """
  CONTRIBUTORS
}

"""Autogenerated input type of ValueStreamDestroy"""
input ValueStreamDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the value stream to destroy."""
  id: AnalyticsCycleAnalyticsValueStreamID!
}

"""Autogenerated return type of ValueStreamDestroy."""
type ValueStreamDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Value stream deleted after mutation."""
  valueStream: ValueStream
}

"""An edge in a connection."""
type ValueStreamEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ValueStream
}

type ValueStreamMetricLinkType {
  """Link to the metric documentation."""
  docsLink: Boolean

  """Label for the link."""
  label: String!

  """Name of the link group."""
  name: String!

  """Drill-down URL."""
  url: String!
}

"""Attributes for value stream setting."""
input ValueStreamSettingInput {
  """Projects' global IDs used to filter value stream data."""
  projectIdsFilter: [ProjectID!]
}

type ValueStreamStage {
  """Whether the stage is customized."""
  custom: Boolean!

  """HTML description of the end event."""
  endEventHtmlDescription: String!

  """End event identifier."""
  endEventIdentifier: ValueStreamStageEvent!

  """Label associated with end event."""
  endEventLabel: Label

  """Whether the stage is hidden."""
  hidden: Boolean!

  """ID of the value stream."""
  id: AnalyticsCycleAnalyticsStageID!

  """Aggregated metrics for the given stage"""
  metrics(
    """
    Aggregation timeframe. Filters the issue or the merge request creation time
    for FOSS projects, and the end event timestamp for licensed projects or groups.
    """
    timeframe: Timeframe!

    """Usernames of users assigned to the issue or the merge request."""
    assigneeUsernames: [String!]

    """Username of the author of the issue or the merge request."""
    authorUsername: String

    """Milestone applied to the issue or the merge request."""
    milestoneTitle: String

    """Labels applied to the issue or the merge request."""
    labelNames: [String!]

    """
    ID of an epic associated with the issues.               Using the filter is
    not supported for stages based on merge requests.
    """
    epicId: ID

    """
    ID of an iteration associated with the issues.               Using the
    filter is not supported for stages based on merge requests.
    """
    iterationId: ID

    """
    Weight applied to the issue.               Using the filter is not supported for stages based on merge requests.
    """
    weight: Int

    """Filter by reaction emoji applied by the current user."""
    myReactionEmoji: String

    """Argument used for adding negated filters."""
    not: NegatedValueStreamAnalyticsIssuableFilterInput

    """Filter for projects. Only available for group value streams."""
    projectIds: [ProjectID!]
  ): ValueStreamStageMetrics!

  """Name of the stage."""
  name: String!

  """HTML description of the start event."""
  startEventHtmlDescription: String!

  """Start event identifier."""
  startEventIdentifier: ValueStreamStageEvent!

  """Label associated with start event."""
  startEventLabel: Label
}

"""Stage event identifiers"""
enum ValueStreamStageEvent {
  """Issue created event."""
  ISSUE_CREATED

  """Issue first mentioned in commit event."""
  ISSUE_FIRST_MENTIONED_IN_COMMIT

  """Issue deployed to production event."""
  ISSUE_DEPLOYED_TO_PRODUCTION

  """Merge request created event."""
  MERGE_REQUEST_CREATED

  """Merge request first deployed to production event."""
  MERGE_REQUEST_FIRST_DEPLOYED_TO_PRODUCTION

  """Merge request last build finished event."""
  MERGE_REQUEST_LAST_BUILD_FINISHED

  """Merge request last build started event."""
  MERGE_REQUEST_LAST_BUILD_STARTED

  """Merge request merged event."""
  MERGE_REQUEST_MERGED

  """Code stage start event."""
  CODE_STAGE_START

  """Issue stage end event."""
  ISSUE_STAGE_END

  """Plan stage start event."""
  PLAN_STAGE_START

  """Issue closed event."""
  ISSUE_CLOSED

  """Issue first added to board event."""
  ISSUE_FIRST_ADDED_TO_BOARD

  """Issue first associated with milestone event."""
  ISSUE_FIRST_ASSOCIATED_WITH_MILESTONE

  """Issue last edited event."""
  ISSUE_LAST_EDITED

  """Issue label added event."""
  ISSUE_LABEL_ADDED

  """Issue label removed event."""
  ISSUE_LABEL_REMOVED

  """Issue first assigned at event."""
  ISSUE_FIRST_ASSIGNED_AT

  """Issue first added to iteration event."""
  ISSUE_FIRST_ADDED_TO_ITERATION

  """Merge request closed event."""
  MERGE_REQUEST_CLOSED

  """Merge request last edited event."""
  MERGE_REQUEST_LAST_EDITED

  """Merge request label added event."""
  MERGE_REQUEST_LABEL_ADDED

  """Merge request label removed event."""
  MERGE_REQUEST_LABEL_REMOVED

  """Merge request first commit at event."""
  MERGE_REQUEST_FIRST_COMMIT_AT

  """Merge request first assigned at event."""
  MERGE_REQUEST_FIRST_ASSIGNED_AT

  """Merge request reviewer first assigned event."""
  MERGE_REQUEST_REVIEWER_FIRST_ASSIGNED

  """Merge request last approved at event."""
  MERGE_REQUEST_LAST_APPROVED_AT
}

type ValueStreamStageItems {
  """Duration of the item on the stage."""
  duration: String

  """Duration of item on stage in milliseconds."""
  durationInMilliseconds: BigInt

  """When exited the stage."""
  endEventTimestamp: Time

  """Item record."""
  record: Issuable
}

"""The connection type for ValueStreamStageItems."""
type ValueStreamStageItemsConnection {
  """A list of edges."""
  edges: [ValueStreamStageItemsEdge]

  """A list of nodes."""
  nodes: [ValueStreamStageItems]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ValueStreamStageItemsEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: ValueStreamStageItems
}

"""Sorting values available to value stream stage items"""
enum ValueStreamStageItemSort {
  """Duration by ascending order."""
  DURATION_ASC

  """Duration by ascending order."""
  DURATION_DESC

  """Stage end event time by ascending order."""
  END_EVENT_ASC

  """Stage end event time by descending order."""
  END_EVENT_DESC
}

type ValueStreamStageMetrics {
  """Average duration in seconds."""
  average: ValueStreamAnalyticsMetric

  """
  Limited item count. The backend counts maximum 1000 items, for free projects,
  and maximum 10,000 items for licensed projects or licensed groups.
  """
  count: ValueStreamAnalyticsMetric

  """Items in the stage. Introduced in GitLab 17.4: **Status**: Experiment."""
  items(
    """Sort stage items by criteria."""
    sort: ValueStreamStageItemSort

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ValueStreamStageItemsConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Median duration in seconds."""
  median: ValueStreamAnalyticsMetric

  """
  Data series in the value stream stage. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  series: ValueStreamStageSeries! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")
}

type ValueStreamStageSeries {
  """Average duration for each day within the given date range."""
  averageDurations: [ValueStreamAnalyticsDateMetric!]
}

"""Autogenerated input type of ValueStreamUpdate"""
input ValueStreamUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Value stream configuration."""
  setting: ValueStreamSettingInput

  """Global ID of the value stream to update."""
  id: AnalyticsCycleAnalyticsValueStreamID!

  """Value stream name."""
  name: String

  """Value stream stages."""
  stages: [UpdateValueStreamStageInput!]
}

"""Autogenerated return type of ValueStreamUpdate."""
type ValueStreamUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated value stream."""
  valueStream: ValueStream
}

enum VerificationStateEnum {
  """Verification process has not started."""
  PENDING

  """Verification process is in progress."""
  STARTED

  """Verification process finished successfully."""
  SUCCEEDED

  """Verification process finished but failed."""
  FAILED

  """Verification process is disabled."""
  DISABLED
}

"""Verification status of a GPG, X.509 or SSH signature for a commit."""
enum VerificationStatus {
  """unverified verification status."""
  UNVERIFIED

  """verified verification status."""
  VERIFIED

  """same_user_different_email verification status."""
  SAME_USER_DIFFERENT_EMAIL

  """other_user verification status."""
  OTHER_USER

  """unverified_key verification status."""
  UNVERIFIED_KEY

  """unknown_key verification status."""
  UNKNOWN_KEY

  """multiple_signatures verification status."""
  MULTIPLE_SIGNATURES

  """revoked_key verification status."""
  REVOKED_KEY

  """verified_system verification status."""
  VERIFIED_SYSTEM

  """unverified_author_email verification status."""
  UNVERIFIED_AUTHOR_EMAIL

  """expired_key verification status."""
  EXPIRED_KEY

  """verified_ca verification status."""
  VERIFIED_CA
}

input VerificationStatusFilterInput {
  """Verification status of the work item."""
  verificationStatus: RequirementStatusFilter!
}

input VerificationStatusInput {
  """Verification status of the work item."""
  verificationStatus: TestReportState!
}

"""Autogenerated input type of VerifiedNamespaceCreate"""
input VerifiedNamespaceCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Root namespace path."""
  namespacePath: ID!

  """Verification level for a root namespace."""
  verificationLevel: CiCatalogResourceVerificationLevel!
}

"""Autogenerated return type of VerifiedNamespaceCreate."""
type VerifiedNamespaceCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of VirtualRegistriesCleanupPolicyUpsert"""
input VirtualRegistriesCleanupPolicyUpsertInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Group path for the group virtual registries."""
  fullPath: ID!

  """
  Enable or disable the virtual registries cleanup policy. Default is `false`.
  """
  enabled: Boolean

  """
  Keep packages for the period after download. Range is 1-365. Default is 30.
  """
  keepNDaysAfterDownload: Int

  """
  Job cadence for the cleanup process. Allowed values are 1, 7, 14, 30, 90. Default is 7.
  """
  cadence: Int

  """
  Whether to notify group owners when cleanup runs succeed. Default is `false`.
  """
  notifyOnSuccess: Boolean

  """
  Whether to notify group owners when cleanup runs fail. Default is `false`.
  """
  notifyOnFailure: Boolean
}

"""Autogenerated return type of VirtualRegistriesCleanupPolicyUpsert."""
type VirtualRegistriesCleanupPolicyUpsertPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Virtual registries cleanup policy after mutation."""
  virtualRegistriesCleanupPolicy: VirtualRegistryCleanupPolicy
}

"""
A `VirtualRegistriesContainerRegistryID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesContainerRegistryID` is: `"gid://gitlab/VirtualRegistries::Container::Registry/1"`.
"""
scalar VirtualRegistriesContainerRegistryID

"""
A `VirtualRegistriesContainerRegistryUpstreamID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesContainerRegistryUpstreamID` is:
`"gid://gitlab/VirtualRegistries::Container::RegistryUpstream/1"`.
"""
scalar VirtualRegistriesContainerRegistryUpstreamID

"""
A `VirtualRegistriesContainerUpstreamID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesContainerUpstreamID` is: `"gid://gitlab/VirtualRegistries::Container::Upstream/1"`.
"""
scalar VirtualRegistriesContainerUpstreamID

"""
A `VirtualRegistriesPackagesMavenRegistryID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesPackagesMavenRegistryID` is: `"gid://gitlab/VirtualRegistries::Packages::Maven::Registry/1"`.
"""
scalar VirtualRegistriesPackagesMavenRegistryID

"""
A `VirtualRegistriesPackagesMavenRegistryUpstreamID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesPackagesMavenRegistryUpstreamID` is:
`"gid://gitlab/VirtualRegistries::Packages::Maven::RegistryUpstream/1"`.
"""
scalar VirtualRegistriesPackagesMavenRegistryUpstreamID

"""
A `VirtualRegistriesPackagesMavenUpstreamID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesPackagesMavenUpstreamID` is: `"gid://gitlab/VirtualRegistries::Packages::Maven::Upstream/1"`.
"""
scalar VirtualRegistriesPackagesMavenUpstreamID

"""
A `VirtualRegistriesPackagesMavenUpstreamRuleID` is a global ID. It is encoded as a string.

An example `VirtualRegistriesPackagesMavenUpstreamRuleID` is:
`"gid://gitlab/VirtualRegistries::Packages::Maven::Upstream::Rule/1"`.
"""
scalar VirtualRegistriesPackagesMavenUpstreamRuleID

"""Root group level virtual registries settings"""
type VirtualRegistriesSetting {
  """Indicates whether virtual registries are enabled for the group."""
  enabled: Boolean!
}

"""Represents a virtual registry cleanup policy"""
type VirtualRegistryCleanupPolicy {
  """
  Frequency in days for running the cleanup policy. Valid values: 1, 7, 14, 30,
  90. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  cadence: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Timestamp when the cleanup policy was created. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  createdAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Whether the cleanup policy is enabled. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  enabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Error message when the cleanup policy fails. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  failureMessage: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Number of days to keep cached entries after their last download. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  keepNDaysAfterDownload: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Last time that the virtual registry cleanup policy executed. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  lastRunAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Number of entries deleted during the last cleanup run. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  lastRunDeletedEntriesCount: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Size in bytes of data deleted during the last cleanup run. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  lastRunDeletedSize: BigInt @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Detailed metrics from the last cleanup run. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  lastRunDetailedMetrics: CleanupPolicyLastRunDetailedMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Next time the virtual registry cleanup policy runs. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  nextRunAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Boolean to notify group owners on failed cleanup runs. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  notifyOnFailure: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Boolean to notify group owners on successful cleanup runs. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  notifyOnSuccess: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Current execution status of the cleanup policy. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  status: PolicyStatus! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Timestamp when the cleanup policy was last updated. Introduced in GitLab 18.7: **Status**: Experiment.
  """
  updatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")
}

enum VisibilityLevelsEnum {
  """Private visibility level."""
  private

  """Internal visibility level."""
  internal

  """Public visibility level."""
  public
}

"""Determines whether the pipeline list shows ID or IID"""
enum VisibilityPipelineIdType {
  """Display pipeline ID."""
  ID

  """Display pipeline IID."""
  IID
}

enum VisibilityScopesEnum {
  """Snippet is visible only to the snippet creator."""
  private

  """Snippet is visible for any logged in user except external users."""
  internal

  """Snippet can be accessed without any authentication."""
  public
}

"""Autogenerated input type of VulnerabilitiesArchive"""
input VulnerabilitiesArchiveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the project to attach the vulnerability to."""
  projectId: ProjectID!

  """Last update date of vulnerabilities being archived."""
  date: Date!
}

"""Autogenerated return type of VulnerabilitiesArchive."""
type VulnerabilitiesArchivePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Status of the action."""
  status: String!
}

"""
Represents vulnerability metrics by age with filtering and grouping capabilities
"""
type VulnerabilitiesByAge {
  """Vulnerability counts grouped by report type."""
  byReportType: [VulnerabilityReportTypeCount!]

  """Vulnerability counts grouped by severity level."""
  bySeverity: [VulnerabilitySeverityCount!]

  """Number of vulnerabilities in the age band."""
  count: Int

  """
  Age band name ("< 7 days", "7 - 14 days",
  "15 - 30 days", "31 - 60 days", "61 - 90 days", "91 - 180 days", "> 180 days" ).
  """
  name: String!
}

"""Represents vulnerability metrics by identifier with filtering"""
type VulnerabilitiesByIdentifier {
  """Vulnerability counts grouped by severity level."""
  bySeverity: [VulnerabilitySeverityCount!]

  """Number of vulnerabilities for the identifier."""
  count: Int

  """Identifier name."""
  name: String!

  """URL to the identifier on the MITRE website."""
  url: String
}

"""
Represents the count of vulnerabilities by severity on a particular day. This data is retained for 365 days
"""
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!
}

"""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
}

"""Autogenerated input type of VulnerabilitiesCreateIssue"""
input VulnerabilitiesCreateIssueInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the project to attach the issue to."""
  project: ProjectID!

  """
  IDs of vulnerabilities to link to the given issue.  Up to 100 can be provided.
  """
  vulnerabilityIds: [VulnerabilityID!]!
}

"""Autogenerated return type of VulnerabilitiesCreateIssue."""
type VulnerabilitiesCreateIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue
}

"""Autogenerated input type of VulnerabilitiesDismiss"""
input VulnerabilitiesDismissInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """IDs of the vulnerabilities to be dismissed (maximum 100 entries)."""
  vulnerabilityIds: [VulnerabilityID!]!

  """Comment why vulnerability was dismissed (maximum 50,000 characters)."""
  comment: String

  """Reason why vulnerability should be dismissed."""
  dismissalReason: VulnerabilityDismissalReason
}

"""Autogenerated return type of VulnerabilitiesDismiss."""
type VulnerabilitiesDismissPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerabilities after state change."""
  vulnerabilities: [Vulnerability!]!
}

"""
A `VulnerabilitiesExternalIssueLinkID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesExternalIssueLinkID` is: `"gid://gitlab/Vulnerabilities::ExternalIssueLink/1"`.
"""
scalar VulnerabilitiesExternalIssueLinkID

"""
Represents vulnerability metrics over time with filtering and grouping capabilities
"""
type VulnerabilitiesOverTime {
  """Vulnerability counts grouped by report type."""
  byReportType: [VulnerabilityReportTypeCount!]

  """Vulnerability counts grouped by severity level."""
  bySeverity: [VulnerabilitySeverityCount!]

  """Total number of vulnerabilities for the date."""
  count: Int!

  """Date for the metrics."""
  date: ISO8601Date!
}

"""The connection type for VulnerabilitiesOverTime."""
type VulnerabilitiesOverTimeConnection {
  """A list of edges."""
  edges: [VulnerabilitiesOverTimeEdge]

  """A list of nodes."""
  nodes: [VulnerabilitiesOverTime]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilitiesOverTimeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilitiesOverTime
}

"""Represents vulnerability counts grouped by severity level"""
type VulnerabilitiesPerSeverity {
  """Number of CRITICAL severity vulnerabilities."""
  critical: VulnerabilitySeverityCount

  """Number of HIGH severity vulnerabilities."""
  high: VulnerabilitySeverityCount

  """Number of INFO severity vulnerabilities."""
  info: VulnerabilitySeverityCount

  """Number of LOW severity vulnerabilities."""
  low: VulnerabilitySeverityCount

  """Number of MEDIUM severity vulnerabilities."""
  medium: VulnerabilitySeverityCount

  """Number of UNKNOWN severity vulnerabilities."""
  unknown: VulnerabilitySeverityCount
}

"""Autogenerated input type of VulnerabilitiesRemoveAllFromProject"""
input VulnerabilitiesRemoveAllFromProjectInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  IDs of project for which all Vulnerabilities should be removed. The deletion
  will happen in the background so the changes will not be visible immediately.
  """
  projectIds: [ProjectID!]!

  """
  When set as `true`, deletes only the vulnerabilities no longer detected. When
  set as `false`, deletes only the vulnerabilities still detected.
  """
  resolvedOnDefaultBranch: Boolean
}

"""Autogenerated return type of VulnerabilitiesRemoveAllFromProject."""
type VulnerabilitiesRemoveAllFromProjectPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Projects for which the deletion was scheduled."""
  projects: [Project!]!
}

"""
A `VulnerabilitiesScannerID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesScannerID` is: `"gid://gitlab/Vulnerabilities::Scanner/1"`.
"""
scalar VulnerabilitiesScannerID

"""Autogenerated input type of vulnerabilitiesSeverityOverride"""
input vulnerabilitiesSeverityOverrideInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  IDs of the vulnerabilities for which severity needs to be changed (maximum 100 entries).
  """
  vulnerabilityIds: [VulnerabilityID!]!

  """New severity value for the severities."""
  severity: VulnerabilitySeverity!

  """
  Comment why vulnerability severity was changed (maximum 50,000 characters).
  """
  comment: String!
}

"""Autogenerated return type of vulnerabilitiesSeverityOverride."""
type vulnerabilitiesSeverityOverridePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerabilities after severity change."""
  vulnerabilities: [Vulnerability!]!
}

"""
A `VulnerabilitiesStateTransitionID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesStateTransitionID` is: `"gid://gitlab/Vulnerabilities::StateTransition/1"`.
"""
scalar VulnerabilitiesStateTransitionID

"""Represents a vulnerability"""
type Vulnerability implements NoteableInterface & Todoable {
  """Indicates whether the type of vulnerability can be resolved with AI."""
  aiResolutionAvailable: Boolean

  """Indicates whether the specific vulnerability can be resolved with AI."""
  aiResolutionEnabled: Boolean

  """
  AI workflows triggered for the vulnerability. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  aiWorkflows(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityTriggeredWorkflowConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates whether the vulnerability is about to be archived in the next month.
  Introduced in GitLab 17.11: **Status**: Experiment.
  """
  archivalInformation: VulnerabilityArchivalInformation! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """Timestamp of when the vulnerability state was changed to confirmed."""
  confirmedAt: Time

  """User that confirmed the vulnerability."""
  confirmedBy: UserCore

  """Enrichment (EPSS score and KEV) for CVE vulnerabilities."""
  cveEnrichment: CveEnrichmentType

  """CVSS information for the vulnerability."""
  cvss: [CvssType!]!

  """
  Dependencies for the vulnerability. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  dependencies(
    """Sort dependencies by given criteria."""
    sort: DependencySort

    """Filter dependencies by package managers."""
    packageManagers: [PackageManager!]

    """Filter dependencies by component names."""
    componentNames: [String!]

    """Filter dependencies by component IDs."""
    componentIds: [SbomComponentID!]

    """Filter dependencies by source type."""
    sourceTypes: [SbomSourceType!] = [DEPENDENCY_SCANNING, CONTAINER_SCANNING, NIL_SOURCE]

    """Filter dependencies by component versions."""
    componentVersions: [String!]

    """
    Filter dependencies to exclude the specified component versions. Introduced in GitLab 18.1: **Status**: Experiment.
    """
    notComponentVersions: [String!]

    """
    Filter by security policy violations. Introduced in GitLab 18.7: **Status**: Experiment.
    """
    policyViolations: [PolicyViolations!]

    """
    Filter dependencies by tracked ref IDs. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefIds: [SecurityProjectTrackedContextID!]

    """
    Filter dependencies by tracked ref scope. Only available when the
    vulnerabilities_across_contexts feature flag is enabled. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    trackedRefsScope: SecurityTrackedRefScope

    """
    Filter dependencies by malware status. Work in progress and gated with
    feature flag `malicious_packages_dependency_list_filtering`. Introduced in
    GitLab 19.0: **Status**: Experiment.
    """
    malware: 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
  ): DependencyConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """Description of the vulnerability."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Details of the vulnerability."""
  details: [VulnerabilityDetail!]!

  """Timestamp of when the vulnerability was first detected."""
  detectedAt: Time!

  """All discussions on the 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!

  """
  Reason for dismissal. Returns `null` for states other than `dismissed`.
  """
  dismissalReason: VulnerabilityDismissalReason

  """Timestamp of when the vulnerability state was changed to dismissed."""
  dismissedAt: Time

  """User that dismissed the vulnerability."""
  dismissedBy: UserCore

  """
  Vulnerability finding due date. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  dueDate: ISO8601Date @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """
  Indicates whether the SAST vulnerability review workflow is enabled for the
  project. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  duoSastVrWorkflowEnabled: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """List of external issue links related to the vulnerability."""
  externalIssueLinks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityExternalIssueLinkConnection!

  """Indicates whether the vulnerability is a false positive."""
  falsePositive: Boolean

  """Status of the secret token associated with this vulnerability"""
  findingTokenStatus: VulnerabilityFindingTokenStatus

  """
  Flags set on the vulnerability. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  flags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityFlagConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Indicates whether there is a remediation available for the vulnerability.
  """
  hasRemediations: Boolean

  """GraphQL ID of the vulnerability."""
  id: ID!

  """Identifiers of the vulnerability."""
  identifiers: [VulnerabilityIdentifier!]!

  """
  Pipeline where the vulnerability was first detected. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  initialDetectedPipeline: Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """List of issue links related to the vulnerability."""
  issueLinks(
    """Filter issue links by link type."""
    linkType: VulnerabilityIssueLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityIssueLinkConnection!

  """
  Pipeline where the vulnerability was last detected. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  latestDetectedPipeline: Pipeline @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.2.")

  """
  Latest flag for the vulnerability. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  latestFlag: VulnerabilityFlag @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """
  Latest non-closed merge request linked to fix the vulnerability. Introduced in GitLab 19.1: **Status**: Experiment.
  """
  latestNonClosedMergeRequest: MergeRequest @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.1.")

  """
  Latest security report finding for the vulnerability. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  latestSecurityReportFinding: PipelineSecurityReportFinding @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """List of links associated with the vulnerability."""
  links: [VulnerabilityLink!]!

  """
  Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability.
  """
  location: VulnerabilityLocation

  """
  Indicates whether the vulnerability is associated with a malware package.
  Returns `true` if a malware package is identified (regardless of add-on
  status). Returns `false` when the SSCS add-on is active and the package is not
  a malware package. Returns `null` when the add-on is not active. Introduced in
  GitLab 19.0: **Status**: Experiment.
  """
  malware: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Merge request that fixes the vulnerability."""
  mergeRequest: MergeRequest

  """Merge requests that are linked to fix the vulnerability."""
  mergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): MergeRequestConnection

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """
  Indicates whether the vulnerability was auto-dismissed by a security policy.
  Introduced in GitLab 18.7: **Status**: Experiment.
  """
  policyAutoDismissed: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.7.")

  """
  Policy violation for the vulnerability. Introduced in GitLab 18.6: **Status**: Experiment.
  """
  policyViolations: PolicyViolations @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.6.")

  """
  Indicates whether the vulnerability is present on the default branch or not.
  """
  presentOnDefaultBranch: Boolean!

  """Primary identifier of the vulnerability."""
  primaryIdentifier: VulnerabilityIdentifier

  """Project on which the vulnerability was found."""
  project: Project

  """
  Reachability status of the vulnerability. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  reachability: ReachabilityType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Indicates whether the vulnerability is present in the code or not."""
  removedFromCode: Boolean!

  """
  Type of the security report that found the vulnerability (SAST,
  DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION,
  COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING,
  CONTAINER_SCANNING_FOR_REGISTRY, SARIF, GENERIC). `Scan Type` in the UI.
  """
  reportType: VulnerabilityReportType

  """
  Information about the representation of the vulnerability, such as resolved
  commit SHA. Introduced in GitLab 17.7: **Status**: Experiment.
  """
  representationInformation: VulnerabilityRepresentationInformation @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.7.")

  """Timestamp of when the vulnerability state was changed to resolved."""
  resolvedAt: Time

  """User that resolved the vulnerability."""
  resolvedBy: UserCore

  """
  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

  """List of severity changes for the vulnerability."""
  severityOverrides(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): SeverityOverrideConnection

  """Recommended solution for the vulnerability."""
  solution: String

  """State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED)"""
  state: VulnerabilityState

  """Comment given for the vulnerability state change."""
  stateComment: String

  """List of state transitions related to the vulnerability."""
  stateTransitions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): VulnerabilityStateTransitionTypeConnection

  """Title of the vulnerability."""
  title: String

  """
  Tracked ref (branch or tag) where the vulnerability was detected. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  trackedRef: SecurityTrackedRef @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Indicates whether the finding was detected without an identified source (untrusted input).
  """
  unverified: Boolean!

  """Timestamp of when the vulnerability was last updated."""
  updatedAt: Time

  """Number of user notes attached to the vulnerability."""
  userNotesCount: Int!

  """Permissions for the current user on the resource"""
  userPermissions: VulnerabilityPermissions!

  """
  UUID of the vulnerability finding. Can be used to look up the associated security report finding.
  """
  uuid: String!

  """Path to the vulnerability's details page."""
  vulnerabilityPath: String

  """URL to the vulnerability's details page."""
  webUrl: String
}

"""Represents vulnerability archival information"""
type VulnerabilityArchivalInformation {
  """
  Indicates whether the vulnerability is about to be archived in the next month.
  """
  aboutToBeArchived: Boolean!

  """Date when the vulnerability is expected to be archived."""
  expectedToBeArchivedOn: Date
}

"""Represents a vulnerability archive"""
type VulnerabilityArchive {
  """Number of records the archive contains."""
  archivedRecordsCount: Int!

  """
  Month of the archive, represented as a number from 1 (January) to 12 (December).
  """
  month: Int!

  """Year of the archive."""
  year: Int!
}

"""
Represents the Geo replication and verification state of a vulnerability_archive_export_upload
"""
type VulnerabilityArchiveExportUploadRegistry {
  """
  Indicate if the checksums of the VulnerabilityArchiveExportUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """
  Timestamp when the VulnerabilityArchiveExportUploadRegistry was created
  """
  createdAt: Time

  """
  Path to the data management view for this VulnerabilityArchiveExportUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the VulnerabilityArchiveExportUploadRegistry"""
  id: ID!

  """
  Error message during sync of the VulnerabilityArchiveExportUploadRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the VulnerabilityArchiveExportUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the VulnerabilityArchiveExportUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the VulnerabilityArchiveExportUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the VulnerabilityArchiveExportUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the VulnerabilityArchiveExportUploadRegistry
  """
  retryCount: Int

  """Sync state of the VulnerabilityArchiveExportUploadRegistry"""
  state: RegistryState

  """The local checksum of the VulnerabilityArchiveExportUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the VulnerabilityArchiveExportUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the VulnerabilityArchiveExportUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the VulnerabilityArchiveExportUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the VulnerabilityArchiveExportUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of VulnerabilityArchiveExportUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the VulnerabilityArchiveExportUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the VulnerabilityArchiveExportUploadRegistry
  """
  verifiedAt: Time

  """ID of the Vulnerability Archive Export Upload."""
  vulnerabilityArchiveExportUploadId: ID!
}

"""The connection type for VulnerabilityArchiveExportUploadRegistry."""
type VulnerabilityArchiveExportUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [VulnerabilityArchiveExportUploadRegistryEdge]

  """A list of nodes."""
  nodes: [VulnerabilityArchiveExportUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityArchiveExportUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityArchiveExportUploadRegistry
}

"""Risk factor based on average vulnerability score"""
type VulnerabilityAverageScoreFactor {
  """
  Factor value contributing to the risk score. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  factor: Float! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
}

"""Autogenerated input type of VulnerabilityConfirm"""
input VulnerabilityConfirmInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Comment why vulnerability was confirmed (maximum 50,000 characters)."""
  comment: 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 the mutation."""
  errors: [String!]!

  """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!
}

"""Represents a container image reported on the related vulnerability"""
type VulnerabilityContainerImage {
  """Name of the container image."""
  name: String
}

"""The connection type for VulnerabilityContainerImage."""
type VulnerabilityContainerImageConnection {
  """A list of edges."""
  edges: [VulnerabilityContainerImageEdge]

  """A list of nodes."""
  nodes: [VulnerabilityContainerImage]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityContainerImageEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityContainerImage
}

"""Input type for filtering projects by vulnerability count and severity"""
input VulnerabilityCountFilterInput {
  """Severity level of vulnerabilities to filter by."""
  severity: VulnerabilitySeverity!

  """Number of vulnerabilities to filter by."""
  count: Int!

  """Comparison operator for the vulnerability count."""
  operator: ComparisonOperator!
}

"""Autogenerated input type of VulnerabilityCreate"""
input VulnerabilityCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the project to attach the vulnerability to."""
  project: ProjectID!

  """Name of the vulnerability."""
  name: String!

  """Long text section that describes the vulnerability in more detail."""
  description: String!

  """Information about the scanner used to discover the vulnerability."""
  scanner: VulnerabilityScannerInput!

  """Array of CVE or CWE identifiers for the vulnerability."""
  identifiers: [VulnerabilityIdentifierInput!]!

  """State of the vulnerability (defaults to `detected`)."""
  state: VulnerabilityState = DETECTED

  """Severity of the vulnerability (defaults to `unknown`)."""
  severity: VulnerabilitySeverity = UNKNOWN

  """Instructions for how to fix the vulnerability."""
  solution: String

  """Tracked context to associate with the vulnerability."""
  projectTrackedContext: ProjectTrackedContextInput

  """
  Timestamp of when the vulnerability was first detected (defaults to creation time).
  """
  detectedAt: Time

  """
  Timestamp of when the vulnerability state changed to confirmed (defaults to creation time if status is `confirmed`).
  """
  confirmedAt: Time

  """
  Timestamp of when the vulnerability state changed to resolved (defaults to creation time if status is `resolved`).
  """
  resolvedAt: Time

  """
  Timestamp of when the vulnerability state changed to dismissed (defaults to creation time if status is `dismissed`).
  """
  dismissedAt: Time
}

"""Autogenerated return type of VulnerabilityCreate."""
type VulnerabilityCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerability created."""
  vulnerability: Vulnerability
}

"""
Represents a vulnerability detail field. The fields with data will depend on the vulnerability detail type
"""
union VulnerabilityDetail = VulnerabilityDetailBase | VulnerabilityDetailBoolean | VulnerabilityDetailCode | VulnerabilityDetailCodeFlows | VulnerabilityDetailCommit | VulnerabilityDetailDiff | VulnerabilityDetailFileLocation | VulnerabilityDetailInt | VulnerabilityDetailList | VulnerabilityDetailMarkdown | VulnerabilityDetailModuleLocation | VulnerabilityDetailNamedList | VulnerabilityDetailTable | VulnerabilityDetailText | VulnerabilityDetailUrl

"""Represents the vulnerability details base"""
type VulnerabilityDetailBase {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String
}

"""Represents the vulnerability details boolean value"""
type VulnerabilityDetailBoolean {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the field."""
  value: Boolean!
}

"""Represents the vulnerability details code field"""
type VulnerabilityDetailCode {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Language of the code."""
  lang: String

  """Name of the field."""
  name: String

  """Source code."""
  value: String!
}

"""Represents the vulnerability details code flow node item"""
type VulnerabilityDetailCodeFlowNode {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Location of the file."""
  fileLocation: VulnerabilityDetailFileLocation!

  """Name of the field."""
  name: String

  """Node Type."""
  nodeType: CodeFlowNodeType!
}

"""Represents the vulnerability details code flows item"""
type VulnerabilityDetailCodeFlows {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """List of flows represented by list of CodeFlowNodeItem."""
  items: [[VulnerabilityDetailCodeFlowNode!]!]!

  """Name of the field."""
  name: String
}

"""Represents the vulnerability details commit field"""
type VulnerabilityDetailCommit {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Commit SHA value."""
  value: String!
}

"""Represents the vulnerability details diff field"""
type VulnerabilityDetailDiff {
  """Value of the field after the change."""
  after: String!

  """Value of the field before the change."""
  before: String!

  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String
}

"""
Represents the vulnerability details location within a file in the project
"""
type VulnerabilityDetailFileLocation {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """File name."""
  fileName: String!

  """End line number of the file location."""
  lineEnd: Int

  """Start line number of the file location."""
  lineStart: Int!

  """Name of the field."""
  name: String
}

"""Represents the vulnerability details integer value"""
type VulnerabilityDetailInt {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the field."""
  value: Int!
}

"""Represents the vulnerability details list value"""
type VulnerabilityDetailList {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """List of details."""
  items: [VulnerabilityDetail!]!

  """Name of the field."""
  name: String
}

"""Represents the vulnerability details Markdown field"""
type VulnerabilityDetailMarkdown {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the Markdown field."""
  value: String!
}

"""
Represents the vulnerability details location within a file in the project
"""
type VulnerabilityDetailModuleLocation {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Module name."""
  moduleName: String!

  """Name of the field."""
  name: String

  """Offset of the module location."""
  offset: Int!
}

"""Represents the vulnerability details named list"""
type VulnerabilityDetailNamedList {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """
  Named list of details. Introduced in GitLab 16.1: **Status**: Experiment.
  """
  items: [VulnerabilityDetailNamedListItem!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")

  """Name of the field."""
  name: String
}

"""Represents the vulnerability details named list item"""
type VulnerabilityDetailNamedListItem {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the field. Introduced in GitLab 16.1: **Status**: Experiment."""
  value: VulnerabilityDetail! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.")
}

"""Represents an individual row in a table"""
type VulnerabilityDetailRow {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the field."""
  row: [VulnerabilityDetail!]!
}

"""Represents the vulnerability details table value"""
type VulnerabilityDetailTable {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Table headers."""
  headers: [VulnerabilityDetail!]!

  """Name of the field."""
  name: String

  """Table rows."""
  rows: [VulnerabilityDetailRow!]!
}

"""Represents the vulnerability details text field"""
type VulnerabilityDetailText {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Name of the field."""
  name: String

  """Value of the text field."""
  value: String!
}

"""Represents the vulnerability details URL field"""
type VulnerabilityDetailUrl {
  """Description of the field."""
  description: String

  """Name of the field."""
  fieldName: String

  """Href of the URL."""
  href: String!

  """Name of the field."""
  name: String

  """Text of the URL."""
  text: String
}

"""The dismissal reason of the Vulnerability"""
enum VulnerabilityDismissalReason {
  """
  The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk.
  """
  ACCEPTABLE_RISK

  """
  An error in reporting in which a test result incorrectly indicates the
  presence of a vulnerability in a system when the vulnerability is not present.
  """
  FALSE_POSITIVE

  """
  A management, operational, or technical control (that is, safeguard or
  countermeasure) employed by an organization that provides equivalent or
  comparable protection for an information system.
  """
  MITIGATING_CONTROL

  """
  The finding is not a vulnerability because it is part of a test or is test data.
  """
  USED_IN_TESTS

  """
  The vulnerability is known, and has not been remediated or mitigated, but is
  considered to be in a part of the application that will not be updated.
  """
  NOT_APPLICABLE
}

"""Autogenerated input type of VulnerabilityDismissFalsePositiveFlag"""
input VulnerabilityDismissFalsePositiveFlagInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability to dismiss false positive flag for."""
  id: VulnerabilityID!
}

"""Autogenerated return type of VulnerabilityDismissFalsePositiveFlag."""
type VulnerabilityDismissFalsePositiveFlagPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerability after dismissing false positive flag."""
  vulnerability: Vulnerability
}

"""Autogenerated input type of VulnerabilityDismiss"""
input VulnerabilityDismissInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Comment why vulnerability was dismissed (maximum 50,000 characters)."""
  comment: String

  """ID of the vulnerability to be dismissed."""
  id: VulnerabilityID!

  """Reason why vulnerability should be dismissed."""
  dismissalReason: VulnerabilityDismissalReason
}

"""Autogenerated return type of VulnerabilityDismiss."""
type VulnerabilityDismissPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerability after state change."""
  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
}

"""Represents a Vulnerability Evidence"""
type VulnerabilityEvidence {
  """HTTP request of the Vulnerability Evidence."""
  request: VulnerabilityRequest

  """HTTP response of the Vulnerability Evidence."""
  response: VulnerabilityResponse

  """Source of the Vulnerability Evidence."""
  source: VulnerabilityEvidenceSource

  """Summary of the Vulnerability Evidence."""
  summary: String

  """Supporting messages of the Vulnerability Evidence."""
  supportingMessages: [VulnerabilityEvidenceSupportingMessage!]
}

"""Represents a vulnerability evidence"""
type VulnerabilityEvidenceSource {
  """ID of the Vulnerability Evidence Source."""
  identifier: String!

  """Name of the Vulnerability Evidence Source."""
  name: String!

  """URL of the Vulnerability Evidence Source."""
  url: String
}

"""Represents a vulnerability evidence supporting message"""
type VulnerabilityEvidenceSupportingMessage {
  """Name of the vulnerability supporting message."""
  name: String!

  """HTTP request of the vulnerability evidence supporting message."""
  request: VulnerabilityRequest

  """HTTP response of the vulnerability evidence supporting message."""
  response: VulnerabilityResponse
}

"""
Represents the Geo replication and verification state of a Vulnerability Export Part Upload.
"""
type VulnerabilityExportPartUploadRegistry {
  """
  Indicate if the checksums of the VulnerabilityExportPartUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the VulnerabilityExportPartUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this VulnerabilityExportPartUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the VulnerabilityExportPartUploadRegistry"""
  id: ID!

  """Error message during sync of the VulnerabilityExportPartUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the VulnerabilityExportPartUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the VulnerabilityExportPartUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the VulnerabilityExportPartUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the VulnerabilityExportPartUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the VulnerabilityExportPartUploadRegistry
  """
  retryCount: Int

  """Sync state of the VulnerabilityExportPartUploadRegistry"""
  state: RegistryState

  """The local checksum of the VulnerabilityExportPartUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the VulnerabilityExportPartUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the VulnerabilityExportPartUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the VulnerabilityExportPartUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the VulnerabilityExportPartUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of VulnerabilityExportPartUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the VulnerabilityExportPartUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the VulnerabilityExportPartUploadRegistry
  """
  verifiedAt: Time

  """ID of the Vulnerability Export Part Upload."""
  vulnerabilityExportPartUploadId: ID!
}

"""The connection type for VulnerabilityExportPartUploadRegistry."""
type VulnerabilityExportPartUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [VulnerabilityExportPartUploadRegistryEdge]

  """A list of nodes."""
  nodes: [VulnerabilityExportPartUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityExportPartUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityExportPartUploadRegistry
}

"""
Represents the Geo replication and verification state of a Vulnerability Export Upload.
"""
type VulnerabilityExportUploadRegistry {
  """
  Indicate if the checksums of the VulnerabilityExportUploadRegistry do not match on the primary and secondary.
  """
  checksumMismatch: Boolean

  """Timestamp when the VulnerabilityExportUploadRegistry was created"""
  createdAt: Time

  """
  Path to the data management view for this VulnerabilityExportUploadRegistry
  """
  dataManagementDetailsPath: String

  """
  Indicate if a forced redownload is to be performed. Deprecated in GitLab
  17.10: Removed from registry tables in the database in favor of the newer
  reusable framework.
  """
  forceToRedownload: Boolean @deprecated(reason: "Removed from registry tables in the database in favor of the newer reusable framework. Deprecated in GitLab 17.10.")

  """ID of the VulnerabilityExportUploadRegistry"""
  id: ID!

  """Error message during sync of the VulnerabilityExportUploadRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the VulnerabilityExportUploadRegistry
  """
  lastSyncedAt: Time

  """
  Indicate if the VulnerabilityExportUploadRegistry is missing on primary.
  """
  missingOnPrimary: Boolean

  """ID of the VulnerabilityExportUploadRegistry's model record."""
  modelRecordId: Int

  """
  Timestamp after which the VulnerabilityExportUploadRegistry is resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the VulnerabilityExportUploadRegistry
  """
  retryCount: Int

  """Sync state of the VulnerabilityExportUploadRegistry"""
  state: RegistryState

  """The local checksum of the VulnerabilityExportUploadRegistry"""
  verificationChecksum: String

  """
  The expected checksum of the VulnerabilityExportUploadRegistry in case of mismatch.
  """
  verificationChecksumMismatched: String

  """
  Error message during verification of the VulnerabilityExportUploadRegistry
  """
  verificationFailure: String

  """
  Timestamp after which the VulnerabilityExportUploadRegistry is reverified
  """
  verificationRetryAt: Time

  """
  Number of consecutive failed verification attempts of the VulnerabilityExportUploadRegistry
  """
  verificationRetryCount: Int

  """
  Timestamp when the verification of VulnerabilityExportUploadRegistry started
  """
  verificationStartedAt: Time

  """Verification state of the VulnerabilityExportUploadRegistry"""
  verificationState: VerificationStateEnum

  """
  Timestamp of the most recent successful verification of the VulnerabilityExportUploadRegistry
  """
  verifiedAt: Time

  """ID of the Vulnerability Export Upload."""
  vulnerabilityExportUploadId: ID!
}

"""The connection type for VulnerabilityExportUploadRegistry."""
type VulnerabilityExportUploadRegistryConnection {
  """
  Returns the number of items in the connection up to a limit. If the number is greater than the limit, returns `limit + 1`.
  """
  count(
    """Limit value to be applied to the count query. Default is 1000."""
    limit: Int = 1000
  ): Int!

  """A list of edges."""
  edges: [VulnerabilityExportUploadRegistryEdge]

  """A list of nodes."""
  nodes: [VulnerabilityExportUploadRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityExportUploadRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityExportUploadRegistry
}

"""Represents an external issue link of a vulnerability"""
type VulnerabilityExternalIssueLink {
  """The external issue attached to the issue link."""
  externalIssue: ExternalIssue

  """GraphQL ID of the external issue link."""
  id: VulnerabilitiesExternalIssueLinkID!

  """Type of the external issue link."""
  linkType: VulnerabilityExternalIssueLinkType!
}

"""The connection type for VulnerabilityExternalIssueLink."""
type VulnerabilityExternalIssueLinkConnection {
  """A list of edges."""
  edges: [VulnerabilityExternalIssueLinkEdge]

  """A list of nodes."""
  nodes: [VulnerabilityExternalIssueLink]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of VulnerabilityExternalIssueLinkCreate"""
input VulnerabilityExternalIssueLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability."""
  id: VulnerabilityID!

  """Type of the external issue link."""
  linkType: VulnerabilityExternalIssueLinkType!

  """External tracker type of the external issue link."""
  externalTracker: VulnerabilityExternalIssueLinkExternalTracker!
}

"""Autogenerated return type of VulnerabilityExternalIssueLinkCreate."""
type VulnerabilityExternalIssueLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created external issue link."""
  externalIssueLink: VulnerabilityExternalIssueLink
}

"""Autogenerated input type of VulnerabilityExternalIssueLinkDestroy"""
input VulnerabilityExternalIssueLinkDestroyInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the vulnerability external issue link."""
  id: VulnerabilitiesExternalIssueLinkID!
}

"""Autogenerated return type of VulnerabilityExternalIssueLinkDestroy."""
type VulnerabilityExternalIssueLinkDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type VulnerabilityExternalIssueLinkEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityExternalIssueLink
}

"""
The external tracker of the external issue link related to a vulnerability
"""
enum VulnerabilityExternalIssueLinkExternalTracker {
  """Jira external tracker"""
  JIRA
}

"""The type of the external issue link related to a vulnerability"""
enum VulnerabilityExternalIssueLinkType {
  """Created link type."""
  CREATED
}

"""Status of vulnerability flag false positive detection"""
enum VulnerabilityFalsePositiveDetectionStatus {
  """Detection is not started"""
  NOT_STARTED

  """Detection is dismissed"""
  DISMISSED

  """Detection is detected as fp"""
  DETECTED_AS_FP

  """Detection is detected as not fp"""
  DETECTED_AS_NOT_FP

  """Detection is failed"""
  FAILED
}

"""Represents the status of a secret token found in a vulnerability"""
type VulnerabilityFindingTokenStatus {
  """When the token status was created."""
  createdAt: Time!

  """ID of the finding token status."""
  id: ID!

  """When the token was last verified with the issuing service."""
  lastVerifiedAt: Time

  """Status of the token (unknown, active, inactive)."""
  status: VulnerabilityFindingTokenStatusState!

  """When the token status was last updated."""
  updatedAt: Time!
}

"""Status of a secret token found in a vulnerability"""
enum VulnerabilityFindingTokenStatusState {
  """Token status is unknown."""
  UNKNOWN

  """Token is active and can be exploited."""
  ACTIVE

  """Token is inactive and cannot be exploited."""
  INACTIVE
}

"""Represents a flag result for a vulnerability"""
type VulnerabilityFlag {
  """
  Confidence score of the detection (0.0 to 1.0). Introduced in GitLab 18.5: **Status**: Experiment.
  """
  confidenceScore: Float @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Timestamp when the detection was created."""
  createdAt: Time!

  """Reasoning for the raising of the flag on the vulnerability."""
  description: String

  """ID of the false positive detection."""
  id: ID!

  """Origin of service that raising the flag on the vulnerability."""
  origin: String

  """
  Status of the false positive detection. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  status: VulnerabilityFalsePositiveDetectionStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.5.")

  """Timestamp when the detection was last updated."""
  updatedAt: Time!
}

"""The connection type for VulnerabilityFlag."""
type VulnerabilityFlagConnection {
  """A list of edges."""
  edges: [VulnerabilityFlagEdge]

  """A list of nodes."""
  nodes: [VulnerabilityFlag]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityFlagEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityFlag
}

"""The grade of the vulnerable project"""
enum VulnerabilityGrade {
  """A grade"""
  A

  """B grade"""
  B

  """C grade"""
  C

  """D grade"""
  D

  """F grade"""
  F
}

"""
A `VulnerabilityID` is a global ID. It is encoded as a string.

An example `VulnerabilityID` is: `"gid://gitlab/Vulnerability/1"`.
"""
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
}

input VulnerabilityIdentifierInput {
  """Name of the vulnerability identifier."""
  name: String!

  """URL of the vulnerability identifier."""
  url: String!

  """External type of the vulnerability identifier."""
  externalType: String

  """External ID of the vulnerability identifier."""
  externalId: String
}

"""Represents an issue link of a vulnerability"""
type VulnerabilityIssueLink {
  """GraphQL ID of the vulnerability."""
  id: ID!

  """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!
}

"""Autogenerated input type of VulnerabilityIssueLinkCreate"""
input VulnerabilityIssueLinkCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the issue to link to."""
  issueId: IssueID!

  """
  IDs of vulnerabilities to link to the given issue.  Up to 100 can be provided.
  """
  vulnerabilityIds: [VulnerabilityID!]!
}

"""Autogenerated return type of VulnerabilityIssueLinkCreate."""
type VulnerabilityIssueLinkCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created issue links."""
  issueLinks: [VulnerabilityIssueLink!]
}

"""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 {
  """Has a related issue"""
  RELATED

  """Issue is created for the vulnerability"""
  CREATED
}

"""Represents a link related to a vulnerability"""
type VulnerabilityLink {
  """Name of the link."""
  name: String

  """URL of the link."""
  url: String!
}

"""Autogenerated input type of VulnerabilityLinkMergeRequest"""
input VulnerabilityLinkMergeRequestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability."""
  vulnerabilityId: VulnerabilityID!

  """ID of the merge request."""
  mergeRequestId: MergeRequestID!

  """
  Confidence rating representing the estimated accuracy of the fix in the AI
  generated merge request. Decimal value between 0 and 1, with 1 being the highest.
  """
  readinessScore: Float
}

"""Autogenerated return type of VulnerabilityLinkMergeRequest."""
type VulnerabilityLinkMergeRequestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated vulnerability."""
  vulnerability: Vulnerability
}

"""
Represents a vulnerability location. The fields with data will depend on the vulnerability report type
"""
union VulnerabilityLocation = VulnerabilityLocationClusterImageScanning | VulnerabilityLocationContainerScanning | VulnerabilityLocationCoverageFuzzing | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationGeneric | VulnerabilityLocationSast | VulnerabilityLocationSecretDetection

"""
Represents the location of a vulnerability found by a cluster image scan
"""
type VulnerabilityLocationClusterImageScanning {
  """Dependency containing the vulnerability."""
  dependency: VulnerableDependency

  """Name of the vulnerable container image."""
  image: String

  """Kubernetes resource which uses the vulnerable container image."""
  kubernetesResource: VulnerableKubernetesResource

  """Operating system that runs on the vulnerable container image."""
  operatingSystem: String
}

"""
Represents the location of a vulnerability found by a container security scan
"""
type VulnerabilityLocationContainerScanning {
  """URL of scanned image."""
  containerRepositoryUrl: String

  """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 {
  """Blob path to the vulnerable file."""
  blobPath: String

  """Relative address in memory were the crash occurred."""
  crashAddress: String

  """Type of the crash."""
  crashType: String

  """Number of the last relevant line in the vulnerable file."""
  endLine: String

  """Path to the vulnerable file."""
  file: String

  """Stack trace recorded during fuzzing resulting the crash."""
  stacktraceSnippet: 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 {
  """Blob path to the vulnerable file."""
  blobPath: String

  """Dependency containing the vulnerability."""
  dependency: VulnerableDependency

  """Path to the vulnerable file."""
  file: String
}

"""Represents the location of a vulnerability found by a generic scanner."""
type VulnerabilityLocationGeneric {
  """Free-form description of where the vulnerability is located."""
  description: String
}

"""Represents the location of a vulnerability found by a SAST scan"""
type VulnerabilityLocationSast {
  """Blob path to the vulnerable file."""
  blobPath: String

  """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 {
  """Blob path to the vulnerable file."""
  blobPath: String

  """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 vulnerability management policy"""
type VulnerabilityManagementPolicy implements OrchestrationPolicy {
  """
  Indicates whether the policy comes from a centralized security policy group.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  csp: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """Description of the policy."""
  description: String!

  """URL of policy edit page."""
  editPath: String!

  """Indicates whether the policy is enabled."""
  enabled: Boolean!

  """
  ID of the policy. Returns null if the policy has not been synced to the
  database yet. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  id: SecurityPolicyID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Name of the policy."""
  name: String!

  """
  ID of the policy configuration the policy belongs to. Introduced in GitLab 18.11: **Status**: Experiment.
  """
  policyConfigurationId: SecurityOrchestrationPolicyConfigurationID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.11.")

  """Scope of the policy."""
  policyScope: PolicyScope

  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

"""
Represents policy fields related to the vulnerability management policy.
"""
type VulnerabilityManagementPolicyAttributesType {
  """Source of the policy. Its fields depend on the source type."""
  source: SecurityPolicySource!
}

"""The connection type for VulnerabilityManagementPolicy."""
type VulnerabilityManagementPolicyConnection {
  """A list of edges."""
  edges: [VulnerabilityManagementPolicyEdge]

  """A list of nodes."""
  nodes: [VulnerabilityManagementPolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityManagementPolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityManagementPolicy
}

"""Counts for each vulnerability severity in the group and its subgroups."""
type VulnerabilityNamespaceStatisticType implements VulnerabilityStatisticInterface {
  """Number of vulnerabilities of CRITICAL severity."""
  critical: Int!

  """Number of vulnerabilities of HIGH severity."""
  high: Int!

  """Number of vulnerabilities of INFO severity."""
  info: Int!

  """Number of vulnerabilities of LOW severity."""
  low: Int!

  """Number of vulnerabilities of MEDIUM severity."""
  medium: Int!

  """Namespace ID."""
  namespaceId: Int!

  """Total of all vulnerabilities."""
  total: Int!

  """Number of vulnerabilities of UNKNOWN severity."""
  unknown: Int!

  """Date that data was last updated."""
  updatedAt: Time
}

"""`OwaspTop10` vulnerability categories for OWASP 2021"""
enum VulnerabilityOwasp2021Top10 {
  """
  A1:2021-Broken Access Control, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A1_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A01:2021-Broken Access Control, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A01_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A2:2021-Cryptographic Failures, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A2_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A02:2021-Cryptographic Failures, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A02_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A3:2021-Injection, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A3_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A03:2021-Injection, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A03_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A4:2021-Insecure Design, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A4_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A04:2021-Insecure Design, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A04_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A5:2021-Security Misconfiguration, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A5_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A05:2021-Security Misconfiguration, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A05_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A6:2021-Vulnerable and Outdated Components, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A6_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A06:2021-Vulnerable and Outdated Components, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A06_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A7:2021-Identification and Authentication Failures, OWASP top 10 category.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A7_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A07:2021-Identification and Authentication Failures, OWASP top 10 category.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A07_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A8:2021-Software and Data Integrity Failures, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A8_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A08:2021-Software and Data Integrity Failures, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A08_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A9:2021-Security Logging and Monitoring Failures, OWASP top 10 category.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A9_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A09:2021-Security Logging and Monitoring Failures, OWASP top 10 category.
  Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A09_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  A10:2021-Server-Side Request Forgery, OWASP top 10 category. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  A10_2021 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """No OWASP top 10 category."""
  NONE
}

"""`OwaspTop10` vulnerability categories for OWASP 2025"""
enum VulnerabilityOwasp2025Top10 {
  """
  A01:2025-Broken Access Control, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A01_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A02:2025-Security Misconfiguration, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A02_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A03:2025-Software Supply Chain Failures, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A03_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A04:2025-Cryptographic Failures, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A04_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A05:2025-Injection, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A05_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A06:2025-Insecure Design, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A06_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A07:2025-Authentication Failures, OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A07_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A08:2025-Software or Data Integrity Failures, OWASP top 10 2025 category.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A08_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A09:2025-Security Logging and Alerting Failures, OWASP top 10 2025 category.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A09_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  A10:2025-Mishandling of Exceptional Conditions, OWASP top 10 2025 category.
  Introduced in GitLab 19.0: **Status**: Experiment.
  """
  A10_2025 @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """
  No OWASP top 10 2025 category. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  NONE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")
}

"""OwaspTop10 category of the vulnerability"""
enum VulnerabilityOwaspTop10 {
  """A1:2017-Injection, OWASP top 10 2017 category."""
  A1_2017

  """A2:2017-Broken Authentication, OWASP top 10 2017 category."""
  A2_2017

  """A3:2017-Sensitive Data Exposure, OWASP top 10 2017 category."""
  A3_2017

  """A4:2017-XML External Entities (XXE), OWASP top 10 2017 category."""
  A4_2017

  """A5:2017-Broken Access Control, OWASP top 10 2017 category."""
  A5_2017

  """A6:2017-Security Misconfiguration, OWASP top 10 2017 category."""
  A6_2017

  """A7:2017-Cross-Site Scripting (XSS), OWASP top 10 2017 category."""
  A7_2017

  """A8:2017-Insecure Deserialization, OWASP top 10 2017 category."""
  A8_2017

  """
  A9:2017-Using Components with Known Vulnerabilities, OWASP top 10 2017 category.
  """
  A9_2017

  """
  A10:2017-Insufficient Logging & Monitoring, OWASP top 10 2017 category.
  """
  A10_2017

  """No OWASP top 10 2017 category."""
  NONE
}

"""Check permissions for the current user on a vulnerability"""
type VulnerabilityPermissions {
  """If `true`, the user can perform `admin_vulnerability` on this resource"""
  adminVulnerability: Boolean!

  """
  If `true`, the user can perform `admin_vulnerability_external_issue_link` on this resource
  """
  adminVulnerabilityExternalIssueLink: Boolean!

  """
  If `true`, the user can perform `admin_vulnerability_issue_link` on this resource
  """
  adminVulnerabilityIssueLink: Boolean!

  """
  If `true`, the user can perform `create_vulnerability_export` on this resource
  """
  createVulnerabilityExport: Boolean!

  """
  If `true`, the user can perform `create_vulnerability_feedback` on this resource
  """
  createVulnerabilityFeedback: Boolean!

  """
  If `true`, the user can perform `destroy_vulnerability_feedback` on this resource
  """
  destroyVulnerabilityFeedback: Boolean!

  """If `true`, the user can perform `read_vulnerability` on this resource"""
  readVulnerability: Boolean!

  """
  If `true`, the user can perform `read_vulnerability_feedback` on this resource
  """
  readVulnerabilityFeedback: Boolean!

  """
  If `true`, the user can perform `update_vulnerability_feedback` on this resource
  """
  updateVulnerabilityFeedback: Boolean!
}

"""Represents a vulnerability remediation type."""
type VulnerabilityRemediationType {
  """Diff of the remediation."""
  diff: String

  """Summary of the remediation."""
  summary: String
}

"""The type of the security scan that found the vulnerability"""
enum VulnerabilityReportType {
  """SAST report"""
  SAST

  """Dependency scanning report"""
  DEPENDENCY_SCANNING

  """Container scanning report"""
  CONTAINER_SCANNING

  """DAST report"""
  DAST

  """Secret detection report"""
  SECRET_DETECTION

  """Coverage fuzzing report"""
  COVERAGE_FUZZING

  """API fuzzing report"""
  API_FUZZING

  """Cluster image scanning report"""
  CLUSTER_IMAGE_SCANNING

  """Container scanning for registry report"""
  CONTAINER_SCANNING_FOR_REGISTRY

  """Sarif report"""
  SARIF

  """Generic report"""
  GENERIC
}

"""Represents a count of vulnerabilities for a specific report type"""
type VulnerabilityReportTypeCount {
  """Number of vulnerabilities."""
  count: Int!

  """Report type."""
  reportType: VulnerabilityReportType!
}

"""Represents vulnerability information"""
type VulnerabilityRepresentationInformation {
  """SHA of the commit where the vulnerability was resolved."""
  resolvedInCommitSha: String
}

"""Represents a Vulnerability Request"""
type VulnerabilityRequest {
  """Body of the Vulnerability Request."""
  body: String

  """HTTP headers of the Vulnerability Request."""
  headers: [VulnerabilityRequestResponseHeader!]!

  """Method of the Vulnerability Request."""
  method: String

  """URL of the Vulnerability Request."""
  url: String
}

"""Represents a Vulnerability Request/Response Header"""
type VulnerabilityRequestResponseHeader {
  """Name of the Vulnerability Request/Response Header."""
  name: String

  """Value of the Vulnerability Request/Response Header."""
  value: String
}

"""Autogenerated input type of VulnerabilityResolve"""
input VulnerabilityResolveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Comment why vulnerability was resolved (maximum 50,000 characters)."""
  comment: 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 the mutation."""
  errors: [String!]!

  """Vulnerability after state change."""
  vulnerability: Vulnerability
}

"""Represents a Vulnerability Response"""
type VulnerabilityResponse {
  """Body of the Vulnerability Response."""
  body: String

  """HTTP headers of the Vulnerability Response."""
  headers: [VulnerabilityRequestResponseHeader!]!

  """Reason Phrase of the Vulnerability Response."""
  reasonPhrase: String

  """Status Code of the Vulnerability Response."""
  statusCode: Int
}

"""Autogenerated input type of VulnerabilityRevertToDetected"""
input VulnerabilityRevertToDetectedInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Comment why vulnerability was reverted to detected (maximum 50,000 characters).
  """
  comment: String

  """ID of the vulnerability to be reverted to detected."""
  id: VulnerabilityID!
}

"""Autogenerated return type of VulnerabilityRevertToDetected."""
type VulnerabilityRevertToDetectedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Vulnerability after state change."""
  vulnerability: Vulnerability
}

"""Represents a vulnerability scanner"""
type VulnerabilityScanner {
  """External ID of the vulnerability scanner."""
  externalId: String

  """ID of the scanner."""
  id: ID

  """Name of the vulnerability scanner."""
  name: String

  """Type of the vulnerability report."""
  reportType: VulnerabilityReportType

  """Humanized type of the vulnerability report."""
  reportTypeHumanized: String

  """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
}

input VulnerabilityScannerInput {
  """Unique ID that identifies the scanner."""
  id: String!

  """
  Human readable value that identifies the analyzer, not required to be unique.
  """
  name: String!

  """Link to more information about the analyzer."""
  url: String!

  """Information about vendor/maintainer of the scanner."""
  vendor: VulnerabilityScannerVendorInput

  """Version of the scanner."""
  version: String!
}

input VulnerabilityScannerVendorInput {
  """Name of the vendor/maintainer."""
  name: String!
}

"""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 {
  """Info severity"""
  INFO

  """Unknown severity"""
  UNKNOWN

  """Low severity"""
  LOW

  """Medium severity"""
  MEDIUM

  """High severity"""
  HIGH

  """Critical severity"""
  CRITICAL
}

"""Represents a count of vulnerabilities for a specific severity level"""
type VulnerabilitySeverityCount {
  """Number of vulnerabilities."""
  count: Int!

  """Average age in days of vulnerabilities since detection."""
  meanAge: Float

  """Median age in days of vulnerabilities since detection."""
  medianAge: Float

  """Severity level."""
  severity: VulnerabilitySeverity!
}

"""Vulnerability sort values"""
enum VulnerabilitySort {
  """Severity in descending order."""
  severity_desc

  """Severity in ascending order."""
  severity_asc

  """Detection timestamp in descending order."""
  detected_desc

  """Detection timestamp in ascending order."""
  detected_asc
}

"""The state of the vulnerability"""
enum VulnerabilityState {
  """
  For details, see [vulnerability status values](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values).
  """
  CONFIRMED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values).
  """
  DETECTED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values).
  """
  DISMISSED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values).
  """
  RESOLVED
}

"""Represents a state transition of a vulnerability"""
type VulnerabilityStateTransitionType {
  """User who changed the state of the vulnerability."""
  author: UserCore

  """Comment for the state change."""
  comment: String

  """Time of the state change of the vulnerability."""
  createdAt: Time!

  """Reason for the dismissal."""
  dismissalReason: VulnerabilityDismissalReason

  """State of the vulnerability before transition."""
  fromState: VulnerabilityState!

  """ID of the state transition."""
  id: VulnerabilitiesStateTransitionID!

  """State of the vulnerability after transition."""
  toState: VulnerabilityState!
}

"""The connection type for VulnerabilityStateTransitionType."""
type VulnerabilityStateTransitionTypeConnection {
  """A list of edges."""
  edges: [VulnerabilityStateTransitionTypeEdge]

  """A list of nodes."""
  nodes: [VulnerabilityStateTransitionType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityStateTransitionTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityStateTransitionType
}

interface VulnerabilityStatisticInterface {
  """Number of vulnerabilities of CRITICAL severity."""
  critical: Int!

  """Number of vulnerabilities of HIGH severity."""
  high: Int!

  """Number of vulnerabilities of INFO severity."""
  info: Int!

  """Number of vulnerabilities of LOW severity."""
  low: Int!

  """Number of vulnerabilities of MEDIUM severity."""
  medium: Int!

  """Total of all vulnerabilities."""
  total: Int!

  """Number of vulnerabilities of UNKNOWN severity."""
  unknown: Int!

  """Date that data was last updated."""
  updatedAt: Time
}

"""Counts for each vulnerability severity in the project."""
type VulnerabilityStatisticType implements VulnerabilityStatisticInterface {
  """Number of vulnerabilities of CRITICAL severity."""
  critical: Int!

  """Number of vulnerabilities of HIGH severity."""
  high: Int!

  """Number of vulnerabilities of INFO severity."""
  info: Int!

  """Number of vulnerabilities of LOW severity."""
  low: Int!

  """Number of vulnerabilities of MEDIUM severity."""
  medium: Int!

  """Project ID."""
  projectId: Int!

  """Total of all vulnerabilities."""
  total: Int!

  """Number of vulnerabilities of UNKNOWN severity."""
  unknown: Int!

  """Date that data was last updated."""
  updatedAt: Time
}

"""Represents a triggered workflow for a vulnerability"""
type VulnerabilityTriggeredWorkflow {
  """Associated workflow details."""
  workflow: DuoWorkflow

  """Name of the workflow."""
  workflowName: VulnerabilityWorkflowName!
}

"""The connection type for VulnerabilityTriggeredWorkflow."""
type VulnerabilityTriggeredWorkflowConnection {
  """A list of edges."""
  edges: [VulnerabilityTriggeredWorkflowEdge]

  """A list of nodes."""
  nodes: [VulnerabilityTriggeredWorkflow]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type VulnerabilityTriggeredWorkflowEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: VulnerabilityTriggeredWorkflow
}

"""Autogenerated input type of VulnerabilityUnlinkMergeRequest"""
input VulnerabilityUnlinkMergeRequestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability."""
  vulnerabilityId: VulnerabilityID!

  """ID of the merge request."""
  mergeRequestId: MergeRequestID!
}

"""Autogenerated return type of VulnerabilityUnlinkMergeRequest."""
type VulnerabilityUnlinkMergeRequestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated vulnerability."""
  vulnerability: Vulnerability
}

"""Workflow name for vulnerability triggered workflows"""
enum VulnerabilityWorkflowName {
  """Workflow name is sast fp detection"""
  SAST_FP_DETECTION

  """Workflow name is resolve sast vulnerability"""
  RESOLVE_SAST_VULNERABILITY

  """Workflow name is secrets fp detection"""
  SECRETS_FP_DETECTION
}

"""
Represents a vulnerable dependency. Used in vulnerability location data
"""
type VulnerableDependency {
  """Package associated with the vulnerable dependency."""
  package: VulnerablePackage

  """Version of the vulnerable dependency."""
  version: String
}

"""
Represents a vulnerable Kubernetes resource. Used in vulnerability location data
"""
type VulnerableKubernetesResource {
  """Kubernetes agent that performed the scan."""
  agent: ClusterAgent

  """ID of the cluster integration used to perform the scan."""
  clusterId: ClustersClusterID

  """Name of the container that had its image scanned."""
  containerName: String!

  """Kind of the Kubernetes resource."""
  kind: String!

  """Name of the Kubernetes resource."""
  name: String!

  """Kubernetes namespace where the resource resides."""
  namespace: String!
}

"""Represents a vulnerable package. Used in vulnerability dependency data"""
type VulnerablePackage {
  """Name of the vulnerable package."""
  name: String

  """Path of the vulnerable package."""
  path: String
}

"""Represents vulnerability letter grades with associated projects"""
type VulnerableProjectsByGrade {
  """Number of projects within the grade."""
  count: Int!

  """Grade based on the highest severity vulnerability present."""
  grade: VulnerabilityGrade!

  """Projects within the 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!
}

"""Webhook auto-disabling alert status"""
enum WebhookAlertStatus {
  """Webhook is executable."""
  EXECUTABLE

  """
  Webhook has been temporarily disabled and will be automatically re-enabled.
  """
  TEMPORARILY_DISABLED

  """
  Webhook has been permanently disabled and will not be automatically re-enabled.
  """
  DISABLED
}

"""Strategy for filtering push events by branch name"""
enum WebhookBranchFilterStrategy {
  """Receive push events from branches that match a wildcard pattern."""
  WILDCARD

  """
  Receive push events from branches that match a regular expression (regex).
  """
  REGEX

  """Receive push events from all branches."""
  ALL_BRANCHES
}

type WebhookCustomHeader {
  """Custom header name."""
  key: String!
}

type WebhookEvent {
  """Webhook request time."""
  createdAt: Time!

  """Webhook execution duration in seconds."""
  executionDuration: Float

  """Global ID of the webhook event."""
  id: WebHookLogID!

  """Internal error message that occurred while executing the webhook."""
  internalErrorMessage: String

  """Whether request data was too large to be executed."""
  oversize: Boolean!

  """Data sent in the webhook request."""
  requestData: String

  """HTTP Headers used in the webhook request."""
  requestHeaders: [WebhookEventHeaderType!]

  """Body of the webhook response."""
  responseBody: String

  """HTTP Headers from the webhook response."""
  responseHeaders: [WebhookEventHeaderType!]

  """HTTP status of the webhook response."""
  responseStatus: String

  """Trigger that caused webhook execution."""
  trigger: String

  """URL used in webhook request."""
  url: String
}

"""The connection type for WebhookEvent."""
type WebhookEventConnection {
  """A list of edges."""
  edges: [WebhookEventEdge]

  """A list of nodes."""
  nodes: [WebhookEvent]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WebhookEventEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WebhookEvent
}

type WebhookEventHeaderType {
  """HTTP response header name."""
  name: String!

  """HTTP response header value."""
  value: String!
}

"""
A `WebHookLogID` is a global ID. It is encoded as a string.

An example `WebHookLogID` is: `"gid://gitlab/WebHookLog/1"`.
"""
scalar WebHookLogID

type WebhookUrlVariable {
  """
  URL variable mask that will appear in a masked webhook url in place of its sensitive portion.
  """
  key: String!
}

"""Weight ID wildcard values"""
enum WeightWildcardId {
  """No weight is assigned."""
  NONE

  """Weight is assigned."""
  ANY
}

"""A wiki page"""
type WikiPage implements NoteableInterface & Todoable {
  """List of emoji reactions associated with the wiki page."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """All commenters on the noteable."""
  commenters(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): UserCoreConnection!

  """All discussions on the 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!

  """Global ID of the wiki page metadata record."""
  id: WikiPageMetaID!

  """Name or title of the object."""
  name: String

  """All notes on this noteable."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """
  Whether the current user is subscribed to notifications on the wiki page.
  """
  subscribed: Boolean!

  """Wiki page title."""
  title: String!

  """Permissions for the current user on the resource"""
  userPermissions: WikiPagePermissions!

  """URL of the object."""
  webUrl: String
}

"""
A `WikiPageMetaID` is a global ID. It is encoded as a string.

An example `WikiPageMetaID` is: `"gid://gitlab/WikiPage::Meta/1"`.
"""
scalar WikiPageMetaID

type WikiPagePermissions {
  """If `true`, the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """
  If `true`, the user can perform `mark_note_as_internal` on this resource
  """
  markNoteAsInternal: Boolean!

  """If `true`, the user can perform `read_wiki_page` on this resource"""
  readWikiPage: Boolean!
}

"""Autogenerated input type of WikiPageSubscribe"""
input WikiPageSubscribeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the wiki page meta record."""
  id: WikiPageMetaID!

  """Desired state of the subscription."""
  subscribed: Boolean!
}

"""Autogenerated return type of WikiPageSubscribe."""
type WikiPageSubscribePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Wiki page after mutation."""
  wikiPage: WikiPage
}

"""The environment of a workflow."""
enum WorkflowEnvironment {
  """Ide environment Deprecated in GitLab 18.6: This was renamed."""
  IDE @deprecated(reason: "This was renamed. Please use `CHAT`. Deprecated in GitLab 18.6.")

  """Web environment Deprecated in GitLab 18.6: This was renamed."""
  WEB @deprecated(reason: "This was renamed. Please use `AMBIENT`. Deprecated in GitLab 18.6.")

  """Chat Partial environment"""
  CHAT_PARTIAL

  """Chat environment"""
  CHAT

  """Ambient environment"""
  AMBIENT
}

type WorkItem implements Todoable {
  """
  Whether the work item belongs to an archived project or group. Introduced in GitLab 16.5: **Status**: Experiment.
  """
  archived: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.")

  """
  User that created the work item. Introduced in GitLab 15.9: **Status**: Experiment.
  """
  author: UserCore @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.")

  """Timestamp of when the work item was closed."""
  closedAt: Time

  """Paths of the comment templates."""
  commentTemplatesPaths: [CommentTemplatePathType!]!

  """Indicates the work item is confidential."""
  confidential: Boolean!

  """User specific email address for the work item."""
  createNoteEmail: String

  """Timestamp of when the work item was created."""
  createdAt: Time!

  """Description of the work item."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """URL of the work item that the work item is marked as a duplicate of."""
  duplicatedToWorkItemUrl: String

  """
  Email address of non-GitLab user reporting the issue. For guests, the email
  address is obfuscated. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  externalAuthor: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Features of the work item. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  features: WorkItemFeatures! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """Indicates the work item is hidden because the author has been banned."""
  hidden: Boolean

  """Global ID of the work item."""
  id: WorkItemID!

  """Internal ID of the work item."""
  iid: String!

  """Indicates whether the work item was imported."""
  imported: Boolean!

  """
  Lock version of the work item. Incremented each time the work item is updated.
  """
  lockVersion: Int!

  """URL of the work item that the work item was moved to."""
  movedToWorkItemUrl: String

  """Name or title of the object."""
  name: String

  """
  Namespace the work item belongs to. Introduced in GitLab 15.10: **Status**: Experiment.
  """
  namespace: Namespace @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.")

  """
  Project the work item belongs to. Introduced in GitLab 15.3: **Status**: Experiment.
  """
  project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.")

  """URL of the epic that the work item has been promoted to."""
  promotedToEpicUrl: String

  """
  Internal reference of the work item. Returned in shortened format by default.
  """
  reference(
    """
    Boolean option specifying whether the reference should be returned in full.
    """
    full: Boolean = false
  ): String!

  """
  Whether to show the promotional message for the work item. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  showPlanUpgradePromotion: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """State of the work item."""
  state: WorkItemState!

  """Title of the work item."""
  title: String!

  """HTML rendering of `title`"""
  titleHtml: String

  """Timestamp of when the work item was last updated."""
  updatedAt: Time!

  """Number of user discussions in the work item."""
  userDiscussionsCount: Int!

  """Permissions for the current user on the resource"""
  userPermissions: WorkItemPermissions!

  """Web path of the object."""
  webPath: String

  """URL of the object."""
  webUrl: String

  """Collection of widgets that belong to the work item."""
  widgets(
    """Except widgets of the given types."""
    exceptTypes: [WorkItemWidgetType!] = null

    """Only widgets of the given types."""
    onlyTypes: [WorkItemWidgetType!] = null
  ): [WorkItemWidget!]

  """Type assigned to the work item."""
  workItemType: WorkItemType!
}

"""Autogenerated input type of WorkItemAddClosingMergeRequest"""
input WorkItemAddClosingMergeRequestInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Full path of the context namespace (project or group). Only project full paths
  are used to find a merge request using a short reference syntax like `!1`.
  Ignored for full references and URLs. Defaults to the namespace of the work
  item if not provided.
  """
  contextNamespacePath: ID

  """Global ID of the work item."""
  id: WorkItemID!

  """
  Merge request reference (short, full or URL). Example: `!1`,
  `project_full_path!1` or
  `https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1`.
  """
  mergeRequestReference: String!
}

"""Autogenerated return type of WorkItemAddClosingMergeRequest."""
type WorkItemAddClosingMergeRequestPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Closing merge request added to the work item."""
  closingMergeRequest: WorkItemClosingMergeRequest

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item with new closing merge requests."""
  workItem: WorkItem
}

"""Autogenerated input type of WorkItemAddLinkedItems"""
input WorkItemAddLinkedItemsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Type of link. Defaults to `RELATED`."""
  linkType: WorkItemRelatedLinkType

  """
  Global IDs of the items to link. Maximum number of IDs you can provide: 10.
  """
  workItemsIds: [WorkItemID!]!
}

"""Autogenerated return type of WorkItemAddLinkedItems."""
type WorkItemAddLinkedItemsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Linked items update result message."""
  message: String

  """Updated work item."""
  workItem: WorkItem
}

"""Action to apply to work item type availability"""
enum WorkItemAvailabilityAction {
  """Enable the work item type in the namespace."""
  ENABLE

  """Disable the work item type in the namespace."""
  DISABLE
}

"""Scope to which a work item type availability change applies"""
enum WorkItemAvailabilityScope {
  """Apply only to the namespace."""
  THIS

  """Apply to the namespace and propagate to all existing child namespaces."""
  ALL_CHILDREN
}

"""Autogenerated input type of WorkItemAvailabilityToggle"""
input WorkItemAvailabilityToggleInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the group or project."""
  fullPath: ID!

  """Global ID of the work item type."""
  workItemTypeId: WorkItemsTypeID!

  """Whether to enable or disable the work item type."""
  action: WorkItemAvailabilityAction!

  """
  Whether to apply to the namespace or propagate to all existing children.
  """
  scope: WorkItemAvailabilityScope!
}

"""Autogenerated return type of WorkItemAvailabilityToggle."""
type WorkItemAvailabilityTogglePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item type after the availability change."""
  workItemType: WorkItemType
}

"""Values for work item award emoji update enum"""
enum WorkItemAwardEmojiUpdateAction {
  """Adds the emoji."""
  ADD

  """Removes the emoji."""
  REMOVE

  """Toggles the status of the emoji."""
  TOGGLE
}

"""Autogenerated input type of WorkItemBulkMove"""
input WorkItemBulkMoveInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Global ID array of the work items that will be moved. IDs that the user can't
  move will be ignored. A max of 100 can be provided.
  """
  ids: [WorkItemID!]!

  """
  Full path of the source namespace. For example, `gitlab-org/gitlab-foss`.
  """
  sourceFullPath: String!

  """
  Full path of the target namespace. For example, `gitlab-org/gitlab-foss`. User paths are not supported.
  """
  targetFullPath: String!
}

"""Autogenerated return type of WorkItemBulkMove."""
type WorkItemBulkMovePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Number of work items that were successfully moved."""
  movedWorkItemCount: Int
}

"""Autogenerated input type of WorkItemBulkUpdate"""
input WorkItemBulkUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  Input for assignees widget. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  assigneesWidget: WorkItemWidgetAssigneesInput

  """
  Sets the work item confidentiality. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  confidential: Boolean

  """
  Global ID array of the work items that will be updated. IDs that the user
  can't update will be ignored. A max of 100 can be provided.
  """
  ids: [WorkItemID!]!

  """
  Input for milestone widget. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  milestoneWidget: WorkItemWidgetMilestoneInput

  """
  Close or reopen multiple work items at once. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  stateEvent: WorkItemStateEvent

  """
  Subscribe or unsubscribe from the work items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  subscriptionEvent: WorkItemSubscriptionEvent

  """
  Full path of the project or group (Premium and Ultimate only) containing the
  work items that will be updated. User paths are not supported.
  """
  fullPath: ID!

  """Input for labels widget."""
  labelsWidget: WorkItemWidgetLabelsUpdateInput

  """
  Input for hierarchy widget. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  hierarchyWidget: WorkItemWidgetHierarchyCreateInput

  """
  Input for health status widget. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  healthStatusWidget: WorkItemWidgetHealthStatusInput

  """
  Input for iteration widget. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationWidget: WorkItemWidgetIterationInput

  """
  Input for status widget. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  statusWidget: WorkItemWidgetStatusInput
}

"""Autogenerated return type of WorkItemBulkUpdate."""
type WorkItemBulkUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Number of work items that were successfully updated."""
  updatedWorkItemCount: Int
}

type WorkItemClosingMergeRequest {
  """
  Whether this merge request link was created by referencing the work item on
  the merge request description, using the closing pattern.
  """
  fromMrDescription: Boolean!

  """Global ID of the closing merge request association."""
  id: MergeRequestsClosingIssuesID!

  """Related merge request."""
  mergeRequest: MergeRequest
}

"""The connection type for WorkItemClosingMergeRequest."""
type WorkItemClosingMergeRequestConnection {
  """Number of merge requests that close the work item on merge."""
  count: Int

  """A list of edges."""
  edges: [WorkItemClosingMergeRequestEdge]

  """A list of nodes."""
  nodes: [WorkItemClosingMergeRequest]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkItemClosingMergeRequestEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemClosingMergeRequest
}

"""The connection type for WorkItem."""
type WorkItemConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [WorkItemEdge]

  """A list of nodes."""
  nodes: [WorkItem]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of WorkItemConvert"""
input WorkItemConvertInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Global ID of the new work item type."""
  workItemTypeId: WorkItemsTypeID!
}

"""Autogenerated return type of WorkItemConvert."""
type WorkItemConvertPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated work item."""
  workItem: WorkItem
}

input WorkItemConvertTaskInput {
  """Last line in the Markdown source that defines the list item task."""
  lineNumberEnd: Int!

  """First line in the Markdown source that defines the list item task."""
  lineNumberStart: Int!

  """
  Current lock version of the work item containing the task in the description.
  """
  lockVersion: Int!

  """
  Full string of the task to be replaced. New title for the created work item.
  """
  title: String!

  """Global ID of the work item type used to create the new work item."""
  workItemTypeId: WorkItemsTypeID!
}

"""Autogenerated input type of WorkItemCreateFromTask"""
input WorkItemCreateFromTaskInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Arguments necessary to convert a task into a work item."""
  workItemData: WorkItemConvertTaskInput!
}

"""Autogenerated return type of WorkItemCreateFromTask."""
type WorkItemCreateFromTaskPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """New work item created from task."""
  newWorkItem: WorkItem

  """Updated work item."""
  workItem: WorkItem
}

"""Autogenerated input type of WorkItemCreate"""
input WorkItemCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Input for assignees widget."""
  assigneesWidget: WorkItemWidgetAssigneesInput

  """Sets the work item confidentiality."""
  confidential: Boolean

  """Input for description widget."""
  descriptionWidget: WorkItemWidgetDescriptionInput

  """Input for milestone widget."""
  milestoneWidget: WorkItemWidgetMilestoneInput

  """
  Source which triggered the creation of the work item. Used only for tracking purposes.
  """
  createSource: String

  """
  Timestamp when the work item was created. Available only for admins and project owners.
  """
  createdAt: Time

  """Input for CRM contacts widget."""
  crmContactsWidget: WorkItemWidgetCrmContactsCreateInput

  """
  Description of the work item. Deprecated in GitLab 16.9: use description widget instead.
  """
  description: String

  """
  Information required to resolve discussions in a noteable, when the work item is created.
  """
  discussionsToResolve: WorkItemResolveDiscussionsInput

  """Input for hierarchy widget."""
  hierarchyWidget: WorkItemWidgetHierarchyCreateInput

  """Input for labels widget."""
  labelsWidget: WorkItemWidgetLabelsCreateInput

  """Input for linked items widget."""
  linkedItemsWidget: WorkItemWidgetLinkedItemsCreateInput

  """
  Full path of the namespace(project or group) the work item is created in.
  """
  namespacePath: ID

  """
  Full path of the project the work item is associated with. Deprecated in
  GitLab 15.10: Please use namespacePath instead. That will cover for both
  projects and groups.
  """
  projectPath: ID

  """Input for start and due date widget."""
  startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput

  """Title of the work item."""
  title: String!

  """Global ID of a work item type."""
  workItemTypeId: WorkItemsTypeID!

  """Input for weight widget."""
  weightWidget: WorkItemWidgetWeightInput

  """Input for health status widget."""
  healthStatusWidget: WorkItemWidgetHealthStatusInput

  """Iteration widget of the work item."""
  iterationWidget: WorkItemWidgetIterationInput

  """Input for color widget."""
  colorWidget: WorkItemWidgetColorInput

  """
  Input for custom fields widget. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customFieldsWidget: [WorkItemWidgetCustomFieldValueInputType!]

  """
  Input for linking an existing vulnerability to created work item. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  vulnerabilityId: VulnerabilityID

  """
  Input for status widget. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  statusWidget: WorkItemWidgetStatusInput

  """
  Input for agent plan widget. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  agentPlanWidget: WorkItemWidgetAgentPlanInput
}

"""Autogenerated return type of WorkItemCreate."""
type WorkItemCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created work item."""
  workItem: WorkItem
}

interface WorkItemCustomFieldValue {
  """Custom field associated with the custom field value."""
  customField: CustomField!
}

type WorkItemDateFieldValue implements WorkItemCustomFieldValue {
  """Custom field associated with the custom field value."""
  customField: CustomField!

  """Date value of the custom field."""
  value: Date
}

"""Autogenerated input type of WorkItemDelete"""
input WorkItemDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!
}

"""Autogenerated return type of WorkItemDelete."""
type WorkItemDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Namespace the deleted work item belonged to."""
  namespace: Namespace

  """
  Project the deleted work item belonged to. Deprecated in GitLab 16.9: Use `namespace`.
  """
  project: Project @deprecated(reason: "Use `namespace`. Deprecated in GitLab 16.9.")
}

type WorkItemDescriptionTemplate {
  """Category of description template."""
  category: String

  """Content of Description Template."""
  content: String

  """Name of Description Template."""
  name: String

  """ID of the description template project."""
  projectId: Int
}

"""The connection type for WorkItemDescriptionTemplate."""
type WorkItemDescriptionTemplateConnection {
  """A list of edges."""
  edges: [WorkItemDescriptionTemplateEdge]

  """A list of nodes."""
  nodes: [WorkItemDescriptionTemplate]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

input WorkItemDescriptionTemplateContentInput {
  """Full path of the group or project using the template."""
  fromNamespace: String

  """Name of the description template."""
  name: String!

  """ID of the project the template belongs to."""
  projectId: Int!
}

"""An edge in a connection."""
type WorkItemDescriptionTemplateEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemDescriptionTemplate
}

"""Values for sorting work item discussions"""
enum WorkItemDiscussionsSort {
  """Created at in ascending order."""
  CREATED_ASC

  """Created at in descending order."""
  CREATED_DESC
}

"""An edge in a connection."""
type WorkItemEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItem
}

"""Autogenerated input type of WorkItemExport"""
input WorkItemExportInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Search query for title or description."""
  search: String

  """
  Specify the fields to perform the search in.
  Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
  
  """
  in: [IssuableSearchableField!]

  """Filter by global IDs of work items (maximum is 100 IDs)."""
  ids: [WorkItemID!]

  """Filter work items by author username."""
  authorUsername: String

  """
  Filter for confidential work items. If `false`, excludes confidential work
  items. If `true`, returns only confidential work items.
  """
  confidential: Boolean

  """
  Usernames of users assigned to the work item (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
  assigneeWildcardId: AssigneeWildcardId

  """Labels applied to the work item (maximum is 100 labels)."""
  labelName: [String!]

  """Milestone applied to the work item (maximum is 100 milestones)."""
  milestoneTitle: [String!]

  """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
  milestoneWildcardId: MilestoneWildcardId

  """
  Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
  """
  myReactionEmoji: String

  """
  List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
  """
  iids: [String!]

  """Current state of the work item."""
  state: IssuableState

  """Filter work items by the given work item types."""
  types: [IssueType!]

  """Filter work items by work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Work items created before the timestamp."""
  createdBefore: Time

  """Work items created after the timestamp."""
  createdAfter: Time

  """Work items updated before the timestamp."""
  updatedBefore: Time

  """Work items updated after the timestamp."""
  updatedAfter: Time

  """Work items due before the timestamp."""
  dueBefore: Time

  """Work items due after the timestamp."""
  dueAfter: Time

  """Work items closed before the date."""
  closedBefore: Time

  """Work items closed after the date."""
  closedAfter: Time

  """Work items the current user is subscribed to."""
  subscribed: SubscriptionStatus

  """Negated work item arguments."""
  not: NegatedWorkItemFilterInput

  """List of arguments with inclusive `OR`."""
  or: UnionedWorkItemFilterInput

  """
  Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hierarchyFilters: HierarchyFilterInput

  """
  Filter work items by global IDs of their parent items (maximum is 100 IDs).
  """
  parentIds: [WorkItemID!]

  """
  Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  parentWildcardId: WorkItemParentWildcardId

  """
  Whether to include work items of descendant parents when filtering by
  parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  includeDescendantWorkItems: Boolean

  """
  Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
  """
  releaseTag: [String!]

  """Filter by release tag wildcard."""
  releaseTagWildcardId: ReleaseTagWildcardId

  """Filter by ID of CRM contact."""
  crmContactId: String

  """Filter by ID of CRM contact organization."""
  crmOrganizationId: String

  """Full project path."""
  projectPath: ID!

  """
  List of selected fields to be exported. Omit to export all available fields.
  """
  selectedFields: [AvailableExportFields!]

  """
  Health status of the work items, "none" and "any" values are supported. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  healthStatusFilter: HealthStatusFilter

  """
  List of iteration Global IDs applied to the work items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationId: [ID]

  """
  Filter by iteration ID wildcard. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationWildcardId: IterationWildcardId

  """
  Filter by a list of iteration cadence IDs. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationCadenceId: [IterationsCadenceID!]

  """
  Weight applied to the work item, "none" and "any" values are supported. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  weight: String

  """
  Filter by weight ID wildcard. Incompatible with weight. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  weightWildcardId: WeightWildcardId

  """Filter by status. Introduced in GitLab 18.7: **Status**: Experiment."""
  status: WorkItemWidgetStatusFilterInput
}

"""Autogenerated return type of WorkItemExport."""
type WorkItemExportPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Export request result message."""
  message: String
}

type WorkItemFeatures {
  """
  Agent plan widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  agentPlan: WorkItemWidgetAgentPlan

  """
  Ai session widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  aiSession: WorkItemWidgetAiSession

  """
  Assignees widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  assignees: WorkItemWidgetAssignees

  """
  Award emoji widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  awardEmoji: WorkItemWidgetAwardEmoji

  """
  Color widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  color: WorkItemWidgetColor

  """
  Crm contacts widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  crmContacts: WorkItemWidgetCrmContacts

  """
  Current user todos widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  currentUserTodos: WorkItemWidgetCurrentUserTodos

  """
  Custom fields widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  customFields: WorkItemWidgetCustomFields

  """
  Description widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  description: WorkItemWidgetDescription

  """
  Designs widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  designs: WorkItemWidgetDesigns

  """
  Development widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  development: WorkItemWidgetDevelopment

  """
  Email participants widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  emailParticipants: WorkItemWidgetEmailParticipants

  """
  Error tracking widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  errorTracking: WorkItemWidgetErrorTracking

  """
  Health status widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  healthStatus: WorkItemWidgetHealthStatus

  """
  Hierarchy widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  hierarchy: WorkItemWidgetHierarchy

  """
  Iteration widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  iteration: WorkItemWidgetIteration

  """
  Labels widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  labels: WorkItemWidgetLabels

  """
  Linked items widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  linkedItems: WorkItemWidgetLinkedItems

  """
  Linked resources widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  linkedResources: WorkItemWidgetLinkedResources

  """
  Milestone widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  milestone: WorkItemWidgetMilestone

  """
  Notes widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  notes: WorkItemWidgetNotes

  """
  Notifications widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  notifications: WorkItemWidgetNotifications

  """
  Participants widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  participants: WorkItemWidgetParticipants

  """
  Progress widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  progress: WorkItemWidgetProgress

  """
  Requirement legacy widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  requirementLegacy: WorkItemWidgetRequirementLegacy

  """
  Start and due date widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  startAndDueDate: WorkItemWidgetStartAndDueDate

  """
  Status widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  status: WorkItemWidgetStatus

  """
  Test reports widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  testReports: WorkItemWidgetTestReports

  """
  Time tracking widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  timeTracking: WorkItemWidgetTimeTracking

  """
  Verification status widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  verificationStatus: WorkItemWidgetVerificationStatus

  """
  Vulnerabilities widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  vulnerabilities: WorkItemWidgetVulnerabilities

  """
  Weight widget of the work item. Returns `null` if the widget is not available for the work item.
  """
  weight: WorkItemWidgetWeight
}

"""Autogenerated input type of WorkItemHierarchyAddChildrenItems"""
input WorkItemHierarchyAddChildrenItemsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global IDs of children work items."""
  childrenIds: [WorkItemID!]!

  """Global ID of the work item."""
  id: WorkItemID!
}

"""Autogenerated return type of WorkItemHierarchyAddChildrenItems."""
type WorkItemHierarchyAddChildrenItemsPayload {
  """Work items that were added as children."""
  addedChildren: [WorkItem!]!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!
}

"""
A `WorkItemID` is a global ID. It is encoded as a string.

An example `WorkItemID` is: `"gid://gitlab/WorkItem/1"`.

While we transition from Issues into Work Items this type will temporarily support
`IssueID` like: `"gid://gitlab/Issue/1"`. This behavior will be removed without notice in the future.

"""
scalar WorkItemID

"""Represents a lifecycle for work items"""
type WorkItemLifecycle {
  """
  Default closed status of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  defaultClosedStatus: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Default duplicate status of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  defaultDuplicateStatus: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Default open status of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  defaultOpenStatus: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  ID of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  id: GlobalID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Name of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  name: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Work item counts by status for the lifecycle. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  statusCounts: [WorkItemStatusCount!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  All available statuses of the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  statuses: [WorkItemStatus!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Work item types associated to the lifecycle. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  workItemTypes: [WorkItemType!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")
}

"""The connection type for WorkItemLifecycle."""
type WorkItemLifecycleConnection {
  """A list of edges."""
  edges: [WorkItemLifecycleEdge]

  """A list of nodes."""
  nodes: [WorkItemLifecycle]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkItemLifecycleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemLifecycle
}

type WorkItemLinkedResource {
  """URL of resource."""
  url: String!
}

"""The connection type for WorkItemLinkedResource."""
type WorkItemLinkedResourceConnection {
  """A list of edges."""
  edges: [WorkItemLinkedResourceEdge]

  """A list of nodes."""
  nodes: [WorkItemLinkedResource]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkItemLinkedResourceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemLinkedResource
}

"""
Valid target work item types and a suggested target for moving work items of a given source type to a different namespace.
"""
type WorkItemMoveTarget {
  """Source work item type the suggestion is computed for."""
  sourceType: WorkItemType!

  """
  Recommended target work item type in the destination namespace. Matches by
  global ID first (covers system-defined and converted custom types across
  namespaces), then falls back to matching by name. Returns `null` when no clear
  match exists; callers should let the user pick manually.
  """
  suggestedTargetType: WorkItemType

  """
  Work item types in the destination namespace that the source type can be moved
  into. Includes the destination type that equals the source by global ID (if
  present) and the source type's conversion targets that exist in the
  destination namespace.
  """
  validTargetTypes: [WorkItemType!]!
}

type WorkItemNumberFieldValue implements WorkItemCustomFieldValue {
  """Custom field associated with the custom field value."""
  customField: CustomField!

  """Number value of the custom field."""
  value: Float
}

"""Parent ID wildcard values"""
enum WorkItemParentWildcardId {
  """No parent is assigned."""
  NONE

  """Any parent is assigned."""
  ANY
}

"""Check permissions for the current user on a work item"""
type WorkItemPermissions {
  """If `true`, the user can perform `admin_parent_link` on this resource"""
  adminParentLink: Boolean!

  """If `true`, the user can perform `admin_work_item` on this resource"""
  adminWorkItem: Boolean!

  """
  If `true`, the user can perform `admin_work_item_link` on this resource
  """
  adminWorkItemLink: Boolean!

  """If `true`, the user can perform `blocked_work_items` on the work item."""
  blockedWorkItems: Boolean

  """If `true`, the user can perform `clone_work_item` on this resource"""
  cloneWorkItem: Boolean!

  """If `true`, the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """If `true`, the user can perform `delete_work_item` on this resource"""
  deleteWorkItem: Boolean!

  """
  If `true`, the user can perform `mark_note_as_internal` on this resource
  """
  markNoteAsInternal: Boolean!

  """If `true`, the user can perform `move_work_item` on this resource"""
  moveWorkItem: Boolean!

  """If `true`, the user can perform `read_work_item` on this resource"""
  readWorkItem: Boolean!

  """If `true`, the user can perform `report_spam` on this resource"""
  reportSpam: Boolean!

  """
  If `true`, the user can perform `set_work_item_metadata` on this resource
  """
  setWorkItemMetadata: Boolean!

  """If `true`, the user can perform `summarize_comments` on this resource"""
  summarizeComments: Boolean!

  """If `true`, the user can perform `update_work_item` on this resource"""
  updateWorkItem: Boolean!
}

type WorkItemRelatedBranch {
  """Path to comparison of branch to default branch."""
  comparePath: String

  """Name of the branch."""
  name: String!

  """Status of pipeline for the branch."""
  pipelineStatus: DetailedStatus
}

"""The connection type for WorkItemRelatedBranch."""
type WorkItemRelatedBranchConnection {
  """A list of edges."""
  edges: [WorkItemRelatedBranchEdge]

  """A list of nodes."""
  nodes: [WorkItemRelatedBranch]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkItemRelatedBranchEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemRelatedBranch
}

"""Values for work item link types"""
enum WorkItemRelatedLinkType {
  """Related type."""
  RELATED

  """Blocked by type."""
  BLOCKED_BY

  """Blocks type."""
  BLOCKS
}

"""Autogenerated input type of WorkItemRemoveLinkedItems"""
input WorkItemRemoveLinkedItemsInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """
  Global IDs of the items to unlink. Maximum number of IDs you can provide: 10.
  """
  workItemsIds: [WorkItemID!]!
}

"""Autogenerated return type of WorkItemRemoveLinkedItems."""
type WorkItemRemoveLinkedItemsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Linked items update result message."""
  message: String

  """Updated work item."""
  workItem: WorkItem
}

input WorkItemResolveDiscussionsInput {
  """ID of a discussion to resolve."""
  discussionId: String

  """
  Global ID of the noteable where discussions will be resolved when the work
  item is created. Only `MergeRequestID` is supported at the moment.
  """
  noteableId: NoteableID!
}

"""Autogenerated input type of WorkItemSavedViewCreate"""
input WorkItemSavedViewCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace to create the saved view in."""
  namespacePath: ID!

  """Name of the saved view."""
  name: String!

  """Description of the saved view."""
  description: String

  """Filters associated with the saved view."""
  filters: WorkItemSavedViewFilterInput!

  """Display settings associated with the saved view."""
  displaySettings: JSON!

  """Sort option associated with the saved view."""
  sort: WorkItemSort!

  """
  Whether the saved view is private. Default is true. Deprecated in GitLab 18.10: Replaced by `isPrivate` argument.
  """
  private: Boolean

  """Whether the saved view is private. Default is true."""
  isPrivate: Boolean
}

"""Autogenerated return type of WorkItemSavedViewCreate."""
type WorkItemSavedViewCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created saved view."""
  savedView: WorkItemSavedViewType
}

"""Autogenerated input type of WorkItemSavedViewDelete"""
input WorkItemSavedViewDeleteInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the saved view."""
  id: WorkItemsSavedViewsSavedViewID!
}

"""Autogenerated return type of WorkItemSavedViewDelete."""
type WorkItemSavedViewDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Deleted saved view."""
  savedView: WorkItemSavedViewType
}

input WorkItemSavedViewFilterInput {
  """Filter values for assignee usernames filter(maximum is 100 usernames)."""
  assigneeUsernames: [String!]

  """
  Filter values for assignee wildcard id filter. Incompatible with `assigneeUsernames`.
  """
  assigneeWildcardId: AssigneeWildcardId

  """Filter value for author username filter."""
  authorUsername: String

  """Filter value for closed after filter."""
  closedAfter: Time

  """Filter value for closed before filter."""
  closedBefore: Time

  """Filter value for confidential filter."""
  confidential: Boolean

  """Filter value for created after filter."""
  createdAfter: Time

  """Filter value for created before filter."""
  createdBefore: Time

  """Filter value for crm contact id filter."""
  crmContactId: String

  """Filter value for crm organization id filter."""
  crmOrganizationId: String

  """Filter value for due after filter."""
  dueAfter: Time

  """Filter value for due before filter."""
  dueBefore: Time

  """Filter value for exclude group work items filter."""
  excludeGroupWorkItems: Boolean

  """Filter value for exclude projects filter."""
  excludeProjects: Boolean

  """Filter value for full path filter."""
  fullPath: ID

  """Filter value for hierarchy filter."""
  hierarchyFilters: HierarchyFilterInput

  """Filter value for IID filter."""
  iid: String

  """"Filter value for in filter."""
  in: [IssuableSearchableField!]

  """Filter value for include descendant work items filter."""
  includeDescendantWorkItems: Boolean

  """Filter value for include descendants filter."""
  includeDescendants: Boolean

  """Filter value for label name filter. (maximum is 100 labels)."""
  labelName: [String!]

  """Filter value for milestone title filter. (maximum is 100 milestones)."""
  milestoneTitle: [String!]

  """
  Filter value for milestone wildcard id filter. Incompatible with `milestoneTitle`.
  """
  milestoneWildcardId: MilestoneWildcardId

  """Filter value for my reaction emoji filter."""
  myReactionEmoji: String

  """Filter value for not filter."""
  not: WorkItemSavedViewNegatedFilterInput

  """Filter values for or filter."""
  or: WorkItemSavedViewUnionedFilterInput

  """Filter value for release tag filter (maximum is 100 tags)."""
  releaseTag: [String!]

  """Filter value for release tag wildcard id filter."""
  releaseTagWildcardId: ReleaseTagWildcardId

  """Filter value for search filter."""
  search: String

  """Filter value for state filter."""
  state: IssuableState

  """Filter value for subscribed filter."""
  subscribed: SubscriptionStatus

  """Filter value for types filter."""
  types: [IssueType!]

  """Filter value for updated after filter."""
  updatedAfter: Time

  """Filter value for updated before filter."""
  updatedBefore: Time

  """Filter value for work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Filter value for custom field filter. (maximum is 100 fields)."""
  customField: [WorkItemWidgetCustomFieldFilterInputType!]

  """Filter value for health status filter."""
  healthStatusFilter: HealthStatusFilter

  """Filter value for iteration id filter."""
  iterationId: [ID!]

  """Filter value for iteration wildcard id filter."""
  iterationWildcardId: IterationWildcardId

  """Filter value for status filter."""
  status: WorkItemWidgetStatusFilterInput

  """Filter value for weight filter."""
  weight: String

  """Filter value for weight wildcard id filter."""
  weightWildcardId: WeightWildcardId

  """Filter value for iteration cadence id filter. (maximum is 100 IDs)."""
  iterationCadenceId: [IterationsCadenceID!]
}

type WorkItemSavedViewFilterWarningType {
  """Name of the field associated with the warning."""
  field: String!

  """Message associated with the warning."""
  message: String!
}

input WorkItemSavedViewNegatedFilterInput {
  """
  Filter value for not assignee username filter. (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """
  Filter value for not author username filter. (maximum is 100 usernames).
  """
  authorUsername: [String!]

  """Filter value for not label name filter. (maximum is 100 labels)."""
  labelName: [String!]

  """
  Filter value for not milestone title filter.(maximum is 100 milestones).
  """
  milestoneTitle: [String!]

  """Filter value for not milestone wildcard id filter."""
  milestoneWildcardId: NegatedMilestoneWildcardId

  """Filter value for not my reaction emoji filter."""
  myReactionEmoji: String

  """
  Filter work items by global IDs who don't belong to parent items (maximum is 100 IDs).
  """
  parentIds: [WorkItemID!]

  """File value for not release tag filter. (maximum is 100 tags)."""
  releaseTag: [String!]

  """Filter value for not types filter."""
  types: [IssueType!]

  """Filter value for not work item type global IDs filter."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Filter values for not health status filter."""
  healthStatusFilter: [HealthStatus!]

  """Filter values for not weight filter."""
  weight: String

  """Filter values for not iteration id filter. (maximum is 100 IDs)."""
  iterationId: [ID!]

  """Filter value for not iteration wildcard id filter."""
  iterationWildcardId: IterationWildcardId

  """Filter value for not custom field filter."""
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""Autogenerated input type of WorkItemSavedViewReorder"""
input WorkItemSavedViewReorderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the saved view to be reordered."""
  id: WorkItemsSavedViewsSavedViewID!

  """
  Global ID of a saved view that the reordered view should be placed before.
  """
  moveBeforeId: WorkItemsSavedViewsSavedViewID

  """
  Global ID of a saved view that the reordered view should be placed after.
  """
  moveAfterId: WorkItemsSavedViewsSavedViewID
}

"""Autogenerated return type of WorkItemSavedViewReorder."""
type WorkItemSavedViewReorderPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Reordered saved view."""
  savedView: WorkItemSavedViewType
}

"""Autogenerated input type of WorkItemSavedViewSubscribe"""
input WorkItemSavedViewSubscribeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the saved view to subscribe to."""
  id: WorkItemsSavedViewsSavedViewID!
}

"""Autogenerated return type of WorkItemSavedViewSubscribe."""
type WorkItemSavedViewSubscribePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Subscribed saved view."""
  savedView: WorkItemSavedViewType
}

type WorkItemSavedViewType {
  """Author of the saved view."""
  author: UserCore

  """Description of the saved view."""
  description: String

  """Display settings associated with the saved view."""
  displaySettings: JSON

  """
  Warnings associated with the filter values. This field can only be resolved for one saved view in any single request.
  """
  filterWarnings: [WorkItemSavedViewFilterWarningType!]

  """
  Filters associated with the saved view. This field can only be resolved for one saved view in any single request.
  """
  filters: JSON

  """ID of the saved view."""
  id: WorkItemsSavedViewsSavedViewID!

  """Whether the saved view is private."""
  isPrivate: Boolean!

  """
  User who last updated the saved view. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  lastUpdatedBy: UserCore @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """Name of the saved view."""
  name: String!

  """ID of the namespace of the saved view."""
  namespaceId: TypesNamespaceID!

  """
  Whether the saved view is private. Deprecated in GitLab 18.10: Replaced by `isPrivate` field.
  """
  private: Boolean! @deprecated(reason: "Replaced by `isPrivate` field. Deprecated in GitLab 18.10.")

  """URL to auto subscribe users to the view."""
  shareUrl: String!

  """Sort option associated with the saved view."""
  sort: WorkItemSort

  """Whether the current user is subscribed to the saved view."""
  subscribed: Boolean!

  """Timestamp of when the saved view was last updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: SavedViewPermissions!

  """
  Work items associated with the saved view. This field can only be resolved for
  one saved view in any single request. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  workItems(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")
}

"""The connection type for WorkItemSavedViewType."""
type WorkItemSavedViewTypeConnection {
  """A list of edges."""
  edges: [WorkItemSavedViewTypeEdge]

  """A list of nodes."""
  nodes: [WorkItemSavedViewType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkItemSavedViewTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemSavedViewType
}

input WorkItemSavedViewUnionedFilterInput {
  """
  Filter value for unioned assignee usernames filter. (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """
  Filter value for unioned author usernames filter. (maximum is 100 usernames).
  """
  authorUsernames: [String!]

  """Filter value for unioned label names filter.(maximum is 100 labels)."""
  labelNames: [String!]

  """Filter value for unioned custom field filter."""
  customField: [WorkItemWidgetCustomFieldFilterInputType!]
}

"""Autogenerated input type of WorkItemSavedViewUnsubscribe"""
input WorkItemSavedViewUnsubscribeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the saved view to unsubscribe from."""
  id: WorkItemsSavedViewsSavedViewID!
}

"""Autogenerated return type of WorkItemSavedViewUnsubscribe."""
type WorkItemSavedViewUnsubscribePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Unsubscribed saved view."""
  savedView: WorkItemSavedViewType
}

"""Autogenerated input type of WorkItemSavedViewUpdate"""
input WorkItemSavedViewUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the saved view."""
  id: WorkItemsSavedViewsSavedViewID!

  """Name of the saved view."""
  name: String

  """Description of the saved view."""
  description: String

  """Filters associated with the saved view."""
  filters: WorkItemSavedViewFilterInput

  """Display settings associated with the saved view."""
  displaySettings: JSON

  """Sorting option associated with the saved view."""
  sort: WorkItemSort

  """
  Whether the saved view is private. Deprecated in GitLab 18.10: Replaced by `isPrivate` argument.
  """
  private: Boolean

  """Whether the saved view is private."""
  isPrivate: Boolean
}

"""Autogenerated return type of WorkItemSavedViewUpdate."""
type WorkItemSavedViewUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated saved view."""
  savedView: WorkItemSavedViewType
}

"""Autogenerated input type of WorkItemsCsvExport"""
input WorkItemsCsvExportInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Search query for title or description."""
  search: String

  """
  Specify the fields to perform the search in.
  Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.'
  
  """
  in: [IssuableSearchableField!]

  """Filter by global IDs of work items (maximum is 100 IDs)."""
  ids: [WorkItemID!]

  """Filter work items by author username."""
  authorUsername: String

  """
  Filter for confidential work items. If `false`, excludes confidential work
  items. If `true`, returns only confidential work items.
  """
  confidential: Boolean

  """
  Usernames of users assigned to the work item (maximum is 100 usernames).
  """
  assigneeUsernames: [String!]

  """Filter by assignee wildcard. Incompatible with `assigneeUsernames`."""
  assigneeWildcardId: AssigneeWildcardId

  """Labels applied to the work item (maximum is 100 labels)."""
  labelName: [String!]

  """Milestone applied to the work item (maximum is 100 milestones)."""
  milestoneTitle: [String!]

  """Filter by milestone ID wildcard. Incompatible with `milestoneTitle`."""
  milestoneWildcardId: MilestoneWildcardId

  """
  Filter by reaction emoji applied by the current user. Wildcard values `NONE` and `ANY` are supported.
  """
  myReactionEmoji: String

  """
  List of IIDs of work items. For example, `["1", "2"]` (maximum is 100 IIDs).
  """
  iids: [String!]

  """Current state of the work item."""
  state: IssuableState

  """Filter work items by the given work item types."""
  types: [IssueType!]

  """Filter work items by work item type global IDs."""
  workItemTypeIds: [WorkItemsTypeID!]

  """Work items created before the timestamp."""
  createdBefore: Time

  """Work items created after the timestamp."""
  createdAfter: Time

  """Work items updated before the timestamp."""
  updatedBefore: Time

  """Work items updated after the timestamp."""
  updatedAfter: Time

  """Work items due before the timestamp."""
  dueBefore: Time

  """Work items due after the timestamp."""
  dueAfter: Time

  """Work items closed before the date."""
  closedBefore: Time

  """Work items closed after the date."""
  closedAfter: Time

  """Work items the current user is subscribed to."""
  subscribed: SubscriptionStatus

  """Negated work item arguments."""
  not: NegatedWorkItemFilterInput

  """List of arguments with inclusive `OR`."""
  or: UnionedWorkItemFilterInput

  """
  Filtering options related to the work item hierarchy. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  hierarchyFilters: HierarchyFilterInput

  """
  Filter work items by global IDs of their parent items (maximum is 100 IDs).
  """
  parentIds: [WorkItemID!]

  """
  Filter by parent ID wildcard. Incompatible with parentIds. Introduced in GitLab 18.5: **Status**: Experiment.
  """
  parentWildcardId: WorkItemParentWildcardId

  """
  Whether to include work items of descendant parents when filtering by
  parent_ids. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  includeDescendantWorkItems: Boolean

  """
  Release tag associated with the work item's milestone (maximum is 100 tags). Ignored when parent is a group.
  """
  releaseTag: [String!]

  """Filter by release tag wildcard."""
  releaseTagWildcardId: ReleaseTagWildcardId

  """Filter by ID of CRM contact."""
  crmContactId: String

  """Filter by ID of CRM contact organization."""
  crmOrganizationId: String

  """Full project path."""
  projectPath: ID!

  """
  List of selected fields to be exported. Omit to export all available fields.
  """
  selectedFields: [AvailableExportFields!]

  """
  Health status of the work items, "none" and "any" values are supported. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  healthStatusFilter: HealthStatusFilter

  """
  List of iteration Global IDs applied to the work items. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationId: [ID]

  """
  Filter by iteration ID wildcard. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationWildcardId: IterationWildcardId

  """
  Filter by a list of iteration cadence IDs. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  iterationCadenceId: [IterationsCadenceID!]

  """
  Weight applied to the work item, "none" and "any" values are supported. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  weight: String

  """
  Filter by weight ID wildcard. Incompatible with weight. Introduced in GitLab 18.2: **Status**: Experiment.
  """
  weightWildcardId: WeightWildcardId

  """Filter by status. Introduced in GitLab 18.7: **Status**: Experiment."""
  status: WorkItemWidgetStatusFilterInput
}

"""Autogenerated return type of WorkItemsCsvExport."""
type WorkItemsCsvExportPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Export request result message."""
  message: String
}

"""Autogenerated input type of WorkItemsCsvImport"""
input WorkItemsCsvImportInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full project path."""
  projectPath: ID!

  """CSV file to import work items from."""
  file: Upload!
}

"""Autogenerated return type of WorkItemsCsvImport."""
type WorkItemsCsvImportPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Import request result message."""
  message: String
}

type WorkItemSelectFieldValue implements WorkItemCustomFieldValue {
  """Custom field associated with the custom field value."""
  customField: CustomField!

  """Selected options of the custom field."""
  selectedOptions: [CustomFieldSelectOption!]
}

"""Work item settings for a namespace."""
type WorkItemSettings {
  """Whether namespace admins can configure per-type work item visibility."""
  customizableTypeVisibility: Boolean!
}

"""Autogenerated input type of WorkItemSettingsUpdate"""
input WorkItemSettingsUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the root group. Omit to use the current organization."""
  fullPath: ID

  """Whether namespace admins can configure per-type work item visibility."""
  customizableTypeVisibility: Boolean
}

"""Autogenerated return type of WorkItemSettingsUpdate."""
type WorkItemSettingsUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item settings after mutation."""
  workItemSettings: WorkItemSettings
}

"""Autogenerated input type of workItemsHierarchyReorder"""
input workItemsHierarchyReorderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item to be reordered."""
  id: WorkItemID!

  """
  ID of the work item to move next to. For example, the item above or below.
  """
  adjacentWorkItemId: WorkItemID

  """Global ID of the new parent work item."""
  parentId: WorkItemID

  """
  Position relative to the adjacent work item. Valid values are `BEFORE` or `AFTER`.
  """
  relativePosition: RelativePositionType
}

"""Autogenerated return type of workItemsHierarchyReorder."""
type workItemsHierarchyReorderPayload {
  """Adjacent work item after mutation."""
  adjacentWorkItem: WorkItem

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item's parent after mutation."""
  parentWorkItem: WorkItem

  """Work item after mutation."""
  workItem: WorkItem
}

"""Values for sorting work items"""
enum WorkItemSort {
  """
  Closed time by ascending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  CLOSED_AT_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Closed time by descending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  CLOSED_AT_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Status from triggered to resolved. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  ESCALATION_STATUS_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Status from resolved to triggered. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  ESCALATION_STATUS_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Number of upvotes (awarded "thumbs up" emoji) by ascending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  POPULARITY_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Number of upvotes (awarded "thumbs up" emoji) by descending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  POPULARITY_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Priority by ascending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  PRIORITY_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Priority by descending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  PRIORITY_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Relative position by ascending order. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  RELATIVE_POSITION_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Severity from less critical to more critical. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  SEVERITY_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """
  Severity from more critical to less critical. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  SEVERITY_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC

  """Title by ascending order."""
  TITLE_ASC

  """Title by descending order."""
  TITLE_DESC

  """
  Health status by ascending order. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  HEALTH_STATUS_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Health status by descending order. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  HEALTH_STATUS_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Label priority by ascending order."""
  LABEL_PRIORITY_ASC

  """Label priority by descending order."""
  LABEL_PRIORITY_DESC

  """Blocking items count by ascending order."""
  BLOCKING_ISSUES_ASC

  """Blocking items count by descending order."""
  BLOCKING_ISSUES_DESC

  """Milestone due date by ascending order."""
  MILESTONE_DUE_ASC

  """Milestone due date by descending order."""
  MILESTONE_DUE_DESC

  """
  Start date by ascending order. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  START_DATE_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Start date by descending order. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  START_DATE_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Due date by ascending order. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  DUE_DATE_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Due date by descending order. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  DUE_DATE_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Weight by ascending order. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  WEIGHT_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Weight by descending order. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  WEIGHT_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Status by ascending order. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  STATUS_ASC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Status by descending order. Introduced in GitLab 18.3: **Status**: Experiment.
  """
  STATUS_DESC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.3.")

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")
}

"""
A `WorkItemsRelatedWorkItemLinkID` is a global ID. It is encoded as a string.

An example `WorkItemsRelatedWorkItemLinkID` is: `"gid://gitlab/WorkItems::RelatedWorkItemLink/1"`.
"""
scalar WorkItemsRelatedWorkItemLinkID

"""Autogenerated input type of workItemsReorder"""
input workItemsReorderInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item to be reordered."""
  id: WorkItemID!

  """Global ID of a work item that should be placed before the work item."""
  moveBeforeId: WorkItemID

  """Global ID of a work item that should be placed after the work item."""
  moveAfterId: WorkItemID
}

"""Autogenerated return type of workItemsReorder."""
type workItemsReorderPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item after mutation."""
  workItem: WorkItem
}

"""
A `WorkItemsSavedViewsSavedViewID` is a global ID. It is encoded as a string.

An example `WorkItemsSavedViewsSavedViewID` is: `"gid://gitlab/WorkItems::SavedViews::SavedView/1"`.
"""
scalar WorkItemsSavedViewsSavedViewID

"""Values for sorting saved views"""
enum WorkItemsSavedViewsSort {
  """
  Relative position by ascending order. If user is logged out, or explicitly
  subscribed is not passed, falls back to id sort.
  """
  RELATIVE_POSITION

  """Alphabetically by name in ascending order."""
  NAME_ASC

  """Ordered by id."""
  ID

  """
  Updated at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Updated at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.")

  """
  Created at descending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.")

  """
  Created at ascending order. Deprecated in GitLab 13.5: This was renamed.
  """
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.")

  """Updated at descending order."""
  UPDATED_DESC

  """Updated at ascending order."""
  UPDATED_ASC

  """Created at descending order."""
  CREATED_DESC

  """Created at ascending order."""
  CREATED_ASC
}

"""
A `WorkItemsStatusesLifecycleID` is a global ID. It is encoded as a string.

An example `WorkItemsStatusesLifecycleID` is: `"gid://gitlab/WorkItems::Statuses::Lifecycle/1"`.
"""
scalar WorkItemsStatusesLifecycleID

"""
A `WorkItemsStatusesStatusID` is a global ID. It is encoded as a string.

An example `WorkItemsStatusesStatusID` is: `"gid://gitlab/WorkItems::Statuses::Status/1"`.
"""
scalar WorkItemsStatusesStatusID

"""State of a GitLab work item"""
enum WorkItemState {
  """In open state."""
  OPEN

  """In closed state."""
  CLOSED
}

"""Represents total number of work items for the represented states"""
type WorkItemStateCountsType {
  """Number of work items for the project or group."""
  all: Int

  """Number of work items with state CLOSED for the project or group."""
  closed: Int

  """Number of work items with state OPENED for the project or group."""
  opened: Int
}

"""Values for work item state events"""
enum WorkItemStateEvent {
  """Reopens the work item."""
  REOPEN

  """Closes the work item."""
  CLOSE
}

"""Represents status"""
type WorkItemStatus {
  """
  Category of the status. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  category: WorkItemStatusCategoryEnum @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Color of the status. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  color: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Description of the status. Introduced in GitLab 18.1: **Status**: Experiment.
  """
  description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.1.")

  """
  Icon name of the status. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  iconName: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """ID of the status. Introduced in GitLab 17.11: **Status**: Experiment."""
  id: GlobalID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Name of the status. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  name: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """
  Position of the status within its category. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  position: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")
}

"""Category of the work item status"""
enum WorkItemStatusCategoryEnum {
  """Triage status category"""
  TRIAGE

  """To do status category"""
  TO_DO

  """In progress status category"""
  IN_PROGRESS

  """Done status category"""
  DONE

  """Canceled status category"""
  CANCELED
}

"""The connection type for WorkItemStatus."""
type WorkItemStatusConnection {
  """A list of edges."""
  edges: [WorkItemStatusEdge]

  """A list of nodes."""
  nodes: [WorkItemStatus]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents a status with its work item count"""
type WorkItemStatusCount {
  """
  Work item count for the status. Shows "999+" when count exceeds 999. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  count: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")

  """
  Status of the work items. Introduced in GitLab 18.4: **Status**: Experiment.
  """
  status: WorkItemStatus! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.4.")
}

"""An edge in a connection."""
type WorkItemStatusEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemStatus
}

input WorkItemStatusInput {
  """ID of the status. If not provided, a new status will be created."""
  id: GlobalID

  """Name of the status."""
  name: String

  """Color of the status."""
  color: String

  """Description of the status."""
  description: String

  """Category of the status."""
  category: WorkItemStatusCategoryEnum
}

"""
A `WorkItemsTypeID` is a global ID. It is encoded as a string.

An example `WorkItemsTypeID` is: `"gid://gitlab/WorkItems::Type/1"`.
"""
scalar WorkItemsTypeID

"""Autogenerated input type of WorkItemSubscribe"""
input WorkItemSubscribeInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Desired state of the subscription."""
  subscribed: Boolean!
}

"""Autogenerated return type of WorkItemSubscribe."""
type WorkItemSubscribePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item after mutation."""
  workItem: WorkItem
}

"""Values for work item subscription events"""
enum WorkItemSubscriptionEvent {
  """Subscribe to a work item."""
  SUBSCRIBE

  """Unsubscribe from a work item."""
  UNSUBSCRIBE
}

type WorkItemTextFieldValue implements WorkItemCustomFieldValue {
  """Custom field associated with the custom field value."""
  customField: CustomField!

  """Text value of the custom field."""
  value: String
}

type WorkItemTimelog {
  """Internal ID of the timelog."""
  id: ID!

  """Note where the quick action was executed to add the logged time."""
  note: Note

  """Timestamp of when the time tracked was spent at."""
  spentAt: Time

  """Summary of how the time was spent."""
  summary: String

  """Time spent displayed in seconds."""
  timeSpent: Int!

  """User that logged the time."""
  user: UserCore!

  """Permissions for the current user on the resource"""
  userPermissions: TimelogPermissions!
}

"""The connection type for WorkItemTimelog."""
type WorkItemTimelogConnection {
  """
  Total count of collection. Returns limit + 1 for counts greater than the limit.
  """
  count(
    """
    Limit applied to the count query, returns limit + 1. When not provided, returns the exact count.
    """
    limit: Int
  ): Int!

  """A list of edges."""
  edges: [WorkItemTimelogEdge]

  """A list of nodes."""
  nodes: [WorkItemTimelog]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """Total time spent in seconds."""
  totalSpentTime: BigInt!
}

"""An edge in a connection."""
type WorkItemTimelogEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemTimelog
}

"""Values for work item to-do update enum"""
enum WorkItemTodoUpdateAction {
  """Marks the to-do as done."""
  MARK_AS_DONE

  """Adds the to-do."""
  ADD
}

type WorkItemType {
  """
  Indicates whether the work item type is archived. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  archived: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type can be promoted to an objective. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  canPromoteToObjective: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type is creatable by the API. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  canUserCreateItems: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type is enabled. Introduced in GitLab 18.9: **Status**: Experiment.
  """
  enabled: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.9.")

  """
  Whether the work item type is enabled by default when new child namespaces are
  created. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  enabledByDefaultForNewNamespaces: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 19.0.")

  """Icon name of the work item type."""
  iconName: String

  """Global ID of the work item type."""
  id: WorkItemsTypeID!

  """
  Indicates whether the work item type is configurable. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  isConfigurable: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type is filterable in board view. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  isFilterableBoardView: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Indicates whether the work item type is filterable in list view. Introduced in GitLab 18.10: **Status**: Experiment.
  """
  isFilterableListView: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.10.")

  """
  Indicates whether the work item type belongs only to a group. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  isGroupWorkItemType: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type is for incident management. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  isIncidentManagement: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type is for service desk. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  isServiceDesk: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Name of the work item type."""
  name: String!

  """
  Indicates whether the work item type should show the project selector. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  showProjectSelector: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Supported conversion types for the work item type. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  supportedConversionTypes: [WorkItemType!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Indicates whether the work item type can be moved or not. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  supportsMoveAction: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type supports roadmap view. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  supportsRoadmapView: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Widgets that will be lost when converting from source work item type to target work item type.
  """
  unavailableWidgetsOnConversion(
    """Target work item type to convert to."""
    target: WorkItemsTypeID!
  ): [WorkItemWidgetDefinition!]

  """
  Indicates whether the work item type uses the issue view instead of work item
  view. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  useIssueView: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the work item type should be visible in the settings page.
  Introduced in GitLab 18.8: **Status**: Experiment.
  """
  visibleInSettings: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Available widgets for the work item type. Introduced in GitLab 16.7: **Status**: Experiment.
  """
  widgetDefinitions: [WorkItemWidgetDefinition!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.")
}

"""The connection type for WorkItemType."""
type WorkItemTypeConnection {
  """A list of edges."""
  edges: [WorkItemTypeEdge]

  """A list of nodes."""
  nodes: [WorkItemType]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Represents work item counts for the work item type"""
type WorkItemTypeCountsByState {
  """Total number of work items for the represented states."""
  countsByState: WorkItemStateCountsType!

  """Work item type."""
  workItemType: WorkItemType!
}

"""Autogenerated input type of WorkItemTypeCreate"""
input WorkItemTypeCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Name for the work item type."""
  name: String!

  """
  Icon name for the work item type. Use the `workItemTypeIconDefinitions` query
  to retrieve the list of available icon names.
  """
  iconName: String!

  """Full path of the root group."""
  fullPath: String

  """Indicates the type is enabled by default for new child namespaces."""
  enabledByDefaultForNewNamespaces: Boolean
}

"""Autogenerated return type of WorkItemTypeCreate."""
type WorkItemTypeCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item type that was created."""
  workItemType: WorkItemType
}

"""Represents Depth limit reached for the allowed work item type."""
type WorkItemTypeDepthLimitReachedByType {
  """
  Indicates if maximum allowed depth has been reached for the descendant type.
  """
  depthLimitReached: Boolean!

  """Work item type."""
  workItemType: WorkItemType!
}

"""An edge in a connection."""
type WorkItemTypeEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkItemType
}

"""Represents an available icon for work item types."""
type WorkItemTypeIconDefinition {
  """Human-readable screen reader label for the icon."""
  label: String!

  """Name of the icon."""
  name: String!
}

type WorkItemTypesUserPreference {
  """Display settings for the work item lists."""
  displaySettings: JSON

  """Namespace for the user preference."""
  namespace: Namespace!

  """Sort order for work item lists."""
  sort: WorkItemSort

  """Type assigned to the work item."""
  workItemType: WorkItemType
}

"""Autogenerated input type of WorkItemTypeUpdate"""
input WorkItemTypeUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item type to update."""
  id: WorkItemsTypeID!

  """New name for the work item type."""
  name: String

  """
  Icon name for the work item type. Use the `workItemTypeIconDefinitions` query
  to retrieve the list of available icon names.
  """
  iconName: String

  """Whether to archive the work item type."""
  archive: Boolean

  """Full path of the root group."""
  fullPath: String

  """Indicates the type is enabled by default for new child namespaces."""
  enabledByDefaultForNewNamespaces: Boolean
}

"""Autogenerated return type of WorkItemTypeUpdate."""
type WorkItemTypeUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Work item type that was updated."""
  workItemType: WorkItemType
}

"""Autogenerated input type of WorkItemUpdate"""
input WorkItemUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Input for assignees widget."""
  assigneesWidget: WorkItemWidgetAssigneesInput

  """Sets the work item confidentiality."""
  confidential: Boolean

  """Input for description widget."""
  descriptionWidget: WorkItemWidgetDescriptionInput

  """Input for milestone widget."""
  milestoneWidget: WorkItemWidgetMilestoneInput

  """Input for emoji reactions widget."""
  awardEmojiWidget: WorkItemWidgetAwardEmojiUpdateInput

  """Input for CRM contacts widget."""
  crmContactsWidget: WorkItemWidgetCrmContactsUpdateInput

  """Input for to-dos widget."""
  currentUserTodosWidget: WorkItemWidgetCurrentUserTodosInput

  """Input for hierarchy widget."""
  hierarchyWidget: WorkItemWidgetHierarchyUpdateInput

  """Global ID of the work item."""
  id: WorkItemID!

  """Input for labels widget."""
  labelsWidget: WorkItemWidgetLabelsUpdateInput

  """
  Global ID of a work item that should be placed after the work item. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  moveAfterId: WorkItemID

  """
  Global ID of a work item that should be placed before the work item. Introduced in GitLab 19.2: **Status**: Experiment.
  """
  moveBeforeId: WorkItemID

  """Input for notes widget."""
  notesWidget: WorkItemWidgetNotesInput

  """Input for notifications widget."""
  notificationsWidget: WorkItemWidgetNotificationsUpdateInput

  """Input for start and due date widget."""
  startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput

  """Close or reopen a work item."""
  stateEvent: WorkItemStateEvent

  """Input for time tracking widget."""
  timeTrackingWidget: WorkItemWidgetTimeTrackingInput

  """Title of the work item."""
  title: String

  """Input for iteration widget."""
  iterationWidget: WorkItemWidgetIterationInput

  """Input for weight widget."""
  weightWidget: WorkItemWidgetWeightInput

  """Input for progress widget."""
  progressWidget: WorkItemWidgetProgressInput

  """Input for verification status widget."""
  verificationStatusWidget: VerificationStatusInput

  """Input for health status widget."""
  healthStatusWidget: WorkItemWidgetHealthStatusInput

  """Input for color widget."""
  colorWidget: WorkItemWidgetColorInput

  """
  Input for custom fields widget. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customFieldsWidget: [WorkItemWidgetCustomFieldValueInputType!]

  """
  Input for status widget. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  statusWidget: WorkItemWidgetStatusInput

  """
  Input for agent plan widget. Introduced in GitLab 19.0: **Status**: Experiment.
  """
  agentPlanWidget: WorkItemWidgetAgentPlanInput
}

"""Autogenerated return type of WorkItemUpdate."""
type WorkItemUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Updated work item."""
  workItem: WorkItem
}

"""Autogenerated input type of WorkItemUserPreferenceUpdate"""
input WorkItemUserPreferenceUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Full path of the namespace on which the preference is set."""
  namespacePath: ID!

  """Global ID of a work item type."""
  workItemTypeId: WorkItemsTypeID

  """Sort order for work item lists."""
  sort: WorkItemSort = CREATED_ASC

  """Display settings for the work item lists."""
  displaySettings: JSON
}

"""Autogenerated return type of WorkItemUserPreferenceUpdate."""
type WorkItemUserPreferenceUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """User preferences."""
  userPreferences: WorkItemTypesUserPreference
}

interface WorkItemWidget {
  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents an agent plan widget."""
type WorkItemWidgetAgentPlan implements WorkItemWidget {
  """
  Content of the agent plan. This field can only be resolved for one work item in any single request.
  """
  content: String

  """
  GitLab Flavored Markdown rendering of `content`. This field can only be resolved for one work item in any single request.
  """
  contentHtml: String

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetAgentPlanInput {
  """Content of the agent plan."""
  content: String!
}

"""Represents an AI session widget"""
type WorkItemWidgetAiSession implements WorkItemWidget {
  """Duo Workflow sessions associated with the work item."""
  duoWorkflows(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): DuoWorkflowConnection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents an assignees widget"""
type WorkItemWidgetAssignees implements WorkItemWidget {
  """
  Indicates whether multiple assignees are allowed. Deprecated in GitLab 16.7:
  Field moved to workItemType widget definition interface.
  """
  allowsMultipleAssignees: Boolean @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `workitemWidgetDefinitionAssignees.allowsMultipleAssignees`. Deprecated in GitLab 16.7.")

  """Assignees of the work item."""
  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
  ): UserCoreConnection

  """
  Indicates whether the current user can invite members to the work item's
  project. Deprecated in GitLab 16.7: Field moved to workItemType widget
  definition interface.
  """
  canInviteMembers: Boolean! @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `workitemWidgetDefinitionAssignees.canInviteMembers`. Deprecated in GitLab 16.7.")

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetAssigneesInput {
  """Global IDs of assignees."""
  assigneeIds: [UserID!]!
}

"""Represents the emoji reactions widget"""
type WorkItemWidgetAwardEmoji implements WorkItemWidget {
  """Emoji reactions on the work item."""
  awardEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): AwardEmojiConnection

  """Number of downvotes the work item has received."""
  downvotes: Int!

  """Path to create a new custom emoji."""
  newCustomEmojiPath: String

  """Widget type."""
  type: WorkItemWidgetType

  """Number of upvotes the work item has received."""
  upvotes: Int!
}

input WorkItemWidgetAwardEmojiUpdateInput {
  """Action for the update."""
  action: WorkItemAwardEmojiUpdateAction!

  """Emoji name."""
  name: String!
}

"""Represents a color widget"""
type WorkItemWidgetColor implements WorkItemWidget {
  """Color of the Work Item."""
  color: String

  """Text color generated for the Work Item."""
  textColor: String

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetColorInput {
  """Color of the work item."""
  color: Color!
}

"""Represents CRM contacts widget"""
type WorkItemWidgetCrmContacts implements WorkItemWidget {
  """Collection of CRM contacts associated with the work item."""
  contacts(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CustomerRelationsContactConnection

  """
  Indicates whether contacts are available to be associated with the work item.
  """
  contactsAvailable: Boolean!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetCrmContactsCreateInput {
  """CRM contact IDs to set."""
  contactIds: [CustomerRelationsContactID!]!
}

input WorkItemWidgetCrmContactsUpdateInput {
  """CRM contact IDs to set. Replaces existing contacts by default."""
  contactIds: [CustomerRelationsContactID!]!

  """Set the operation mode."""
  operationMode: MutationOperationMode = REPLACE
}

"""Represents a todos widget"""
type WorkItemWidgetCurrentUserTodos implements CurrentUserTodos & WorkItemWidget {
  """To-do items 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 to-do items."""
    state: TodoStateEnum
  ): TodoConnection!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetCurrentUserTodosInput {
  """Action for the update."""
  action: WorkItemTodoUpdateAction!

  """
  Global ID of the to-do. If not present, all to-dos of the work item will be updated.
  """
  todoId: TodoID
}

input WorkItemWidgetCustomFieldFilterInputType {
  """Global ID of the custom field."""
  customFieldId: IssuablesCustomFieldID

  """Name of the custom field."""
  customFieldName: String

  """
  Global IDs of the selected options for custom fields with select type (maximum is 100 IDs).
  """
  selectedOptionIds: [IssuablesCustomFieldSelectOptionID!]

  """
  Values of the selected options for custom fields with select type (maximum is 100 values).
  """
  selectedOptionValues: [String!]
}

"""Represents a custom fields widget"""
type WorkItemWidgetCustomFields implements WorkItemWidget {
  """
  Custom field values associated to the work item. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  customFieldValues(
    """Only return values for the given custom field IDs."""
    customFieldIds: [IssuablesCustomFieldID!]
  ): [WorkItemCustomFieldValue!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetCustomFieldValueInputType {
  """Global ID of the custom field."""
  customFieldId: IssuablesCustomFieldID!

  """Global IDs of the selected options for custom fields with select type."""
  selectedOptionIds: [IssuablesCustomFieldSelectOptionID!]

  """Value for custom fields with number type."""
  numberValue: Float

  """Value for custom fields with text type."""
  textValue: String

  """Value for custom fields with date type."""
  dateValue: Date
}

interface WorkItemWidgetDefinition {
  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents an assignees widget definition"""
type WorkItemWidgetDefinitionAssignees implements WorkItemWidgetDefinition {
  """Indicates whether multiple assignees are allowed."""
  allowsMultipleAssignees: Boolean!

  """
  Indicates whether the current user can invite members to the work item's parent.
  """
  canInviteMembers: Boolean!

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a custom fields widget definition"""
type WorkItemWidgetDefinitionCustomFields implements WorkItemWidgetDefinition {
  """
  Custom field values associated to the work item. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  customFieldValues: [WorkItemCustomFieldValue!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a generic widget definition"""
type WorkItemWidgetDefinitionGeneric implements WorkItemWidgetDefinition {
  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a hierarchy widget definition"""
type WorkItemWidgetDefinitionHierarchy implements WorkItemWidgetDefinition {
  """Allowed child types for the work item type."""
  allowedChildTypes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemTypeConnection

  """Allowed parent types for the work item type."""
  allowedParentTypes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemTypeConnection

  """
  Indicates whether the hierarchy widget should auto expand the tree during move
  operation. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  autoExpandTreeOnMove: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """
  Indicates whether the hierarchy widget propagates milestone. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  propagatesMilestone: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a labels widget definition"""
type WorkItemWidgetDefinitionLabels implements WorkItemWidgetDefinition {
  """Indicates whether scoped labels are available."""
  allowsScopedLabels: Boolean!

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a progress widget definition"""
type WorkItemWidgetDefinitionProgress implements WorkItemWidgetDefinition {
  """
  Indicates whether to show the progress popover. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  showPopover: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a start and due date widget definition"""
type WorkItemWidgetDefinitionStartAndDueDate implements WorkItemWidgetDefinition {
  """
  Indicates whether the start and due date widget should roll up dates. Introduced in GitLab 18.8: **Status**: Experiment.
  """
  canRollUp: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.8.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a Status widget definition"""
type WorkItemWidgetDefinitionStatus implements WorkItemWidgetDefinition {
  """
  Allowed statuses for the work item type. Introduced in GitLab 17.8: **Status**: Experiment.
  """
  allowedStatuses: [WorkItemStatus!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.8.")

  """
  Default status for the `Closed` state for given work item type. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  defaultClosedStatus: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """
  Default status for the `Open` state for given work item type. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  defaultOpenStatus: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 18.0.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a weight widget definition"""
type WorkItemWidgetDefinitionWeight implements WorkItemWidgetDefinition {
  """
  Indicates whether editable weight is available. Deprecated in GitLab 18.11:
  All work item types with weight widget now support editing.
  """
  editable: Boolean! @deprecated(reason: "All work item types with weight widget now support editing. Deprecated in GitLab 18.11.")

  """
  Indicates whether rolled up weight is available. Deprecated in GitLab 18.11:
  All work item types with weight widget now support rolled up weight.
  """
  rollUp: Boolean! @deprecated(reason: "All work item types with weight widget now support rolled up weight. Deprecated in GitLab 18.11.")

  """Widget type."""
  type: WorkItemWidgetType!
}

"""Represents a description widget"""
type WorkItemWidgetDescription implements WorkItemWidget {
  """Description of the work item."""
  description: String

  """GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """
  Whether the description has been edited since the work item was created.
  """
  edited: Boolean!

  """Timestamp of when the work item's description was last edited."""
  lastEditedAt: Time

  """User that made the last edit to the work item's description."""
  lastEditedBy: UserCore

  """Task completion status of the work item."""
  taskCompletionStatus: TaskCompletionStatus!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetDescriptionInput {
  """Description of the work item."""
  description: String!
}

"""Represents designs widget"""
type WorkItemWidgetDesigns implements WorkItemWidget {
  """Collection of design images associated with the issue."""
  designCollection: DesignCollection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a development widget"""
type WorkItemWidgetDevelopment implements WorkItemWidget {
  """Merge requests that will close the work item when merged."""
  closingMergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemClosingMergeRequestConnection

  """Feature flags associated with the work item."""
  featureFlags(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): FeatureFlagConnection

  """
  Branches that have referred to the work item, but do not have an associated merge request.
  """
  relatedBranches(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemRelatedBranchConnection

  """
  Merge requests where the work item has been mentioned. This field can only be
  resolved for one work item in any single request. Introduced in GitLab 17.6:
  **Status**: Experiment.
  """
  relatedMergeRequests(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): MergeRequestConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """Widget type."""
  type: WorkItemWidgetType

  """
  Whether the work item will automatically be closed when a closing merge request is merged.
  """
  willAutoCloseByMergeRequest: Boolean!
}

"""Represents email participants widget"""
type WorkItemWidgetEmailParticipants implements WorkItemWidget {
  """Collection of email participants associated with the work item."""
  emailParticipants(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): EmailParticipantTypeConnection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents the error tracking widget"""
type WorkItemWidgetErrorTracking implements WorkItemWidget {
  """
  Error tracking issue id.This field can only be resolved for one work item in any single request.
  """
  identifier: BigInt

  """
  Stack trace details of the error.This field can only be resolved for one work item in any single request.
  """
  stackTrace(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): ErrorTrackingStackTraceConnection

  """
  Response status of error service.This field can only be resolved for one work item in any single request.
  """
  status: ErrorTrackingStatus

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents details about a line of code of the stack trace"""
type WorkItemWidgetErrorTrackingStackTraceContext {
  """Line of code."""
  line: String

  """Line number of code."""
  lineNumber: Int
}

"""Represents a health status widget"""
type WorkItemWidgetHealthStatus implements WorkItemWidget {
  """Health status of the work item."""
  healthStatus: HealthStatus

  """
  Rolled up health status of the work item. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  rolledUpHealthStatus: [WorkItemWidgetHealthStatusCount!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents work item counts for the health status"""
type WorkItemWidgetHealthStatusCount {
  """Number of work items with the health status."""
  count: Int!

  """Health status of the work items."""
  healthStatus: HealthStatus!
}

input WorkItemWidgetHealthStatusInput {
  """Health status to be assigned to the work item."""
  healthStatus: HealthStatus
}

"""Represents a hierarchy widget"""
type WorkItemWidgetHierarchy implements WorkItemWidget {
  """Ancestors (parents) of the work item."""
  ancestors(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection

  """Child work items."""
  children(
    """
    Current state of the child work items. Returns all states when omitted.
    """
    state: WorkItemState

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemConnection

  """
  Depth limit reached by allowed work item type. Introduced in GitLab 17.4: **Status**: Experiment.
  """
  depthLimitReachedByType: [WorkItemTypeDepthLimitReachedByType!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.4.")

  """Indicates if the work item has children."""
  hasChildren: Boolean!

  """Indicates if the work item has a parent."""
  hasParent: Boolean!

  """Parent work item."""
  parent: WorkItem

  """
  Counts of descendant work items by work item type and state. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  rolledUpCountsByType: [WorkItemTypeCountsByState!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetHierarchyCreateInput {
  """Global ID of the parent work item."""
  parentId: WorkItemID
}

input WorkItemWidgetHierarchyUpdateInput {
  """ID of the work item to be switched with."""
  adjacentWorkItemId: WorkItemID

  """Global IDs of children work items."""
  childrenIds: [WorkItemID!]

  """
  Global ID of the parent work item. Use `null` to remove the association.
  """
  parentId: WorkItemID

  """Type of switch. Valid values are `BEFORE` or `AFTER`."""
  relativePosition: RelativePositionType
}

"""Represents an iteration widget"""
type WorkItemWidgetIteration implements WorkItemWidget {
  """Iteration of the work item."""
  iteration: Iteration

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetIterationInput {
  """Iteration to assign to the work item."""
  iterationId: IterationID
}

"""Represents the labels widget"""
type WorkItemWidgetLabels implements WorkItemWidget {
  """
  Indicates whether a scoped label is allowed. Deprecated in GitLab 16.7: Field
  moved to workItemType widget definition interface.
  """
  allowsScopedLabels: Boolean @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `WorkItemWidgetDefinitionLabels.allowsScopedLabels`. Deprecated in GitLab 16.7.")

  """Labels assigned to the work item."""
  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

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetLabelsCreateInput {
  """IDs of labels to be added to the work item."""
  labelIds: [LabelID!]!
}

input WorkItemWidgetLabelsUpdateInput {
  """Global IDs of labels to be added to the work item."""
  addLabelIds: [LabelID!]

  """Global IDs of labels to be removed from the work item."""
  removeLabelIds: [LabelID!]
}

"""Represents the linked items widget"""
type WorkItemWidgetLinkedItems implements WorkItemWidget {
  """Indicates the work item is blocked."""
  blocked: Boolean

  """Count of items blocking the work item."""
  blockedByCount: Int

  """Count of items the work item is blocking."""
  blockingCount: Int

  """
  Linked items for the work item. Introduced in GitLab 16.3: **Status**: Experiment.
  """
  linkedItems(
    """
    Filter by link type. Supported values: RELATED, BLOCKED_BY, and BLOCKS. Returns all types if omitted.
    """
    filter: WorkItemRelatedLinkType

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): LinkedWorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.")

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetLinkedItemsCreateInput {
  """Type of link. Defaults to `RELATED`."""
  linkType: WorkItemRelatedLinkType

  """
  Global IDs of the items to link. Maximum number of IDs you can provide: 10.
  """
  workItemsIds: [WorkItemID!]!
}

"""Represents the linked resources widget"""
type WorkItemWidgetLinkedResources implements WorkItemWidget {
  """Resources for the work item."""
  linkedResources(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkItemLinkedResourceConnection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a milestone widget"""
type WorkItemWidgetMilestone implements WorkItemWidget {
  """Milestone of the work item."""
  milestone: Milestone

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetMilestoneInput {
  """Milestone to assign to the work item."""
  milestoneId: MilestoneID
}

"""Represents a notes widget"""
type WorkItemWidgetNotes implements WorkItemWidget {
  """Discussion lock attribute of the work item."""
  discussionLocked: Boolean

  """Discussions on this work item."""
  discussions(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_NOTES

    """Sort order for the discussions."""
    sort: WorkItemDiscussionsSort = CREATED_ASC

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """Returns the first _n_ elements from the list."""
    first: Int
  ): DiscussionConnection

  """Notes on this work item."""
  notes(
    """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY."""
    filter: NotesFilterType = ALL_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!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetNotesInput {
  """Discussion lock attribute for notes widget of the work item."""
  discussionLocked: Boolean!
}

"""Represents the notifications widget"""
type WorkItemWidgetNotifications implements WorkItemWidget {
  """
  Whether the current user is subscribed to notifications on the work item.
  """
  subscribed: Boolean!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetNotificationsUpdateInput {
  """Desired state of the subscription."""
  subscribed: Boolean!
}

"""Represents a participants widget"""
type WorkItemWidgetParticipants implements WorkItemWidget {
  """Participants in the work item."""
  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
  ): UserCoreConnection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a progress widget"""
type WorkItemWidgetProgress implements WorkItemWidget {
  """Current value of the work item."""
  currentValue: Int

  """End value of the work item."""
  endValue: Int

  """Progress of the work item."""
  progress: Int

  """Start value of the work item."""
  startValue: Int

  """Widget type."""
  type: WorkItemWidgetType

  """Timestamp of last progress update."""
  updatedAt: Time
}

input WorkItemWidgetProgressInput {
  """Current progress value of the work item."""
  currentValue: Int!

  """Start value of the work item."""
  startValue: Int

  """End value of the work item."""
  endValue: Int
}

"""Represents a legacy requirement widget"""
type WorkItemWidgetRequirementLegacy implements WorkItemWidget {
  """
  Legacy requirement IID associated with the work item. Deprecated in GitLab 15.9: Use Work Item IID instead.
  """
  legacyIid: Int @deprecated(reason: "Use Work Item IID instead. Deprecated in GitLab 15.9.")

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a start and due date widget"""
type WorkItemWidgetStartAndDueDate implements WorkItemWidget {
  """Due date of the work item."""
  dueDate: Date

  """Indicates which milestone sources the rolled up due date."""
  dueDateSourcingMilestone: Milestone

  """Indicates which work_item sources the rolled up due date."""
  dueDateSourcingWorkItem: WorkItem

  """Indicates if the work item is using fixed dates."""
  isFixed: Boolean!

  """Indicates if the work item can use rolled up dates."""
  rollUp: Boolean!

  """Start date of the work item."""
  startDate: Date

  """Indicates which milestone sources the rolled up start date."""
  startDateSourcingMilestone: Milestone

  """Indicates which work_item sources the rolled up start date."""
  startDateSourcingWorkItem: WorkItem

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetStartAndDueDateUpdateInput {
  """Due date for the work item."""
  dueDate: Date

  """Start date for the work item."""
  startDate: Date

  """Indicates if the work item is using fixed dates."""
  isFixed: Boolean
}

"""Represents status widget"""
type WorkItemWidgetStatus implements WorkItemWidget {
  """
  Status assigned to work item. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  status: WorkItemStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetStatusFilterInput {
  """Global ID of the status."""
  id: WorkItemsStatusesStatusID

  """Name of the status."""
  name: String
}

input WorkItemWidgetStatusInput {
  """Global ID of the status. Mutually exclusive with `name`."""
  status: WorkItemsStatusesStatusID

  """
  Name of the status. Resolved case-insensitively against the work item's status
  lifecycle. Mutually exclusive with `status`.
  """
  name: String
}

"""Represents a test reports widget"""
type WorkItemWidgetTestReports implements WorkItemWidget {
  """Test reports of the work item."""
  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
  ): TestReportConnection

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents the time tracking widget on the work item"""
type WorkItemWidgetTimeTracking implements WorkItemWidget {
  """Human-readable attributes of the work item."""
  humanReadableAttributes: WorkItemWidgetTimeTrackingHumanReadableAttributes

  """Time estimate of the work item."""
  timeEstimate: Int

  """Timelogs on the work item."""
  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

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): WorkItemTimelogConnection

  """Total time (in seconds) reported as spent on the work item."""
  totalTimeSpent: Int

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a time tracking human readable attributes"""
type WorkItemWidgetTimeTrackingHumanReadableAttributes {
  """Human-readable time estimate of the work item."""
  timeEstimate: String

  """Human-readable total time reported as spent on the work item."""
  totalTimeSpent: String
}

input WorkItemWidgetTimeTrackingInput {
  """
  Time estimate for the work item in human readable format. For example: 1h 30m.
  """
  timeEstimate: String

  """Timelog data for time spent on the work item."""
  timelog: WorkItemWidgetTimeTrackingTimelogInput
}

input WorkItemWidgetTimeTrackingTimelogInput {
  """Amount of time spent in human readable format. For example: 1h 30m."""
  timeSpent: String!

  """
  Timestamp of when the time tracked was spent at, if not provided would be set to current timestamp.
  """
  spentAt: Time

  """Summary of how the time was spent."""
  summary: String
}

"""Type of a work item widget"""
enum WorkItemWidgetType {
  """Agent Plan widget."""
  AGENT_PLAN

  """Ai Session widget."""
  AI_SESSION

  """Assignees widget."""
  ASSIGNEES

  """Award Emoji widget."""
  AWARD_EMOJI

  """Crm Contacts widget."""
  CRM_CONTACTS

  """Current User Todos widget."""
  CURRENT_USER_TODOS

  """Custom Fields widget."""
  CUSTOM_FIELDS

  """Description widget."""
  DESCRIPTION

  """Designs widget."""
  DESIGNS

  """Development widget."""
  DEVELOPMENT

  """Email Participants widget."""
  EMAIL_PARTICIPANTS

  """Error Tracking widget."""
  ERROR_TRACKING

  """Health Status widget."""
  HEALTH_STATUS

  """Hierarchy widget."""
  HIERARCHY

  """Iteration widget."""
  ITERATION

  """Labels widget."""
  LABELS

  """Linked Items widget."""
  LINKED_ITEMS

  """Milestone widget."""
  MILESTONE

  """Notes widget."""
  NOTES

  """Notifications widget."""
  NOTIFICATIONS

  """Participants widget."""
  PARTICIPANTS

  """Start And Due Date widget."""
  START_AND_DUE_DATE

  """Time Tracking widget."""
  TIME_TRACKING

  """Vulnerabilities widget."""
  VULNERABILITIES

  """Linked Resources widget."""
  LINKED_RESOURCES

  """Weight widget."""
  WEIGHT

  """Status widget."""
  STATUS

  """Requirement Legacy widget."""
  REQUIREMENT_LEGACY

  """Verification Status widget."""
  VERIFICATION_STATUS

  """Test Reports widget."""
  TEST_REPORTS

  """Progress widget."""
  PROGRESS

  """Color widget."""
  COLOR
}

"""Represents a verification status widget"""
type WorkItemWidgetVerificationStatus implements WorkItemWidget {
  """Widget type."""
  type: WorkItemWidgetType

  """
  Verification status of the work item. Introduced in GitLab 15.5: **Status**: Experiment.
  """
  verificationStatus: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.5.")
}

"""Represents a vulnerabilities widget"""
type WorkItemWidgetVulnerabilities implements WorkItemWidget {
  """
  Related vulnerabilities of the work item. Introduced in GitLab 17.10: **Status**: Experiment.
  """
  relatedVulnerabilities(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): CountableVulnerabilityConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.10.")

  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents a weight widget"""
type WorkItemWidgetWeight implements WorkItemWidget {
  """
  Rolled up weight from closed descendant work items. Introduced in GitLab 17.3: **Status**: Experiment.
  """
  rolledUpCompletedWeight: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.3.")

  """
  Rolled up weight from descendant work items. Introduced in GitLab 17.2: **Status**: Experiment.
  """
  rolledUpWeight: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.2.")

  """Widget type."""
  type: WorkItemWidgetType

  """Weight of the work item."""
  weight: Int

  """
  Weight widget definition. Deprecated in GitLab 18.11: All work item types with
  weight widget now support editing and rolled up weight.
  """
  widgetDefinition: WorkItemWidgetDefinitionWeight @deprecated(reason: "All work item types with weight widget now support editing and rolled up weight. Deprecated in GitLab 18.11.")
}

input WorkItemWidgetWeightInput {
  """Weight of the work item."""
  weight: Int
}

"""Represents a remote development workspace"""
type Workspace {
  """Actual state of the workspace."""
  actualState: String!

  """
  Timestamp of the last update to the actual state. Introduced in GitLab 17.11: **Status**: Experiment.
  """
  actualStateUpdatedAt: Time! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.11.")

  """Kubernetes agent associated with the workspace."""
  clusterAgent: ClusterAgent!

  """Timestamp of when the workspace was created."""
  createdAt: Time!

  """Version of the deployment resource for the workspace."""
  deploymentResourceVersion: Int

  """Desired state of the workspace."""
  desiredState: String!

  """Timestamp of the last update to the desired state."""
  desiredStateUpdatedAt: Time!

  """Source YAML of the devfile used to configure the workspace."""
  devfile: String!

  """Path to the devfile used to configure the workspace."""
  devfilePath: String

  """
  Git reference that contains the devfile used to configure the workspace.
  Deprecated in GitLab 17.8: Field is renamed to project_ref.
  """
  devfileRef: String! @deprecated(reason: "Field is renamed to project_ref. Deprecated in GitLab 17.8.")

  """
  Web URL of the devfile used to configure the workspace. Deprecated in GitLab 17.8: Field is not used.
  """
  devfileWebUrl: String @deprecated(reason: "Field is not used. Deprecated in GitLab 17.8.")

  """
  Editor used to configure the workspace. Must match a configured template. Deprecated in GitLab 17.5: Field is not used.
  """
  editor: String! @deprecated(reason: "Field is not used. Deprecated in GitLab 17.5.")

  """
  Forces all resources to be included for the workspaceduring the next
  reconciliation with the agent. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  forceIncludeAllResources: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")

  """Global ID of the workspace."""
  id: RemoteDevelopmentWorkspaceID!

  """
  Number of hours until the workspace automatically terminates. Deprecated in GitLab 17.9: Field is not used.
  """
  maxHoursBeforeTermination: Int! @deprecated(reason: "Field is not used. Deprecated in GitLab 17.9.")

  """Name of the workspace in Kubernetes."""
  name: String!

  """Namespace of the workspace in Kubernetes."""
  namespace: String!

  """Processed YAML of the devfile used to configure the workspace."""
  processedDevfile: String!

  """ID of the project that contains the devfile for the workspace."""
  projectId: ID!

  """
  Git reference that contains the devfile used to configure the workspace, and that will be cloned into the workspace
  """
  projectRef: String!

  """
  Timestamp of the last response sent to the GitLab agent for Kubernetes for the workspace.
  """
  respondedToAgentAt: Time

  """Timestamp of the last update to any mutable workspace property."""
  updatedAt: Time!

  """URL of the workspace."""
  url: String!

  """Owner of the workspace."""
  user: UserCore!

  """
  User defined variables associated with the workspace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  workspaceVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    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
  ): WorkspaceVariableConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  Version of the associated WorkspacesAgentConfig for the workspace. Introduced in GitLab 17.6: **Status**: Experiment.
  """
  workspacesAgentConfigVersion: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.6.")
}

"""The connection type for Workspace."""
type WorkspaceConnection {
  """A list of edges."""
  edges: [WorkspaceEdge]

  """A list of nodes."""
  nodes: [Workspace]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of WorkspaceCreate"""
input WorkspaceCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """
  GlobalID of the cluster agent the created workspace will be associated with.
  """
  clusterAgentId: ClustersAgentID!

  """Desired state of the created workspace."""
  desiredState: String!

  """
  Editor to inject into the created workspace. Must match a configured template.
  Deprecated in GitLab 17.5: Argument is not used.
  """
  editor: String

  """
  Maximum hours the workspace can exist before it is automatically terminated. Deprecated in GitLab 17.9: Field is not used.
  """
  maxHoursBeforeTermination: Int

  """
  ID of the project that will provide the Devfile for the created workspace.
  """
  projectId: ProjectID!

  """
  Project repo git ref containing the devfile used to configure the workspace.
  Deprecated in GitLab 17.8: Argument is renamed to project_ref.
  """
  devfileRef: String

  """Project repo git ref."""
  projectRef: String

  """
  Project path containing the devfile used to configure the workspace. If not provided, the GitLab default devfile is used.
  """
  devfilePath: String = null

  """
  Variables to inject into the workspace. Deprecated in GitLab 18.0: Argument is renamed to workspace_variables.
  """
  variables: [WorkspaceVariableInput!] = []

  """
  Variables to inject into the workspace. Introduced in GitLab 18.0: **Status**: Experiment.
  """
  workspaceVariables: [WorkspaceVariableInput!] = []
}

"""Autogenerated return type of WorkspaceCreate."""
type WorkspaceCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created workspace."""
  workspace: Workspace
}

"""An edge in a connection."""
type WorkspaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Workspace
}

"""Resource specifications of the workspace container."""
type WorkspaceResources {
  """Limits for the requested container resources of a workspace."""
  limits: ResourceQuotas

  """Requested resources for the container of a workspace."""
  requests: ResourceQuotas
}

"""Represents a workspaces agent config"""
type WorkspacesAgentConfig {
  """Allow privilege escalation."""
  allowPrivilegeEscalation: Boolean!

  """Annotations to apply to Kubernetes objects."""
  annotations: [KubernetesAnnotation!]!

  """Cluster agent that the workspaces agent config belongs to."""
  clusterAgent: ClusterAgent!

  """Timestamp of when the workspaces agent config was created."""
  createdAt: Time!

  """
  Default cpu and memory resources of the workspace container. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  defaultResourcesPerWorkspaceContainer: WorkspaceResources! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Default Kubernetes RuntimeClass."""
  defaultRuntimeClass: String!

  """DNS zone where workspaces are available."""
  dnsZone: String!

  """Indicates whether remote development is enabled for the GitLab agent."""
  enabled: Boolean!

  """Namespace where gitlab-workspaces-proxy is installed."""
  gitlabWorkspacesProxyNamespace: String!

  """Global ID of the workspaces agent config."""
  id: RemoteDevelopmentWorkspacesAgentConfigID!

  """
  Kubernetes secrets to pull private images for a workspace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  imagePullSecrets: [ImagePullSecrets!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Labels to apply to Kubernetes objects."""
  labels: [KubernetesLabel!]!

  """
  Maximum cpu and memory resources of the workspace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  maxResourcesPerWorkspace: WorkspaceResources! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """
  IP CIDR range specifications for egress destinations from a workspace. Introduced in GitLab 17.9: **Status**: Experiment.
  """
  networkPolicyEgress: [NetworkPolicyEgress!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.9.")

  """Whether the network policy of the workspaces agent config is enabled."""
  networkPolicyEnabled: Boolean!

  """ID of the project that the workspaces agent config belongs to."""
  projectId: ID

  """
  Timestamp of the last update to any mutable workspaces agent config property.
  """
  updatedAt: Time!

  """Indicates whether to use user namespaces in Kubernetes."""
  useKubernetesUserNamespaces: Boolean!

  """Maximum number of workspaces per user."""
  workspacesPerUserQuota: Int!

  """Maximum number of workspaces for the GitLab agent."""
  workspacesQuota: Int!
}

"""Autogenerated input type of WorkspaceUpdate"""
input WorkspaceUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the workspace."""
  id: RemoteDevelopmentWorkspaceID!

  """Desired state of the created workspace."""
  desiredState: String!
}

"""Autogenerated return type of WorkspaceUpdate."""
type WorkspaceUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during the mutation."""
  errors: [String!]!

  """Created workspace."""
  workspace: Workspace
}

"""Represents a remote development workspace variable"""
type WorkspaceVariable {
  """Timestamp of when the workspace variable was created."""
  createdAt: Time!

  """Global ID of the workspace variable."""
  id: RemoteDevelopmentWorkspaceVariableID!

  """Name of the workspace variable."""
  key: String

  """Timestamp of when the workspace variable was updated."""
  updatedAt: Time!

  """Value of the workspace variable."""
  value: String

  """Type of the workspace variable."""
  variableType: WorkspaceVariableType
}

"""The connection type for WorkspaceVariable."""
type WorkspaceVariableConnection {
  """A list of edges."""
  edges: [WorkspaceVariableEdge]

  """A list of nodes."""
  nodes: [WorkspaceVariable]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type WorkspaceVariableEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: WorkspaceVariable
}

"""Attributes for defining a variable to be injected in a workspace."""
input WorkspaceVariableInput {
  """Name of the workspace variable."""
  key: String!

  """
  Type of the variable to be injected in a workspace. Deprecated in GitLab 17.9: Use `variableType` instead.
  """
  type: WorkspaceVariableInputType = ENVIRONMENT

  """Value of the variable."""
  value: String!

  """Type of the variable to be injected in a workspace."""
  variableType: WorkspaceVariableType = ENVIRONMENT
}

"""Enum for the type of the variable to be injected in a workspace."""
enum WorkspaceVariableInputType {
  """Name type."""
  ENVIRONMENT
}

"""Enum for the type of the variable injected in a workspace."""
enum WorkspaceVariableType {
  """Environment type."""
  ENVIRONMENT
}

"""Represents an X.509 certificate."""
type X509Certificate {
  """Indicates if the certificate is good or revoked."""
  certificateStatus: String!

  """Timestamp of when the certificate was saved."""
  createdAt: Time!

  """Email associated with the certificate."""
  email: String!

  """ID of the certificate."""
  id: ID!

  """Serial number of the certificate."""
  serialNumber: String!

  """Subject of the certificate."""
  subject: String!

  """Subject key identifier of the certificate."""
  subjectKeyIdentifier: String!

  """Timestamp of when the certificate was last updated."""
  updatedAt: Time!

  """Issuer of the certificate."""
  x509Issuer: X509Issuer!
}

"""Issuer of an X.509 certificate."""
type X509Issuer {
  """Timestamp of when the issuer was created."""
  createdAt: Time

  """Certificate revokation list of the issuer."""
  crlUrl: String

  """ID of the issuer."""
  id: ID

  """Subject of the issuer."""
  subject: String

  """Subject key identifier of the issuer."""
  subjectKeyIdentifier: String

  """Timestamp of when the issuer was last updated."""
  updatedAt: Time
}

"""X.509 signature for a signed commit"""
type X509Signature implements CommitSignature {
  """SHA of the associated commit."""
  commitSha: String

  """Project of the associated commit."""
  project: Project

  """User associated with the key."""
  user: UserCore

  """Indicates verification status of the associated key or certificate."""
  verificationStatus: VerificationStatus

  """Certificate used for the signature."""
  x509Certificate: X509Certificate
}

