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

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

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

  """Minimal access."""
  MINIMAL_ACCESS

  """Guest access."""
  GUEST

  """Reporter access."""
  REPORTER

  """Developer access."""
  DEVELOPER

  """Maintainer access."""
  MAINTAINER

  """Owner access."""
  OWNER
}

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

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

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

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

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

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

  """Delete jobs matching user in the context metadata."""
  user: 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 subscription_plan in the context metadata."""
  subscriptionPlan: 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 execution of 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 token statuses"""
enum AgentTokenStatus {
  """Active agent token."""
  ACTIVE

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

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

  """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 this noteable."""
  discussions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

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

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

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

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

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

  """Issue attached to the alert."""
  issue: Issue

  """
  Internal ID of the GitLab issue attached to the alert. Deprecated in 13.10: Use issue field.
  """
  issueIid: ID @deprecated(reason: "Use issue field. Deprecated in 13.10.")

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

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

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

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

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

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

  """Alert condition for Prometheus."""
  prometheusAlert: PrometheusAlert

  """Runbook for the alert as defined in alert details."""
  runbook: String

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

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

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

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

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

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

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

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

    """
    Returns the elements in the list that come before the 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
}

"""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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 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 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.
  """
  apiUrl: String

  """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.
  """
  apiUrl: String

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

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

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

"""
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.
  """
  apiUrl: String

  """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 {
  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

"""Autogenerated input type of AlertTodoCreate"""
input AlertTodoCreateInput {
  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue

  """To-do item after mutation."""
  todo: Todo
}

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

An example `AnalyticsDevopsAdoptionEnabledNamespaceID` is: `"gid://gitlab/Analytics::DevopsAdoption::EnabledNamespace/1"`.
"""
scalar AnalyticsDevopsAdoptionEnabledNamespaceID

"""Data associated with configuring API fuzzing scans in GitLab CI"""
type ApiFuzzingCiConfiguration {
  """All available scan modes."""
  scanModes: [ApiFuzzingScanMode!]

  """All default scan profiles."""
  scanProfiles: [ApiFuzzingScanProfile!]
}

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

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

  """
  File path or URL to the file that defines the API surface for scanning. Must
  be in the format specified by the `scanMode` argument.
  """
  apiSpecificationFile: String!

  """
  CI variable containing the password for authenticating with the target API.
  """
  authPassword: String

  """
  CI variable containing the username for authenticating with the target API.
  """
  authUsername: String

  """Mode for API fuzzing scans."""
  scanMode: ApiFuzzingScanMode!

  """Name of a default profile to use for scanning. Ex: Quick-10."""
  scanProfile: String

  """URL for the target of API fuzzing scans."""
  target: String!
}

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

  """
  A YAML snippet that can be inserted into the project's `.gitlab-ci.yml` to set
  up API fuzzing scans. Deprecated in 14.6: The configuration snippet is now
  generated client-side.
  """
  configurationYaml: String @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 14.6.")

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

  """
  Location at which the project's `.gitlab-ci.yml` file can be edited in the
  browser. Deprecated in 14.6: The configuration snippet is now generated client-side.
  """
  gitlabCiYamlEditPath: String @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 14.6.")
}

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

"""Describes a rule for who can approve merge requests."""
type ApprovalRule {
  """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

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

  """Name of the rule."""
  name: String

  """Indicates if the rule was overridden for the merge request."""
  overridden: Boolean

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

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

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

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

An example `AuditEventsExternalAuditEventDestinationID` is: `"gid://gitlab/AuditEvents::ExternalAuditEventDestination/1"`.
"""
scalar AuditEventsExternalAuditEventDestinationID

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

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

  """Errors encountered during execution of 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 execution of 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!

  """Header value."""
  value: String!
}

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

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

  """Updates header."""
  header: AuditEventStreamingHeader
}

"""
Represents a HTTP header key/value that belongs to an audit streaming destination.
"""
type AuditEventStreamingHeader {
  """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
}

"""User availability status"""
enum AvailabilityEnum {
  """Not Set"""
  NOT_SET

  """Busy"""
  BUSY
}

"""
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 this emoji."""
  unicodeVersion: String!

  """User who awarded the emoji."""
  user: UserCore!
}

"""Autogenerated input type of AwardEmojiAdd"""
input AwardEmojiAddInput {
  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!

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

"""Autogenerated return type of AwardEmojiAdd"""
type AwardEmojiAddPayload {
  """Award emoji after mutation."""
  awardEmoji: AwardEmoji

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

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

"""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 {
  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!

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

"""Autogenerated return type of AwardEmojiRemove"""
type AwardEmojiRemovePayload {
  """Award emoji after mutation."""
  awardEmoji: AwardEmoji

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

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

"""Autogenerated input type of AwardEmojiToggle"""
input AwardEmojiToggleInput {
  """Global ID of the awardable resource."""
  awardableId: AwardableID!

  """Emoji name."""
  name: String!

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

"""Autogenerated return type of AwardEmojiToggle"""
type AwardEmojiTogglePayload {
  """Award emoji after mutation."""
  awardEmoji: AwardEmoji

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

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

  """
  Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji.
  """
  toggledOn: Boolean!
}

type 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 Blob implements Entry {
  """Flat path of the entry."""
  flatPath: String!

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

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

  """Blob mode in numeric format."""
  mode: String

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

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

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

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

  """Web path of the blob."""
  webPath: String

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

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

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

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

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

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

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

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

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

    """
    Returns the elements in the list that come before the 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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """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 award emojis 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 this epic."""
  blockedByCount: Int

  """Epics blocking this 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 this 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 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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """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. Returns `null` if `epic_color_highlight` feature flag is disabled.
  """
  color: String

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

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

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

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

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

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

  """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 direct issues."""
  hasIssues: Boolean!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): 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. Returns `null` if `epic_color_highlight` feature flag is disabled.
  """
  textColor: String

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

  """The GitLab Flavored Markdown 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!
}

"""The connection type for BoardEpic."""
type BoardEpicConnection {
  """Total count of collection."""
  count: 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 execution of 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 milestone ID wildcard."""
  milestoneWildcardId: MilestoneWildcardId

  """Filter by epic ID. Incompatible with epicWildcardId."""
  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

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

  """Filter by assignee wildcard. Incompatible with assigneeUsername."""
  assigneeWildcardId: AssigneeWildcardId

  """Filter by confidentiality."""
  confidential: Boolean

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

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

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

  """Indicates if the list is collapsed for this 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

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

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

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

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

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

"""Autogenerated input type of BoardListCreate"""
input BoardListCreateInput {
  """Create the backlog list."""
  backlog: Boolean

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

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

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

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

  """Global ID of an existing iteration."""
  iterationId: IterationID

  """Global ID of an existing user."""
  assigneeId: UserID
}

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

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

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

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

  """Name of the branch."""
  name: 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!

  """Details about who can merge when this 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

  """Details about who can push when this 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
}

"""List of branch rules for a project, grouped by branch name."""
type BranchRule {
  """Branch protections configured for this branch rule."""
  branchProtection: BranchProtection!

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

  """Branch name, with wildcards, for the branch rules."""
  name: String!

  """Timestamp of when the branch rule was last updated."""
  updatedAt: Time!
}

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

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

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

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

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

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

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

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

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

"""Autogenerated input type of CiCdSettingsUpdate"""
input CiCdSettingsUpdateInput {
  """Full Path of the project the settings belong to."""
  fullPath: ID!

  """Indicates if the latest artifact should be kept for this project."""
  keepLatestArtifact: Boolean

  """
  Indicates CI job tokens generated in this project have restricted access to resources.
  """
  jobTokenScopeEnabled: Boolean

  """Indicates if merge pipelines are enabled for the project."""
  mergePipelinesEnabled: Boolean

  """Indicates if merge trains are enabled for the project."""
  mergeTrainsEnabled: Boolean

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

"""Autogenerated return type of CiCdSettingsUpdate"""
type CiCdSettingsUpdatePayload {
  """CI/CD settings after mutation."""
  ciCdSettings: ProjectCiCdSetting!

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

  """Errors encountered during execution of the mutation."""
  errors: [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 CiConfigInclude {
  """
  File blob location. It can be masked if it contains masked variables, e.g., "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, e.g., ".gitlab/ci/build-images.gitlab-ci.yml".
  """
  location: String

  """
  File raw location. It can be masked if it contains masked variables, e.g., "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
}

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

"""Values for YAML processor result"""
enum CiConfigStatus {
  """Configuration file is valid."""
  VALID

  """Configuration file is not valid."""
  INVALID
}

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

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 variables for a group."""
type CiGroupVariable implements CiVariable {
  """Scope defining the environments that can use the variable."""
  environmentScope: String

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

"""CI/CD variables for a GitLab instance."""
type CiInstanceVariable implements CiVariable {
  """
  Scope defining the environments that can use the variable. Deprecated in 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 15.3.")

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

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

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

  """Indicates the job can be played."""
  playable: Boolean!

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

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

  """Indicates the job can be retried."""
  retryable: 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!

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

  """Whether the job was triggered."""
  triggered: Boolean

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

  """Web path of the job."""
  webPath: String
}

type CiJobArtifact {
  """URL for downloading the artifact's file."""
  downloadPath: String

  """Expiry date of the artifact."""
  expireAt: Time

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

"""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 {
  """
  Limited count of collection. Returns limit + 1 for counts greater than the limit.
  """
  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 CiJobKind {
  """Standard CI job."""
  BUILD

  """Bridge CI job connecting a parent and child pipeline."""
  BRIDGE
}

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 pending."""
  PENDING

  """A job that is running."""
  RUNNING

  """A job that is success."""
  SUCCESS

  """A job that is failed."""
  FAILED

  """A job that is canceled."""
  CANCELED

  """A job that is skipped."""
  SKIPPED

  """A job that is manual."""
  MANUAL

  """A job that is scheduled."""
  SCHEDULED
}

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

"""Autogenerated return type of CiJobTokenScopeAddProject"""
type CiJobTokenScopeAddProjectPayload {
  """CI job token's scope of access."""
  ciJobTokenScope: CiJobTokenScopeType

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

  """Errors encountered during execution of 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!
}

"""Autogenerated return type of CiJobTokenScopeRemoveProject"""
type CiJobTokenScopeRemoveProjectPayload {
  """CI job token's scope of access."""
  ciJobTokenScope: CiJobTokenScopeType

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

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

type CiJobTokenScopeType {
  """
  Allow list of projects that can be accessed by CI Job tokens created by this project.
  """
  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!
}

"""CI/CD variables given to a manual job."""
type CiManualVariable implements CiVariable {
  """
  Scope defining the environments that can use the variable. Deprecated in 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 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 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

  """CI/CD minutes usage data for projects in the namespace."""
  projects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

  """
  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 CI/CD minutes used by the project in the month."""
  minutes: Int

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

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

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

An example `CiPipelineID` is: `"gid://gitlab/Ci::Pipeline/1"`.
"""
scalar CiPipelineID

"""CI/CD variables for a project."""
type CiProjectVariable implements CiVariable {
  """Scope defining the environments that can use the variable."""
  environmentScope: String

  """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 14.8: Use paused.
  """
  active: Boolean! @deprecated(reason: "Use paused. Deprecated in 14.8.")

  """Admin URL of the runner. Only available for administrators."""
  adminUrl: String

  """Architecture provided by the the runner."""
  architectureName: String

  """Timestamp of last contact from this runner."""
  contactedAt: Time

  """Timestamp of creation of this runner."""
  createdAt: Time

  """Description of the runner."""
  description: String

  """Admin form URL of the runner. Only available for administrators."""
  editAdminUrl: String

  """Executor last advertised by the runner."""
  executorName: String

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

  """ID of the runner."""
  id: CiRunnerID!

  """IP address of the runner."""
  ipAddress: String

  """
  Number of jobs processed by the runner (limited to 1000, plus one to indicate that more items exist).
  """
  jobCount: Int

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

  """Indicates the runner is locked."""
  locked: Boolean

  """Runner's maintenance notes."""
  maintenanceNote: String

  """The GitLab Flavored Markdown rendering of `maintenance_note`"""
  maintenanceNoteHtml: String

  """Maximum timeout (in seconds) for jobs processed by the runner."""
  maximumTimeout: Int

  """Project that owns the runner. For project runners only."""
  ownerProject: Project

  """Indicates the runner is paused and not available to run jobs."""
  paused: Boolean!

  """Platform provided by the runner."""
  platformName: String

  """
  Private projects' "minutes cost factor" associated with the runner (GitLab.com only).
  """
  privateProjectsMinutesCostFactor: Float

  """Number of projects that the runner is associated with."""
  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!]

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

    """
    Returns the elements in the list that come before the 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' "minutes cost factor" associated with the runner (GitLab.com only).
  """
  publicProjectsMinutesCostFactor: Float

  """Revision of the runner."""
  revision: 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

  """
  Availability of upgrades for the runner. Introduced in 14.10: This feature is
  in Alpha. It can be changed or removed at any time.
  """
  upgradeStatus: CiRunnerUpgradeStatus @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 14.10.")

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

  """Version of the runner."""
  version: String
}

enum CiRunnerAccessLevel {
  """A runner that is not protected."""
  NOT_PROTECTED

  """A runner that is ref protected."""
  REF_PROTECTED
}

"""The connection type for CiRunner."""
type CiRunnerConnection {
  """Total count of collection."""
  count: Int!

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

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

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

"""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 this 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 this field in the query. You can use it for projects or groups.
  """
  webUrl: String
}

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

An example `CiRunnerID` is: `"gid://gitlab/Ci::Runner/1"`.
"""
scalar CiRunnerID

"""
Values for filtering runners in namespaces. The previous type name `RunnerMembershipFilter` was deprecated in 15.4.
"""
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. Will not return
  runners if `runners_finder_all_available` feature flag is disabled. Introduced
  in 15.5: This feature is in Alpha. It can be changed or removed at any time.
  """
  ALL_AVAILABLE @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 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
}

enum CiRunnerStatus {
  """Runner that is not paused. Deprecated in 14.6: This was renamed."""
  ACTIVE @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in 14.6.")

  """Runner that is paused. Deprecated in 14.6: This was renamed."""
  PAUSED @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in 14.6.")

  """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 3 months.
  """
  OFFLINE

  """Runner that has not contacted this instance within the last 3 months."""
  STALE

  """Runner that has never contacted this 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
}

"""
Represents the Geo replication and verification state of a ci_secure_file.
"""
type CiSecureFileRegistry {
  """ID of the Ci Secure File."""
  ciSecureFileId: ID!

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

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

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

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

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

"""The connection type for CiSecureFileRegistry."""
type CiSecureFileRegistryConnection {
  """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
}

"""GitLab CI/CD configuration template."""
type CiTemplate {
  """Contents of the CI template."""
  content: String!

  """Name of the CI template."""
  name: String!
}

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

enum CiVariableType {
  """Env var type."""
  ENV_VAR

  """File type."""
  FILE
}

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!

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

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

  """Tokens associated with the cluster agent."""
  tokens(
    """Status of the token."""
    status: AgentTokenStatus

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

    """
    Returns the elements in the list that come before the 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

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

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."""
  count: 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
}

"""The connection type for ClusterAgent."""
type ClusterAgentConnection {
  """Total count of collection."""
  count: 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 execution of the mutation."""
  errors: [String!]!
}

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

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

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

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

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

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

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

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

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

An example `ClustersAgentID` is: `"gid://gitlab/Clusters::Agent/1"`.
"""
scalar ClustersAgentID

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

"""Represents a code quality degradation on the pipeline."""
type CodeQualityDegradation {
  """Description of the code quality degradation."""
  description: 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!
}

"""The connection type for CodeQualityDegradation."""
type CodeQualityDegradationConnection {
  """Total count of collection."""
  count: 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
}

"""
Color represented as a hex code or named color.

For example: "#fefefe".

"""
scalar Color

type Commit implements 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

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

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

  """Full title of the commit message."""
  fullTitle: String

  """The GitLab Flavored Markdown rendering of `full_title`"""
  fullTitleHtml: String

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

  """Raw commit message."""
  message: 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

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

    """Filter pipelines by their source."""
    source: String

    """Pipelines updated after this date."""
    updatedAfter: Time

    """Pipelines updated before this 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!

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

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

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

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

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

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

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

"""Represents a ComplianceFramework associated with a Project"""
type ComplianceFramework {
  """Hexadecimal representation of compliance framework's label color."""
  color: String!

  """Description of the compliance framework."""
  description: String!

  """Compliance framework ID."""
  id: ID!

  """Name of the compliance framework."""
  name: String!

  """
  Full path of the compliance pipeline configuration stored in a project
  repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa`
  **(ULTIMATE)**.
  """
  pipelineConfigurationFullPath: String
}

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

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

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

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

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

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

  """
  Full path of the compliance pipeline configuration stored in a project
  repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa`
  **(ULTIMATE)**.
  """
  pipelineConfigurationFullPath: String
}

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

An example `ComplianceManagementFrameworkID` is: `"gid://gitlab/ComplianceManagement::Framework/1"`.
"""
scalar ComplianceManagementFrameworkID

"""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 {
  """Filter compliance violations by project."""
  projectIds: [ProjectID!]

  """Merge requests merged before this date (inclusive)."""
  mergedBefore: Date

  """Merge requests merged after this date (inclusive)."""
  mergedAfter: Date
}

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

"""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 {
  """Full path of the project."""
  projectPath: ID!

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

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

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

"""Autogenerated input type of ConfigureDependencyScanning"""
input ConfigureDependencyScanningInput {
  """Full path of the project."""
  projectPath: ID!

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

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

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

"""Autogenerated input type of ConfigureSastIac"""
input ConfigureSastIacInput {
  """Full path of the project."""
  projectPath: ID!

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

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

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

"""Autogenerated input type of ConfigureSast"""
input ConfigureSastInput {
  """Full path of the project."""
  projectPath: ID!

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

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

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

"""Autogenerated input type of ConfigureSecretDetection"""
input ConfigureSecretDetectionInput {
  """Full path of the project."""
  projectPath: ID!

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

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

"""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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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
}

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

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

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

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

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

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

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

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

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

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

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

"""A container repository"""
type ContainerRepository {
  """Can the current user delete the container repository."""
  canDelete: Boolean!

  """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."""
  migrationState: String!

  """Name of the container repository."""
  name: String!

  """Path of the container repository."""
  path: String!

  """Project of the container registry."""
  project: Project!

  """Status of the container repository."""
  status: ContainerRepositoryStatus

  """Number of tags associated with this image."""
  tagsCount: Int!

  """Timestamp when the container repository was updated."""
  updatedAt: Time!
}

"""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 {
  """Can the current user delete the container repository."""
  canDelete: Boolean!

  """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."""
  migrationState: String!

  """Name of the container repository."""
  name: String!

  """Path of the container repository."""
  path: String!

  """Project of the container registry."""
  project: Project!

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

  """Tags of the container repository."""
  tags(
    """Sort tags by these criteria."""
    sort: ContainerRepositoryTagSort = null

    """Search by tag name."""
    name: 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 this image."""
  tagsCount: Int!

  """Timestamp when the container repository was updated."""
  updatedAt: Time!
}

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

"""Values for sorting container repositories"""
enum ContainerRepositorySort {
  """Name by ascending order."""
  NAME_ASC

  """Name by descending order."""
  NAME_DESC

  """Updated at descending order."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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
}

"""A tag from a container repository"""
type ContainerRepositoryTag {
  """Can the current user delete this tag."""
  canDelete: Boolean!

  """Timestamp when the tag was created."""
  createdAt: Time

  """Digest of the tag."""
  digest: String

  """URL of the tag."""
  location: String!

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

  """Path of the tag."""
  path: String!

  """Revision of the tag."""
  revision: String

  """Short revision of the tag."""
  shortRevision: String

  """Size of the tag."""
  totalSize: BigInt
}

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

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

"""Values for sorting tags"""
enum ContainerRepositoryTagSort {
  """Ordered by name in ascending order."""
  NAME_ASC

  """Ordered by name in descending order."""
  NAME_DESC
}

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

"""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 {
  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of 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 execution of 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 execution of 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 execution of 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 this 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 execution of the mutation."""
  errors: [String!]!
}

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

  """Created compliance framework."""
  framework: ComplianceFramework
}

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

"""Autogenerated input type of CreateDiffNote"""
input CreateDiffNoteInput {
  """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

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

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

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

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

  """Note after mutation."""
  note: Note
}

"""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. Available only when feature flag `epic_color_highlight` is
  enabled. This flag is disabled by default, because the feature is experimental
  and is subject to change without notice.
  """
  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 execution of the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of CreateImageDiffNote"""
input CreateImageDiffNoteInput {
  """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

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

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

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

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

  """Note after mutation."""
  note: Note
}

"""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."""
  epicId: EpicID

  """
  Global iteration ID. Mutually exlusive 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
}

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

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

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of CreateIteration"""
input CreateIterationInput {
  """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

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

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

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

  """Created iteration."""
  iteration: Iteration
}

"""Autogenerated input type of CreateNote"""
input CreateNoteInput {
  """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

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

  """Global ID of the discussion this 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 execution of the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note
}

"""Autogenerated input type of CreateRequirement"""
input CreateRequirementInput {
  """Title of the requirement."""
  title: String

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

  """Full project path the requirement is associated with."""
  projectPath: ID!

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

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

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

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

"""Autogenerated input type of CreateSnippet"""
input CreateSnippetInput {
  """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 execution of the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

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

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

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

  """Test case created."""
  testCase: Issue
}

"""Represents the current license"""
type CurrentLicense {
  """Date when the license was activated."""
  activatedAt: Date

  """Number of billable users on the system."""
  billableUsersCount: Int

  """Date, including grace period, 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!

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

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

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 emoji uploaded by user"""
type CustomEmoji {
  """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!
}

"""The connection type for CustomEmoji."""
type CustomEmojiConnection {
  """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 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 execution of 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 execution of 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 execution of 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 execution of the mutation."""
  errors: [String!]!

  """Organization after the mutation."""
  organization: CustomerRelationsOrganization!
}

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

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

"""Represents a DAST Profile"""
type DastProfile {
  """Associated branch."""
  branch: DastProfileBranch

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

"""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."""
  count: 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
}

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

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

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

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

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

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

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

  """
  ID of the scanner profile. Deprecated in 14.10: use `dastScannerProfile` field.
  """
  id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in 14.10.")
}

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

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

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

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

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

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

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

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

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

  """
  ID of the scanner profile. Deprecated in 14.10: use `dastScannerProfile` field.
  """
  id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in 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

  """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 method used by the scanner. Always returns `null` if `dast_api_scanner` feature flag is disabled.
  """
  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!

  """Current validation status of the site profile."""
  validationStatus: DastSiteProfileValidationStatusEnum
}

"""Input type for 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. Is not saved or updated if `dast_api_scanner` feature flag is disabled.
  """
  scanMethod: DastScanMethodType

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

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

  """
  ID of the site profile. Deprecated in 14.10: use `dastSiteProfile.id` field.
  """
  id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in 14.10.")
}

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

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

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

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

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

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

"""
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 {
  """
  Indicates the user can perform `create_on_demand_dast_scan` on this resource
  """
  createOnDemandDastScan: Boolean!
}

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

  """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. Is not saved or updated if `dast_api_scanner` feature flag is disabled.
  """
  scanMethod: DastScanMethodType

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

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

  """URLs to skip during an authenticated scan."""
  excludedUrls: [String!]
}

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

  """
  ID of the site profile. Deprecated in 14.10: use `dastSiteProfile.id` field.
  """
  id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in 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 execution of 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!
}

"""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 execution of 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 execution of 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: MetricsDashboardAnnotationID!
}

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

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

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

  """Number of matching jobs deleted."""
  deletedJobs: Int

  """Queue size after processing."""
  queueSize: Int
}

"""Represents metadata associated with a dependency link"""
union DependencyLinkMetadata = NugetDependencyLinkMetadata

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

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

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
}

"""Group-level Dependency Proxy settings"""
type DependencyProxySetting {
  """Indicates whether the dependency proxy is enabled for the group."""
  enabled: Boolean!
}

"""The deployment of an environment"""
type Deployment {
  """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: ID

  """Pipeline job of the deployment."""
  job: CiJob

  """Git-Ref that the deployment ran on."""
  ref: 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

  """User who executed the deployment."""
  triggerer: UserCore

  """When the deployment record was updated."""
  updatedAt: Time
}

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

"""The details of the deployment"""
type DeploymentDetails {
  """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: ID

  """Pipeline job of the deployment."""
  job: CiJob

  """Git-Ref that the deployment ran on."""
  ref: 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."""
  tags: [DeploymentTag!]

  """User who executed the deployment."""
  triggerer: UserCore

  """When the deployment record was updated."""
  updatedAt: Time
}

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

"""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 this git tag."""
  name: String

  """Path for this tag."""
  path: String
}

"""All environment deployment tiers."""
enum DeploymentTier {
  """Production."""
  PRODUCTION

  """Staging."""
  STAGING

  """Testing."""
  TESTING

  """Development."""
  DEVELOPMENT

  """Other."""
  OTHER
}

"""A single design"""
type Design implements CurrentUserTodos & DesignFields & NoteableInterface & Todoable {
  """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!

  """Diff refs for this design."""
  diffRefs: DiffRefs!

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

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

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

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

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

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: String!

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

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

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

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

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

  """Total count of user-created notes for this 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 this design."""
  diffRefs: DiffRefs!

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

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: String!

  """ID of this 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 this design."""
  notesCount: Int!

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

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

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

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

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

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

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

"""A collection of designs"""
type DesignCollection {
  """Copy state of the design collection."""
  copyState: DesignCollectionCopyState

  """Find a specific design."""
  design(
    """Find a design by its 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 this 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 this design."""
  diffRefs: DiffRefs!

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

  """Filename of the design."""
  filename: String!

  """Full path to the design file."""
  fullPath: String!

  """ID of this 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 this 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 this version."""
    id: DesignManagementDesignAtVersionID!
  ): DesignAtVersion

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

"""Autogenerated input type of DesignManagementDelete"""
input DesignManagementDeleteInput {
  """Project where the issue is to upload designs for."""
  projectPath: ID!

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

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

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

"""Autogenerated input type of DesignManagementUpload"""
input DesignManagementUploadInput {
  """Project where the issue is to upload designs for."""
  projectPath: ID!

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

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

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

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

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

  """Note after mutation."""
  note: Note
}

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

  """Snippet after mutation."""
  snippet: Snippet
}

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

  """Can not merge the source into the target branch, potential conflict."""
  BROKEN_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 is blocked by another merge request."""
  BLOCKED_STATUS

  """There are denied policies for the merge request."""
  POLICIES_DENIED
}

type DetailedStatus {
  """
  Action information for the status. This includes method, button title, icon, path, and title.
  """
  action: StatusAction

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

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

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

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

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

  """ID for a detailed status."""
  id: String!

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

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

  """Tooltip associated with the status."""
  tooltip: String
}

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

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 `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/ee/api/discussions.html#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/ee/api/discussions.html#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
}

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

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

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

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

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

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

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

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

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

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

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

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

  """ID of this 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 this 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
}

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

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

"""All information related to DORA metrics."""
type Dora {
  """DORA metrics for the current group or project."""
  metrics(
    """Type of metric to return."""
    metric: DoraMetricType!

    """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 aggregrated. Defaults to `DAILY`. In the case of
    `ALL`, the `date` field in the response will be `null`.
    """
    interval: DoraMetricBucketingInterval

    """
    Deployment tier of the environments to return. Deprecated, please update to `environment_tiers` param.
    """
    environmentTier: DeploymentTier

    """
    Deployment tiers of the environments to return. Defaults to `[PRODUCTION]`.
    """
    environmentTiers: [DeploymentTier!]
  ): [DoraMetric!]
}

type DoraMetric {
  """Date of the data point."""
  date: String

  """Value of the data point."""
  value: 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
}

"""All supported DORA metric types."""
enum DoraMetricType {
  """Deployment frequency."""
  DEPLOYMENT_FREQUENCY

  """Lead time for changes."""
  LEAD_TIME_FOR_CHANGES

  """Time to restore service."""
  TIME_TO_RESTORE_SERVICE

  """Change failure rate."""
  CHANGE_FAILURE_RATE
}

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

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

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

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

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

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

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

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

"""Type of a tree entry"""
enum EntryType {
  """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

  """When the environment was created."""
  createdAt: Time

  """
  Deployments of the environment. This field can only be resolved for one project 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

  """Folder name of the environment."""
  environmentType: String

  """External URL of the environment."""
  externalUrl: String

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

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

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

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

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

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

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

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

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

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

An example `EnvironmentID` is: `"gid://gitlab/Environment/1"`.
"""
scalar EnvironmentID

"""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 execution of 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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """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 award emojis 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 this epic."""
  blockedByCount: Int

  """Epics blocking this 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 this 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 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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """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. Returns `null` if `epic_color_highlight` feature flag is disabled.
  """
  color: String

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

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

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

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

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

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

  """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 direct issues."""
  hasIssues: Boolean!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): 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. Returns `null` if `epic_color_highlight` feature flag is disabled.
  """
  textColor: String

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

  """The GitLab Flavored Markdown 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!
}

"""Autogenerated input type of EpicAddIssue"""
input EpicAddIssueInput {
  """IID of the epic to mutate."""
  iid: ID!

  """Group the epic to mutate belongs to."""
  groupPath: ID!

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

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

"""Represents an epic board"""
type EpicBoard {
  """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

  """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 execution of 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 {
  """Create the backlog list."""
  backlog: Boolean

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

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

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

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

"""The connection type for Epic."""
type EpicConnection {
  """Total count of collection."""
  count: 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 this epic, including epic descendants.
  """
  closedIssues: Int

  """
  Total weight of opened issues in this epic, including epic descendants.
  """
  openedIssues: Int
}

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

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

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

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

  """Filter by confidentiality."""
  confidential: Boolean
}

"""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 this issue."""
  alertManagementAlert: AlertManagementAlert

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

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

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

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

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

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

  """Count of issues blocking this issue."""
  blockedByCount: Int

  """Issues blocking this 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 this issue is blocking."""
  blockingCount: Int!

  """Issue this issue was closed as a duplicate of."""
  closedAsDuplicateOf: Issue

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

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

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

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

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

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

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

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

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

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

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

  """
  Indicates if a project has email notifications disabled: `true` if email notifications are disabled.
  """
  emailsDisabled: Boolean!

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

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

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

  """Current health status."""
  healthStatus: HealthStatus

  """
  Indicates the issue is hidden because the author has been banned. Will always
  return `null` if `ban_user_feature_flag` feature flag is disabled.
  """
  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: ID!

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

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

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

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

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

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

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

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

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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): 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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"""The connection type for EpicIssue."""
type EpicIssueConnection {
  """Total count of collection."""
  count: Int!

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

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

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

  """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 this list is collapsed for this 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

  """Count of epics in the list. Deprecated in 14.9: This was renamed."""
  epicsCount: Int @deprecated(reason: "This was renamed. Please use `metadata`. Deprecated in 14.9.")

  """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 14.7: This feature is in
  Alpha. It can be changed or removed at any time.
  """
  totalWeight: Int @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 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
}

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

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

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

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

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

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

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

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

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

"""Autogenerated input type of EpicSetSubscription"""
input EpicSetSubscriptionInput {
  """IID of the epic to mutate."""
  iid: ID!

  """Group the epic to mutate belongs to."""
  groupPath: ID!

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

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

"""Roadmap sort values"""
enum EpicSort {
  """Start date at descending order."""
  start_date_desc @deprecated(reason: "Use START_DATE_DESC. Deprecated in 13.11.")

  """Start date at ascending order."""
  start_date_asc @deprecated(reason: "Use START_DATE_ASC. Deprecated in 13.11.")

  """End date at descending order."""
  end_date_desc @deprecated(reason: "Use END_DATE_DESC. Deprecated in 13.11.")

  """End date at ascending order."""
  end_date_asc @deprecated(reason: "Use END_DATE_ASC. Deprecated in 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 execution of 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
}

"""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 execution of 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 execution of 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 execution of 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 this event."""
  author: UserCore!

  """When this event was created."""
  createdAt: Time!

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

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

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

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

"""Represents an external resource to send audit events to"""
type ExternalAuditEventDestination {
  """External destination to send audit events to."""
  destinationUrl: 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!

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

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

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

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

  """Errors encountered during execution of 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
}

type FileUpload {
  """Global ID of the upload."""
  id: UploadID!

  """Path of the upload."""
  path: String!

  """Size of the upload in bytes."""
  size: Int!
}

type GeoNode {
  """Find Ci Secure File registries on this Geo node"""
  ciSecureFileRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this secondary node.
  """
  containerRepositoriesMaxCapacity: Int

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

  """
  Maximum concurrency of LFS/attachment backfill for this secondary node.
  """
  filesMaxCapacity: Int

  """Find group wiki repository registries on this Geo node."""
  groupWikiRepositoryRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this GeoNode."""
  id: ID!

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

  """Find Job Artifact registries on this Geo node."""
  jobArtifactRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this Geo node."""
  name: String

  """Package file registries of the GeoNode."""
  packageFileRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 Pages Deployment registries on this Geo node"""
  pagesDeploymentRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 pipeline artifact registries on this Geo node."""
  pipelineArtifactRegistries(
    """Filters registries by their ID."""
    ids: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this Geo node is the primary."""
  primary: Boolean

  """Maximum concurrency of repository backfill for this 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: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this 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: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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: [ID!]

    """Filters registries by their replication state."""
    replicationState: ReplicationStateEnum

    """Filters registries by their verification state."""
    verificationState: VerificationStateEnum

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

    """
    Returns the elements in the list that come before the 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 this Geo node."""
  url: String

  """
  Maximum concurrency of repository verification for this secondary node.
  """
  verificationMaxCapacity: Int
}

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

An example `GitlabErrorTrackingDetailedErrorID` is: `"gid://gitlab/Gitlab::ErrorTracking::DetailedError/1"`.
"""
scalar GitlabErrorTrackingDetailedErrorID

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

  """Current license."""
  license: CurrentLicense
}

"""
A global identifier.

A global identifier represents an object uniquely across the application.
An example of such an identifier is `"gid://gitlab/User/1"`.

Global identifiers are encoded as strings.

"""
scalar GlobalID

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

type Group {
  """Size limit for repositories in the namespace in bytes."""
  actualRepositorySizeLimit: Float

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

  """
  Indicates whether to regularly prune stale group runners. Defaults to false.
  """
  allowStaleRunnerPruning: Boolean!

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

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

  """List of the group's CI/CD variables."""
  ciVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Compliance frameworks available to projects in this namespace."""
  complianceFrameworks(
    """Global ID of a specific compliance framework to return."""
    id: 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

  """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 this 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.
  """
  containsLockedProjects: Boolean!

  """
  Indicates if the cross_project_pipeline feature is available for the namespace.
  """
  crossProjectPipelineAvailable: Boolean!

  """
  Custom emoji within this namespace. Introduced in 13.6: This feature is in
  Alpha. It can be changed or removed at any time.
  """
  customEmoji(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.")

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

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

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

    """
    Returns the elements in the list that come before the 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

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

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

  """Group's DORA metrics."""
  dora: Dora

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

  """Indicates whether the group has limited users for a free plan."""
  enforceFreeUserCap: Boolean

  """Find a single epic."""
  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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

    """Filter epics with a top-level hierarchy."""
    topLevelHierarchyOnly: Boolean
  ): Epic

  """Find a single epic board."""
  epicBoard(
    """Find an epic board by ID."""
    id: BoardsEpicBoardID!
  ): EpicBoard

  """Find epic boards."""
  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

  """Find epics."""
  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 created after this date."""
    createdAfter: Time

    """Epics created before this date."""
    createdBefore: Time

    """Epics updated after this date."""
    updatedAfter: Time

    """Epics updated before this date."""
    updatedBefore: Time

    """Negated epic arguments."""
    not: NegatedEpicFilterInput

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

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

  """External locations that receive audit events belonging to the group."""
  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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

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

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

    """Issues updated before this date."""
    updatedBefore: Time

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

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

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

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

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

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

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

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

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

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

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

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

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

  """Labels available on this group."""
  labels(
    """Search term to find labels with."""
    searchTerm: String

    """Include labels from ancestor groups."""
    includeAncestorGroups: 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

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

  """
  Compliance violations reported on merge requests merged within the group.
  """
  mergeRequestViolations(
    """Filters applied when retrieving compliance violations."""
    filters: ComplianceViolationInput = {}

    """List compliance violations by sort order."""
    sort: ComplianceViolationSort = SEVERITY_LEVEL_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
  ): ComplianceViolationConnection

  """Merge requests for projects in this group."""
  mergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

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

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

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

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

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

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

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

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

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

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

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

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

    """Return merge requests from archived projects"""
    includeArchived: Boolean = false

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

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

  """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 this 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 namespace."""
  name: String!

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

  """Parent group."""
  parent: Group

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

  """Permission level required to create projects in the group."""
  projectCreationLevel: String

  """Projects within this namespace."""
  projects(
    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

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

    """Sort projects by this criteria."""
    sort: NamespaceProjectSort = null

    """Filter projects by IDs."""
    ids: [ID!] = null

    """Returns only the projects which have code coverage."""
    hasCodeCoverage: Boolean = false

    """Returns only the projects which have vulnerabilities."""
    hasVulnerabilities: 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!

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

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

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

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

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

  """Find runners visible to the current user."""
  runners(
    """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

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

  """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`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

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

    """
    Returns the elements in the list that come before the 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

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

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting

  """Group statistics."""
  stats: GroupStats

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

  """Permission level required to create subgroups within the group."""
  subgroupCreationLevel: String

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

  """
  Timelog categories for the namespace. Introduced in 15.3: This feature is in
  Alpha. It can be changed or removed at any time.
  """
  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: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 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

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

    """
    Returns the elements in the list that come before the 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!

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

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

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

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

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

  """
  Vulnerabilities reported on the projects in the group and its subgroups.
  """
  vulnerabilities(
    """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 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 have linked issues."""
    hasIssues: 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!]

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

    """
    Returns the elements in the list that come before the 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
  ): [VulnerableProjectsByGrade!]!

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

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

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

  """
  Work item types available to the group. Returns `null` if `work_items` feature
  flag is disabled. This flag is disabled by default, because the feature is
  experimental and is subject to change without notice.
  """
  workItemTypes(
    """
    If `true`, only taskable work item types will be returned. Argument is
    experimental and can be removed in the future without notice.
    """
    taskable: 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
}

"""The connection type for Group."""
type GroupConnection {
  """A list of edges."""
  edges: [GroupEdge]

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

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

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

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

An example `GroupID` is: `"gid://gitlab/Group/1"`.
"""
scalar GroupID

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

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

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

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

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

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

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

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

type GroupPermissions {
  """Indicates the user can perform `create_projects` on this resource"""
  createProjects: Boolean!

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

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

"""Represents the source of a security policy belonging to a group"""
type GroupSecurityPolicySource {
  """Indicates whether this policy is inherited from parent group."""
  inherited: Boolean!

  """Project the policy is associated with."""
  namespace: Namespace
}

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

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting!
}

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

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

  """Group after update."""
  group: Group
}

"""
Represents the Geo sync and verification state of a group wiki repository
"""
type GroupWikiRepositoryRegistry {
  """Timestamp when the GroupWikiRepositoryRegistry was created"""
  createdAt: Time

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

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

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

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

"""The connection type for GroupWikiRepositoryRegistry."""
type GroupWikiRepositoryRegistryConnection {
  """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!
}

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

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

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

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

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

  """HTTP integration."""
  integration: AlertManagementHttpIntegration
}

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

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

type InstanceSecurityDashboard {
  """
  Cluster agents associated with projects selected in the Instance Security Dashboard.
  """
  clusterAgents(
    """Returns only cluster agents which have vulnerabilities."""
    hasVulnerabilities: 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: [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 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

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

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

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

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

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

"""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 this issue."""
  alertManagementAlert: AlertManagementAlert

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

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

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

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

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

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

  """Count of issues blocking this issue."""
  blockedByCount: Int

  """Issues blocking this 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 this issue is blocking."""
  blockingCount: Int!

  """Issue this issue was closed as a duplicate of."""
  closedAsDuplicateOf: Issue

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

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

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

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

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

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

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

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

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

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

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

  """
  Indicates if a project has email notifications disabled: `true` if email notifications are disabled.
  """
  emailsDisabled: Boolean!

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

  """
  Escalation policy associated with the issue. Available for issues which support escalation.
  """
  escalationPolicy: EscalationPolicyType

  """Escalation status of the issue."""
  escalationStatus: IssueEscalationStatus

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

  """Current health status."""
  healthStatus: HealthStatus

  """
  Indicates the issue is hidden because the author has been banned. Will always
  return `null` if `ban_user_feature_flag` feature flag is disabled.
  """
  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: ID!

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

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

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

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

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

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

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

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

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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): 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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"""The connection type for Issue."""
type IssueConnection {
  """Total count of collection."""
  count: Int!

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

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

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

  """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 IssueMove"""
input IssueMoveInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

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

  """Project to move the issue to."""
  targetProjectPath: ID!
}

"""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."""
  epicId: EpicID
}

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

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

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

  """Issue after mutation."""
  issue: Issue
}

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

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

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

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

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

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

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

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

"""Autogenerated input type of IssueSetAssignees"""
input IssueSetAssigneesInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetConfidential"""
input IssueSetConfidentialInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetCrmContacts"""
input IssueSetCrmContactsInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetDueDate"""
input IssueSetDueDateInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEpic"""
input IssueSetEpicInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

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

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

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

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

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEscalationPolicy"""
input IssueSetEscalationPolicyInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetEscalationStatus"""
input IssueSetEscalationStatusInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetIteration"""
input IssueSetIterationInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetLocked"""
input IssueSetLockedInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetSeverity"""
input IssueSetSeverityInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""Autogenerated input type of IssueSetWeight"""
input IssueSetWeightInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

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

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of 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

  """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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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. Available only when feature flag `work_items` is enabled.
  Introduced in 15.2: This feature is in Alpha. It can be changed or removed at any time.
  """
  TASK @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.2.")
}

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

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

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

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

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

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

  """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 must be specified unless iteration_cadences feature flag is enabled.
  """
  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 this cadence."""
  durationInWeeks: Int

  """Global ID of the iteration cadence."""
  id: IterationsCadenceID!

  """
  Upcoming iterations to be created when iteration cadence is set to automatic.
  """
  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 this cadence."""
  durationInWeeks: Int

  """
  Upcoming iterations to be created when iteration cadence is set to automatic.
  """
  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 execution of 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 execution of 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 this cadence."""
  durationInWeeks: Int

  """
  Upcoming iterations to be created when iteration cadence is set to automatic.
  """
  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 execution of 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 execution of 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 execution of 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 and due date in ascending order."""
  CADENCE_AND_DUE_DATE_ASC
}

"""State of a GitLab iteration"""
enum IterationState {
  """Upcoming iteration."""
  upcoming

  """Started iteration. Deprecated in 14.1: Use current instead."""
  started @deprecated(reason: "Use current instead. Deprecated in 14.1.")

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

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

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

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

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

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

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

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

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

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

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

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

  """CLUSTER APPLICATIONS job artifact file type."""
  CLUSTER_APPLICATIONS

  """LSIF job artifact file type."""
  LSIF

  """CYCLONEDX job artifact file type."""
  CYCLONEDX

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

  """COVERAGE FUZZING job artifact file type."""
  COVERAGE_FUZZING

  """API FUZZING job artifact file type."""
  API_FUZZING
}

"""
Represents the Geo replication and verification state of a job_artifact.
"""
type JobArtifactRegistry {
  """ID of the Job Artifact."""
  artifactId: ID!

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

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

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

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

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

"""The connection type for JobArtifactRegistry."""
type JobArtifactRegistryConnection {
  """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 {
  """ID of the job to mutate."""
  id: CiBuildID!

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

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

  """Job with artifacts to be deleted."""
  job: CiJob
}

"""Autogenerated input type of JobCancel"""
input JobCancelInput {
  """ID of the job to mutate."""
  id: CiBuildID!

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

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

  """Errors encountered during execution of 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 {
  """Indicates the user can perform `read_build` on this resource"""
  readBuild: Boolean!

  """Indicates the user can perform `read_job_artifacts` on this resource"""
  readJobArtifacts: Boolean!

  """Indicates the user can perform `update_build` on this resource"""
  updateBuild: Boolean!
}

"""Autogenerated input type of JobPlay"""
input JobPlayInput {
  """ID of the job to mutate."""
  id: CiBuildID!

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

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

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

  """Job after the mutation."""
  job: CiJob
}

"""Autogenerated input type of JobRetry"""
input JobRetryInput {
  """ID of the job to mutate."""
  id: CiBuildID!

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

  """Variables to use when retrying a manual job."""
  variables: [CiVariableInput!] = []
}

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

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

  """Job after the mutation."""
  job: CiJob
}

"""Autogenerated input type of JobUnschedule"""
input JobUnscheduleInput {
  """ID of the job to mutate."""
  id: CiBuildID!

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

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

  """Errors encountered during execution of 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 the Kubernetes Agent Server is enabled."""
  enabled: Boolean!

  """URL used by the Agents to communicate with KAS."""
  externalUrl: String

  """KAS version."""
  version: String
}

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

  """When this label was created."""
  createdAt: Time!

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

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

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

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

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

  """When this label was last updated."""
  updatedAt: Time!
}

"""The connection type for Label."""
type LabelConnection {
  """Total count of collection."""
  count: Int!

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

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

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

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

"""Represents the Geo sync and verification state of an LFS object"""
type LfsObjectRegistry {
  """Timestamp when the LfsObjectRegistry was created"""
  createdAt: Time

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

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

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

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

"""The connection type for LfsObjectRegistry."""
type LfsObjectRegistryConnection {
  """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
}

"""Represents an entry from the Cloud License history"""
type LicenseHistoryEntry {
  """Date when the license was activated."""
  activatedAt: Date

  """Date, including grace period, 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
}

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

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

  """Snippet after mutation."""
  snippet: Snippet
}

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

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

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
}

"""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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 merge access level of a branch protection."""
type MergeAccessLevel {
  """GitLab::Access level."""
  accessLevel: Int!

  """Human readable representation for this access level."""
  accessLevelDescription: String!

  """Group associated with this access level."""
  group: Group

  """User associated with this access level."""
  user: UserCore
}

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

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

  """
  Information relating to rules that must be satisfied to merge this 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. Returns true if no required approvals are configured.
  """
  approved: Boolean!

  """Users who approved the merge request."""
  approvedBy(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

    """Returns the last _n_ elements from the list."""
    last: Int
  ): 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 this 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!]

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

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

  """
  Detailed merge status of the merge request. Introduced in 15.3: This feature
  is in Alpha. It can be changed or removed at any time.
  """
  detailedMergeStatus: DetailedMergeStatus @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """Status of the merge request. Deprecated in 14.0: This was renamed."""
  mergeStatus: String @deprecated(reason: "This was renamed. Please use `MergeRequest.mergeStatusEnum`. Deprecated in 14.0.")

  """Merge status of the merge request."""
  mergeStatusEnum: MergeStatus

  """Number of merge requests in the merge train."""
  mergeTrainsCount: Int

  """
  User who merged this merge request or set it to merge when pipeline succeeds.
  """
  mergeUser: UserCore

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

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

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

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

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

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

  """
  Participants in the merge request. 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

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

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

    """Filter pipelines by their source."""
    source: String

    """Pipelines updated after this date."""
    updatedAfter: Time

    """Pipelines updated before this 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

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

  """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."""
  securityAutoFix: Boolean

  """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 squash on merge is enabled."""
  squash: Boolean!

  """Indicates if squash on merge is enabled."""
  squashOnMerge: Boolean!

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

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

  """
  Suggested reviewers for merge request. Returns `null` if `suggested_reviewers`
  feature flag is disabled. This flag is disabled by default and only available
  on GitLab.com because the feature is experimental and is subject to change
  without notice. Introduced in 15.4: This feature is in Alpha. It can be
  changed or removed at any time.
  """
  suggestedReviewers: SuggestedReviewersType @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.4.")

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

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

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

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

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

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

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

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

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

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

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

  """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 URL of the merge request."""
  webUrl: String
}

"""Autogenerated input type of MergeRequestAccept"""
input MergeRequestAcceptInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

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

  """How to merge this merge request."""
  strategy: MergeStrategyEnum

  """Custom merge commit message."""
  commitMessage: String

  """HEAD SHA at the time when this 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 execution of 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 associated with the merge request."""
  rules: [ApprovalRule!]
}

"""A user assigned to a merge request."""
type MergeRequestAssignee implements User {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

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

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

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

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

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

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

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

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

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

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

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

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

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

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

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

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

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

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

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

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

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

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

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

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

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

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

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

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

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

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

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

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

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

  """Details of this 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

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

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

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

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

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

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

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

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

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

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""The connection type for MergeRequestAssignee."""
type MergeRequestAssigneeConnection {
  """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 User {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

  """Whether Gitpod is enabled at the user level."""
  gitpodEnabled: Boolean

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

  """Location of the user."""
  location: String

  """Details of this 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

  """Web path to the Gitpod section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Gitpod for the user."""
  profileEnableGitpodPath: String

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectMemberConnection

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""The connection type for MergeRequest."""
type MergeRequestConnection {
  """Total count of collection."""
  count: Int!

  """A list of edges."""
  edges: [MergeRequestEdge]

  """A list of nodes."""
  nodes: [MergeRequest]

  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """
  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!]
}

"""Autogenerated return type of MergeRequestCreate"""
type MergeRequestCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Represents the Geo sync and verification state of a Merge Request diff"""
type MergeRequestDiffRegistry {
  """Timestamp when the MergeRequestDiffRegistry was created"""
  createdAt: Time

  """ID of the MergeRequestDiffRegistry"""
  id: ID!

  """Error message during sync of the MergeRequestDiffRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the MergeRequestDiffRegistry
  """
  lastSyncedAt: Time

  """ID of the Merge Request diff."""
  mergeRequestDiffId: ID!

  """Timestamp after which the MergeRequestDiffRegistry is resynced"""
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the MergeRequestDiffRegistry
  """
  retryCount: Int

  """Sync state of the MergeRequestDiffRegistry"""
  state: RegistryState

  """Timestamp after which the MergeRequestDiffRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the MergeRequestDiffRegistry
  """
  verifiedAt: Time
}

"""The connection type for MergeRequestDiffRegistry."""
type MergeRequestDiffRegistryConnection {
  """A list of edges."""
  edges: [MergeRequestDiffRegistryEdge]

  """A list of nodes."""
  nodes: [MergeRequestDiffRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MergeRequestDiffRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequestDiffRegistry
}

"""An edge in a connection."""
type MergeRequestEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MergeRequest
}

"""
A `MergeRequestID` is a global ID. It is encoded as a string.

An example `MergeRequestID` is: `"gid://gitlab/MergeRequest/1"`.
"""
scalar MergeRequestID

"""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 User {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

  """Whether Gitpod is enabled at the user level."""
  gitpodEnabled: Boolean

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

  """Location of the user."""
  location: String

  """Details of this 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

  """Web path to the Gitpod section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Gitpod for the user."""
  profileEnableGitpodPath: String

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectMemberConnection

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""The connection type for MergeRequestParticipant."""
type MergeRequestParticipantConnection {
  """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 {
  """Indicates the user can perform `admin_merge_request` on this resource"""
  adminMergeRequest: Boolean!

  """Indicates the user can perform `can_merge` on this resource"""
  canMerge: Boolean!

  """
  Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource
  """
  cherryPickOnCurrentMergeRequest: Boolean!

  """Indicates the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """
  Indicates the user can perform `push_to_source_branch` on this resource
  """
  pushToSourceBranch: Boolean!

  """Indicates the user can perform `read_merge_request` on this resource"""
  readMergeRequest: Boolean!

  """Indicates the user can perform `remove_source_branch` on this resource"""
  removeSourceBranch: Boolean!

  """
  Indicates the user can perform `revert_on_current_merge_request` on this resource
  """
  revertOnCurrentMergeRequest: Boolean!

  """Indicates the user can perform `update_merge_request` on this resource"""
  updateMergeRequest: Boolean!
}

"""A user assigned to a merge request as a reviewer."""
type MergeRequestReviewer implements User {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

  """Whether Gitpod is enabled at the user level."""
  gitpodEnabled: Boolean

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

  """Location of the user."""
  location: String

  """Details of this 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

  """Web path to the Gitpod section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Gitpod for the user."""
  profileEnableGitpodPath: String

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectMemberConnection

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""The connection type for MergeRequestReviewer."""
type MergeRequestReviewerConnection {
  """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 {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""State of a review of a GitLab merge request."""
enum MergeRequestReviewState {
  """The merge request is unreviewed."""
  UNREVIEWED

  """The merge request is reviewed."""
  REVIEWED
}

"""Autogenerated input type of MergeRequestSetAssignees"""
input MergeRequestSetAssigneesInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetDraft"""
input MergeRequestSetDraftInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetLabels"""
input MergeRequestSetLabelsInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetLocked"""
input MergeRequestSetLockedInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetMilestone"""
input MergeRequestSetMilestoneInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""Autogenerated input type of MergeRequestSetReviewers"""
input MergeRequestSetReviewersInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of 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 execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""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

  """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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 {
  """
  Array of label names. All resolved merge requests will not have these labels.
  """
  labels: [String!]

  """Title of the milestone."""
  milestoneTitle: String
}

"""State of a GitLab merge request"""
enum MergeRequestState {
  """Merge request has been merged."""
  merged

  """In open state."""
  opened

  """In closed state."""
  closed

  """Discussion has been locked."""
  locked

  """All available."""
  all
}

"""Autogenerated input type of MergeRequestUpdate"""
input MergeRequestUpdateInput {
  """Project the merge request to mutate is in."""
  projectPath: ID!

  """IID of the merge request to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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
}

"""Autogenerated return type of MergeRequestUpdate"""
type MergeRequestUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Merge request after mutation."""
  mergeRequest: MergeRequest
}

"""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_pipeline_succeeds merge strategy."""
  ADD_TO_MERGE_TRAIN_WHEN_PIPELINE_SUCCEEDS

  """Use the merge_when_pipeline_succeeds merge strategy."""
  MERGE_WHEN_PIPELINE_SUCCEEDS
}

type Metadata {
  """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: ID!

  """URL of the metric source."""
  url: String!
}

type MetricsDashboard {
  """Annotations added to the dashboard."""
  annotations(
    """
    Timestamp marking date and time from which annotations need to be fetched.
    """
    from: Time!

    """
    Timestamp marking date and time to which annotations need to be fetched.
    """
    to: 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
  ): MetricsDashboardAnnotationConnection

  """Path to a file with the dashboard definition."""
  path: String

  """Dashboard schema validation warnings."""
  schemaValidationWarnings: [String!]
}

type MetricsDashboardAnnotation {
  """Description of the annotation."""
  description: String

  """Timestamp marking end of annotated time span."""
  endingAt: Time

  """ID of the annotation."""
  id: ID!

  """ID of a dashboard panel to which the annotation should be scoped."""
  panelId: String

  """Timestamp marking start of annotated time span."""
  startingAt: Time
}

"""The connection type for MetricsDashboardAnnotation."""
type MetricsDashboardAnnotationConnection {
  """A list of edges."""
  edges: [MetricsDashboardAnnotationEdge]

  """A list of nodes."""
  nodes: [MetricsDashboardAnnotation]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type MetricsDashboardAnnotationEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: MetricsDashboardAnnotation
}

"""
A `MetricsDashboardAnnotationID` is a global ID. It is encoded as a string.

An example `MetricsDashboardAnnotationID` is: `"gid://gitlab/Metrics::Dashboard::Annotation/1"`.
"""
scalar MetricsDashboardAnnotationID

"""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!

  """Indicates if milestone is at group level."""
  groupMilestone: Boolean!

  """ID of the milestone."""
  id: ID!

  """Internal ID of the milestone."""
  iid: ID!

  """Indicates if milestone is at project level."""
  projectMilestone: Boolean!

  """Releases associated with this 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!

  """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 this 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 this 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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 (start date <= today)."""
  STARTED

  """Milestone assigned is due in the future (due date > today)."""
  UPCOMING
}

"""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 {
  addProjectToSecurityDashboard(
    """Parameters for AddProjectToSecurityDashboard"""
    input: AddProjectToSecurityDashboardInput!
  ): AddProjectToSecurityDashboardPayload
  adminSidekiqQueuesDeleteJobs(
    """Parameters for AdminSidekiqQueuesDeleteJobs"""
    input: AdminSidekiqQueuesDeleteJobsInput!
  ): AdminSidekiqQueuesDeleteJobsPayload
  alertSetAssignees(
    """Parameters for AlertSetAssignees"""
    input: AlertSetAssigneesInput!
  ): AlertSetAssigneesPayload
  alertTodoCreate(
    """Parameters for AlertTodoCreate"""
    input: AlertTodoCreateInput!
  ): AlertTodoCreatePayload
  apiFuzzingCiConfigurationCreate(
    """Parameters for ApiFuzzingCiConfigurationCreate"""
    input: ApiFuzzingCiConfigurationCreateInput!
  ): ApiFuzzingCiConfigurationCreatePayload @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 15.1.")
  artifactDestroy(
    """Parameters for ArtifactDestroy"""
    input: ArtifactDestroyInput!
  ): ArtifactDestroyPayload
  auditEventsStreamingHeadersCreate(
    """Parameters for AuditEventsStreamingHeadersCreate"""
    input: AuditEventsStreamingHeadersCreateInput!
  ): AuditEventsStreamingHeadersCreatePayload
  auditEventsStreamingHeadersDestroy(
    """Parameters for AuditEventsStreamingHeadersDestroy"""
    input: AuditEventsStreamingHeadersDestroyInput!
  ): AuditEventsStreamingHeadersDestroyPayload
  auditEventsStreamingHeadersUpdate(
    """Parameters for AuditEventsStreamingHeadersUpdate"""
    input: AuditEventsStreamingHeadersUpdateInput!
  ): AuditEventsStreamingHeadersUpdatePayload
  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
  boardListCreate(
    """Parameters for BoardListCreate"""
    input: BoardListCreateInput!
  ): BoardListCreatePayload
  boardListUpdateLimitMetrics(
    """Parameters for BoardListUpdateLimitMetrics"""
    input: BoardListUpdateLimitMetricsInput!
  ): BoardListUpdateLimitMetricsPayload

  """**BETA** This endpoint is subject to change without notice."""
  bulkEnableDevopsAdoptionNamespaces(
    """Parameters for BulkEnableDevopsAdoptionNamespaces"""
    input: BulkEnableDevopsAdoptionNamespacesInput!
  ): BulkEnableDevopsAdoptionNamespacesPayload
  bulkRunnerDelete(
    """Parameters for BulkRunnerDelete"""
    input: BulkRunnerDeleteInput!
  ): BulkRunnerDeletePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.")
  ciCdSettingsUpdate(
    """Parameters for CiCdSettingsUpdate"""
    input: CiCdSettingsUpdateInput!
  ): CiCdSettingsUpdatePayload @deprecated(reason: "This was renamed. Please use `ProjectCiCdSettingsUpdate`. Deprecated in 15.0.")
  ciJobTokenScopeAddProject(
    """Parameters for CiJobTokenScopeAddProject"""
    input: CiJobTokenScopeAddProjectInput!
  ): CiJobTokenScopeAddProjectPayload
  ciJobTokenScopeRemoveProject(
    """Parameters for CiJobTokenScopeRemoveProject"""
    input: CiJobTokenScopeRemoveProjectInput!
  ): CiJobTokenScopeRemoveProjectPayload
  clusterAgentDelete(
    """Parameters for ClusterAgentDelete"""
    input: ClusterAgentDeleteInput!
  ): ClusterAgentDeletePayload
  clusterAgentTokenCreate(
    """Parameters for ClusterAgentTokenCreate"""
    input: ClusterAgentTokenCreateInput!
  ): ClusterAgentTokenCreatePayload
  clusterAgentTokenRevoke(
    """Parameters for ClusterAgentTokenRevoke"""
    input: ClusterAgentTokenRevokeInput!
  ): ClusterAgentTokenRevokePayload
  commitCreate(
    """Parameters for CommitCreate"""
    input: CommitCreateInput!
  ): CommitCreatePayload

  """
  Configure Container Scanning for a project by enabling Container Scanning 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 part of the response.
  
  """
  configureContainerScanning(
    """Parameters for ConfigureContainerScanning"""
    input: ConfigureContainerScanningInput!
  ): ConfigureContainerScanningPayload

  """
  Configure Dependency Scanning for a project by enabling Dependency Scanning 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.
  
  """
  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
  corpusCreate(
    """Parameters for CorpusCreate"""
    input: CorpusCreateInput!
  ): CorpusCreatePayload
  createAlertIssue(
    """Parameters for CreateAlertIssue"""
    input: CreateAlertIssueInput!
  ): CreateAlertIssuePayload
  createAnnotation(
    """Parameters for CreateAnnotation"""
    input: CreateAnnotationInput!
  ): CreateAnnotationPayload
  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
  createCustomEmoji(
    """Parameters for CreateCustomEmoji"""
    input: CreateCustomEmojiInput!
  ): CreateCustomEmojiPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.")
  createDiffNote(
    """Parameters for CreateDiffNote"""
    input: CreateDiffNoteInput!
  ): CreateDiffNotePayload
  createEpic(
    """Parameters for CreateEpic"""
    input: CreateEpicInput!
  ): CreateEpicPayload
  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 14.0.")

  """
  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
  createRequirement(
    """Parameters for CreateRequirement"""
    input: CreateRequirementInput!
  ): CreateRequirementPayload
  createSnippet(
    """Parameters for CreateSnippet"""
    input: CreateSnippetInput!
  ): CreateSnippetPayload
  createTestCase(
    """Parameters for CreateTestCase"""
    input: CreateTestCaseInput!
  ): CreateTestCasePayload
  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
  designManagementDelete(
    """Parameters for DesignManagementDelete"""
    input: DesignManagementDeleteInput!
  ): DesignManagementDeletePayload
  designManagementMove(
    """Parameters for DesignManagementMove"""
    input: DesignManagementMoveInput!
  ): DesignManagementMovePayload
  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
  destroyContainerRepository(
    """Parameters for DestroyContainerRepository"""
    input: DestroyContainerRepositoryInput!
  ): DestroyContainerRepositoryPayload
  destroyContainerRepositoryTags(
    """Parameters for DestroyContainerRepositoryTags"""
    input: DestroyContainerRepositoryTagsInput!
  ): DestroyContainerRepositoryTagsPayload
  destroyCustomEmoji(
    """Parameters for DestroyCustomEmoji"""
    input: DestroyCustomEmojiInput!
  ): DestroyCustomEmojiPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.")
  destroyEpicBoard(
    """Parameters for DestroyEpicBoard"""
    input: DestroyEpicBoardInput!
  ): DestroyEpicBoardPayload
  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
  destroySnippet(
    """Parameters for DestroySnippet"""
    input: DestroySnippetInput!
  ): DestroySnippetPayload

  """**BETA** This endpoint is subject to change without notice."""
  disableDevopsAdoptionNamespace(
    """Parameters for DisableDevopsAdoptionNamespace"""
    input: DisableDevopsAdoptionNamespaceInput!
  ): DisableDevopsAdoptionNamespacePayload

  """Toggles the resolved state of a discussion"""
  discussionToggleResolve(
    """Parameters for DiscussionToggleResolve"""
    input: DiscussionToggleResolveInput!
  ): DiscussionToggleResolvePayload

  """
  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

  """**BETA** This endpoint is subject to change without notice."""
  enableDevopsAdoptionNamespace(
    """Parameters for EnableDevopsAdoptionNamespace"""
    input: EnableDevopsAdoptionNamespaceInput!
  ): EnableDevopsAdoptionNamespacePayload

  """
  **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
  epicBoardCreate(
    """Parameters for EpicBoardCreate"""
    input: EpicBoardCreateInput!
  ): EpicBoardCreatePayload
  epicBoardListCreate(
    """Parameters for EpicBoardListCreate"""
    input: EpicBoardListCreateInput!
  ): EpicBoardListCreatePayload

  """Destroys an epic board list."""
  epicBoardListDestroy(
    """Parameters for EpicBoardListDestroy"""
    input: EpicBoardListDestroyInput!
  ): EpicBoardListDestroyPayload
  epicBoardUpdate(
    """Parameters for EpicBoardUpdate"""
    input: EpicBoardUpdateInput!
  ): EpicBoardUpdatePayload
  epicMoveList(
    """Parameters for EpicMoveList"""
    input: EpicMoveListInput!
  ): EpicMoveListPayload
  epicSetSubscription(
    """Parameters for EpicSetSubscription"""
    input: EpicSetSubscriptionInput!
  ): EpicSetSubscriptionPayload
  epicTreeReorder(
    """Parameters for EpicTreeReorder"""
    input: EpicTreeReorderInput!
  ): EpicTreeReorderPayload
  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
  externalAuditEventDestinationDestroy(
    """Parameters for ExternalAuditEventDestinationDestroy"""
    input: ExternalAuditEventDestinationDestroyInput!
  ): ExternalAuditEventDestinationDestroyPayload
  externalAuditEventDestinationUpdate(
    """Parameters for ExternalAuditEventDestinationUpdate"""
    input: ExternalAuditEventDestinationUpdateInput!
  ): ExternalAuditEventDestinationUpdatePayload
  gitlabSubscriptionActivate(
    """Parameters for GitlabSubscriptionActivate"""
    input: GitlabSubscriptionActivateInput!
  ): GitlabSubscriptionActivatePayload
  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
  issuableResourceLinkCreate(
    """Parameters for IssuableResourceLinkCreate"""
    input: IssuableResourceLinkCreateInput!
  ): IssuableResourceLinkCreatePayload
  issuableResourceLinkDestroy(
    """Parameters for IssuableResourceLinkDestroy"""
    input: IssuableResourceLinkDestroyInput!
  ): IssuableResourceLinkDestroyPayload
  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
  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
  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
  markAsSpamSnippet(
    """Parameters for MarkAsSpamSnippet"""
    input: MarkAsSpamSnippetInput!
  ): MarkAsSpamSnippetPayload

  """
  Accepts a merge request.
  When accepted, the source branch will be merged into the target branch, either
  immediately if possible, or using one of the automatic merge strategies.
  
  """
  mergeRequestAccept(
    """Parameters for MergeRequestAccept"""
    input: MergeRequestAcceptInput!
  ): MergeRequestAcceptPayload
  mergeRequestCreate(
    """Parameters for MergeRequestCreate"""
    input: MergeRequestCreateInput!
  ): MergeRequestCreatePayload
  mergeRequestReviewerRereview(
    """Parameters for MergeRequestReviewerRereview"""
    input: MergeRequestReviewerRereviewInput!
  ): MergeRequestReviewerRereviewPayload
  mergeRequestSetAssignees(
    """Parameters for MergeRequestSetAssignees"""
    input: MergeRequestSetAssigneesInput!
  ): MergeRequestSetAssigneesPayload
  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
  namespaceBanDestroy(
    """Parameters for NamespaceBanDestroy"""
    input: NamespaceBanDestroyInput!
  ): NamespaceBanDestroyPayload
  namespaceCiCdSettingsUpdate(
    """Parameters for NamespaceCiCdSettingsUpdate"""
    input: NamespaceCiCdSettingsUpdateInput!
  ): NamespaceCiCdSettingsUpdatePayload
  namespaceIncreaseStorageTemporarily(
    """Parameters for NamespaceIncreaseStorageTemporarily"""
    input: NamespaceIncreaseStorageTemporarilyInput!
  ): NamespaceIncreaseStorageTemporarilyPayload
  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
  pagesMarkOnboardingComplete(
    """Parameters for PagesMarkOnboardingComplete"""
    input: PagesMarkOnboardingCompleteInput!
  ): PagesMarkOnboardingCompletePayload
  pipelineCancel(
    """Parameters for PipelineCancel"""
    input: PipelineCancelInput!
  ): PipelineCancelPayload
  pipelineDestroy(
    """Parameters for PipelineDestroy"""
    input: PipelineDestroyInput!
  ): PipelineDestroyPayload
  pipelineRetry(
    """Parameters for PipelineRetry"""
    input: PipelineRetryInput!
  ): PipelineRetryPayload
  projectCiCdSettingsUpdate(
    """Parameters for ProjectCiCdSettingsUpdate"""
    input: ProjectCiCdSettingsUpdateInput!
  ): ProjectCiCdSettingsUpdatePayload

  """Assign (or unset) a compliance framework to a project."""
  projectSetComplianceFramework(
    """Parameters for ProjectSetComplianceFramework"""
    input: ProjectSetComplianceFrameworkInput!
  ): ProjectSetComplianceFrameworkPayload
  projectSetLocked(
    """Parameters for ProjectSetLocked"""
    input: ProjectSetLockedInput!
  ): ProjectSetLockedPayload
  prometheusIntegrationCreate(
    """Parameters for PrometheusIntegrationCreate"""
    input: PrometheusIntegrationCreateInput!
  ): PrometheusIntegrationCreatePayload
  prometheusIntegrationResetToken(
    """Parameters for PrometheusIntegrationResetToken"""
    input: PrometheusIntegrationResetTokenInput!
  ): PrometheusIntegrationResetTokenPayload
  prometheusIntegrationUpdate(
    """Parameters for PrometheusIntegrationUpdate"""
    input: PrometheusIntegrationUpdateInput!
  ): PrometheusIntegrationUpdatePayload
  promoteToEpic(
    """Parameters for PromoteToEpic"""
    input: PromoteToEpicInput!
  ): PromoteToEpicPayload
  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
  runnerDelete(
    """Parameters for RunnerDelete"""
    input: RunnerDeleteInput!
  ): RunnerDeletePayload
  runnerUpdate(
    """Parameters for RunnerUpdate"""
    input: RunnerUpdateInput!
  ): RunnerUpdatePayload
  runnersRegistrationTokenReset(
    """Parameters for RunnersRegistrationTokenReset"""
    input: RunnersRegistrationTokenResetInput!
  ): RunnersRegistrationTokenResetPayload
  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
  securityFindingCreateIssue(
    """Parameters for SecurityFindingCreateIssue"""
    input: SecurityFindingCreateIssueInput!
  ): SecurityFindingCreateIssuePayload
  securityFindingDismiss(
    """Parameters for SecurityFindingDismiss"""
    input: SecurityFindingDismissInput!
  ): SecurityFindingDismissPayload

  """
  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 (`full_path`)
  """
  securityPolicyProjectCreate(
    """Parameters for SecurityPolicyProjectCreate"""
    input: SecurityPolicyProjectCreateInput!
  ): SecurityPolicyProjectCreatePayload

  """
  Unassigns the security policy project for the given project (`full_path`).
  """
  securityPolicyProjectUnassign(
    """Parameters for SecurityPolicyProjectUnassign"""
    input: SecurityPolicyProjectUnassignInput!
  ): SecurityPolicyProjectUnassignPayload
  securityTrainingUpdate(
    """Parameters for SecurityTrainingUpdate"""
    input: SecurityTrainingUpdateInput!
  ): SecurityTrainingUpdatePayload
  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
  timelineEventDestroy(
    """Parameters for TimelineEventDestroy"""
    input: TimelineEventDestroyInput!
  ): TimelineEventDestroyPayload
  timelineEventPromoteFromNote(
    """Parameters for TimelineEventPromoteFromNote"""
    input: TimelineEventPromoteFromNoteInput!
  ): TimelineEventPromoteFromNotePayload
  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
  todoMarkDone(
    """Parameters for TodoMarkDone"""
    input: TodoMarkDoneInput!
  ): TodoMarkDonePayload
  todoRestore(
    """Parameters for TodoRestore"""
    input: TodoRestoreInput!
  ): TodoRestorePayload
  todoRestoreMany(
    """Parameters for TodoRestoreMany"""
    input: TodoRestoreManyInput!
  ): TodoRestoreManyPayload
  todosMarkAllDone(
    """Parameters for TodosMarkAllDone"""
    input: TodosMarkAllDoneInput!
  ): TodosMarkAllDonePayload
  updateAlertStatus(
    """Parameters for UpdateAlertStatus"""
    input: UpdateAlertStatusInput!
  ): UpdateAlertStatusPayload
  updateBoard(
    """Parameters for UpdateBoard"""
    input: UpdateBoardInput!
  ): UpdateBoardPayload
  updateBoardEpicUserPreferences(
    """Parameters for UpdateBoardEpicUserPreferences"""
    input: UpdateBoardEpicUserPreferencesInput!
  ): UpdateBoardEpicUserPreferencesPayload
  updateBoardList(
    """Parameters for UpdateBoardList"""
    input: UpdateBoardListInput!
  ): UpdateBoardListPayload
  updateComplianceFramework(
    """Parameters for UpdateComplianceFramework"""
    input: UpdateComplianceFrameworkInput!
  ): UpdateComplianceFrameworkPayload
  updateContainerExpirationPolicy(
    """Parameters for UpdateContainerExpirationPolicy"""
    input: UpdateContainerExpirationPolicyInput!
  ): UpdateContainerExpirationPolicyPayload
  updateDependencyProxyImageTtlGroupPolicy(
    """Parameters for UpdateDependencyProxyImageTtlGroupPolicy"""
    input: UpdateDependencyProxyImageTtlGroupPolicyInput!
  ): UpdateDependencyProxyImageTtlGroupPolicyPayload

  """
  These settings can be adjusted by the group Owner or Maintainer. However, in
  GitLab 16.0, we will be limiting this to the Owner role.
  [GitLab-#364441](https://gitlab.com/gitlab-org/gitlab/-/issues/364441)
  proposes making this change to match the permissions level in the user interface.
  """
  updateDependencyProxySettings(
    """Parameters for UpdateDependencyProxySettings"""
    input: UpdateDependencyProxySettingsInput!
  ): UpdateDependencyProxySettingsPayload
  updateEpic(
    """Parameters for UpdateEpic"""
    input: UpdateEpicInput!
  ): UpdateEpicPayload
  updateEpicBoardList(
    """Parameters for UpdateEpicBoardList"""
    input: UpdateEpicBoardListInput!
  ): UpdateEpicBoardListPayload

  """
  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
  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
  updateRequirement(
    """Parameters for UpdateRequirement"""
    input: UpdateRequirementInput!
  ): UpdateRequirementPayload
  updateSnippet(
    """Parameters for UpdateSnippet"""
    input: UpdateSnippetInput!
  ): UpdateSnippetPayload

  """Deletes an upload."""
  uploadDelete(
    """Parameters for UploadDelete"""
    input: UploadDeleteInput!
  ): UploadDeletePayload
  userCalloutCreate(
    """Parameters for UserCalloutCreate"""
    input: UserCalloutCreateInput!
  ): UserCalloutCreatePayload
  userPreferencesUpdate(
    """Parameters for UserPreferencesUpdate"""
    input: UserPreferencesUpdateInput!
  ): UserPreferencesUpdatePayload
  vulnerabilityConfirm(
    """Parameters for VulnerabilityConfirm"""
    input: VulnerabilityConfirmInput!
  ): VulnerabilityConfirmPayload
  vulnerabilityCreate(
    """Parameters for VulnerabilityCreate"""
    input: VulnerabilityCreateInput!
  ): VulnerabilityCreatePayload
  vulnerabilityDismiss(
    """Parameters for VulnerabilityDismiss"""
    input: VulnerabilityDismissInput!
  ): VulnerabilityDismissPayload
  vulnerabilityExternalIssueLinkCreate(
    """Parameters for VulnerabilityExternalIssueLinkCreate"""
    input: VulnerabilityExternalIssueLinkCreateInput!
  ): VulnerabilityExternalIssueLinkCreatePayload
  vulnerabilityExternalIssueLinkDestroy(
    """Parameters for VulnerabilityExternalIssueLinkDestroy"""
    input: VulnerabilityExternalIssueLinkDestroyInput!
  ): VulnerabilityExternalIssueLinkDestroyPayload
  vulnerabilityFindingDismiss(
    """Parameters for VulnerabilityFindingDismiss"""
    input: VulnerabilityFindingDismissInput!
  ): VulnerabilityFindingDismissPayload @deprecated(reason: "Use VulnerabilityDismiss for vulnerabilities or SecurityFindingDismiss for pipeline findings. Deprecated in 15.5.")
  vulnerabilityResolve(
    """Parameters for VulnerabilityResolve"""
    input: VulnerabilityResolveInput!
  ): VulnerabilityResolvePayload
  vulnerabilityRevertToDetected(
    """Parameters for VulnerabilityRevertToDetected"""
    input: VulnerabilityRevertToDetectedInput!
  ): VulnerabilityRevertToDetectedPayload

  """
  Creates a work item. Available only when feature flag `work_items` is enabled.
  Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time.
  """
  workItemCreate(
    """Parameters for WorkItemCreate"""
    input: WorkItemCreateInput!
  ): WorkItemCreatePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")

  """
  Creates a work item from a task in another work item's description. Available
  only when feature flag `work_items` is enabled. Introduced in 15.1: This
  feature is in Alpha. It can be changed or removed at any time.
  """
  workItemCreateFromTask(
    """Parameters for WorkItemCreateFromTask"""
    input: WorkItemCreateFromTaskInput!
  ): WorkItemCreateFromTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")

  """
  Deletes a work item. Available only when feature flag `work_items` is enabled.
  Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time.
  """
  workItemDelete(
    """Parameters for WorkItemDelete"""
    input: WorkItemDeleteInput!
  ): WorkItemDeletePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")

  """
  Deletes a task in a work item's description. Available only when feature flag
  `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can
  be changed or removed at any time.
  """
  workItemDeleteTask(
    """Parameters for WorkItemDeleteTask"""
    input: WorkItemDeleteTaskInput!
  ): WorkItemDeleteTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")

  """
  Updates a work item by Global ID. Available only when feature flag
  `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can
  be changed or removed at any time.
  """
  workItemUpdate(
    """Parameters for WorkItemUpdate"""
    input: WorkItemUpdateInput!
  ): WorkItemUpdatePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")

  """
  Updates a work item's task by Global ID. Available only when feature flag
  `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can
  be changed or removed at any time.
  """
  workItemUpdateTask(
    """Parameters for WorkItemUpdateTask"""
    input: WorkItemUpdateTaskInput!
  ): WorkItemUpdateTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")
}

"""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 {
  """Size limit for repositories in the namespace in bytes."""
  actualRepositorySizeLimit: Float

  """Additional storage purchased for the root namespace in bytes."""
  additionalPurchasedStorageSize: Float

  """Compliance frameworks available to projects in this namespace."""
  complianceFrameworks(
    """Global ID of a specific compliance framework to return."""
    id: 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.
  """
  containsLockedProjects: Boolean!

  """
  Indicates if the cross_project_pipeline feature is available for the namespace.
  """
  crossProjectPipelineAvailable: Boolean!

  """Description of the namespace."""
  description: String

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Full name of the namespace."""
  fullName: String!

  """Full path of the namespace."""
  fullPath: ID!

  """ID of the namespace."""
  id: ID!

  """Status of the temporary storage increase."""
  isTemporaryStorageIncreaseEnabled: Boolean!

  """Indicates if Large File Storage (LFS) is enabled for namespace."""
  lfsEnabled: Boolean

  """Name of the namespace."""
  name: String!

  """Package settings for the namespace."""
  packageSettings: PackageSettings

  """Path of the namespace."""
  path: String!

  """Projects within this namespace."""
  projects(
    """Include also subgroup projects."""
    includeSubgroups: Boolean = false

    """Search project with most similar names or paths."""
    search: String = null

    """Sort projects by this criteria."""
    sort: NamespaceProjectSort = null

    """Filter projects by IDs."""
    ids: [ID!] = null

    """Returns only the projects which have code coverage."""
    hasCodeCoverage: Boolean = false

    """Returns only the projects which have vulnerabilities."""
    hasVulnerabilities: 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!

  """
  Number of projects in the root namespace where the repository size exceeds the limit.
  """
  repositorySizeExcessProjectCount: Int!

  """Indicates if users can request access to namespace."""
  requestAccessEnabled: Boolean

  """
  Aggregated storage statistics of the namespace. Only available for root namespaces.
  """
  rootStorageStatistics: RootStorageStatistics

  """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`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Shared runners availability for the namespace and its descendants."""
  sharedRunnersSetting: SharedRunnersSetting

  """Total storage limit of the root namespace in bytes."""
  storageSizeLimit: Float

  """Date until the temporary storage increase is active."""
  temporaryStorageIncreaseEndsOn: Time

  """
  Timelog categories for the namespace. Introduced in 15.3: This feature is in
  Alpha. It can be changed or removed at any time.
  """
  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: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 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.
  """
  totalRepositorySizeExcess: Float

  """Visibility of the namespace."""
  visibility: String
}

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 execution of the mutation."""
  errors: [String!]!

  """Namespace Ban."""
  namespaceBan: NamespaceBan
}

type NamespaceCiCdSetting {
  """
  Indicates if stale runners directly belonging to this 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 this 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 execution of the mutation."""
  errors: [String!]!
}

"""The connection type for Namespace."""
type NamespaceConnection {
  """A list of edges."""
  edges: [NamespaceEdge]

  """A list of nodes."""
  nodes: [Namespace]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type NamespaceEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Namespace
}

"""
A `NamespaceID` is a global ID. It is encoded as a string.

An example `NamespaceID` is: `"gid://gitlab/Namespace/1"`.
"""
scalar NamespaceID

"""Autogenerated input type of NamespaceIncreaseStorageTemporarily"""
input NamespaceIncreaseStorageTemporarilyInput {
  """Global ID of the namespace to mutate."""
  id: NamespaceID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of NamespaceIncreaseStorageTemporarily"""
type NamespaceIncreaseStorageTemporarilyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Namespace after mutation."""
  namespace: Namespace
}

"""Values for sorting projects"""
enum NamespaceProjectSort {
  """Most similar to the search query."""
  SIMILARITY

  """Sort by storage size."""
  STORAGE
}

"""
A `NamespacesNamespaceBanID` is a global ID. It is encoded as a string.

An example `NamespacesNamespaceBanID` is: `"gid://gitlab/Namespaces::NamespaceBan/1"`.
"""
scalar NamespacesNamespaceBanID

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 milestone ID wildcard."""
  milestoneWildcardId: MilestoneWildcardId

  """Filter by epic ID. Incompatible with epicWildcardId."""
  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
}

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
}

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
}

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 this issue."""
  labelName: [String!]

  """Milestone not applied to this 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
}

"""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 due in the past (due date <= today)."""
  UPCOMING
}

"""Represents the network policy"""
type NetworkPolicy {
  """Indicates whether this policy is enabled."""
  enabled: Boolean!

  """Environments where this policy is applied."""
  environments(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): EnvironmentConnection

  """Indicates whether this policy is created from AutoDevops."""
  fromAutoDevops: Boolean!

  """Kind of the policy."""
  kind: NetworkPolicyKind!

  """Name of the policy."""
  name: String!

  """Namespace of the policy."""
  namespace: String!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

"""The connection type for NetworkPolicy."""
type NetworkPolicyConnection {
  """A list of edges."""
  edges: [NetworkPolicyEdge]

  """A list of nodes."""
  nodes: [NetworkPolicy]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type NetworkPolicyEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: NetworkPolicy
}

"""Kind of the network policy"""
enum NetworkPolicyKind {
  """Policy kind of Cilium Network Policy."""
  CiliumNetworkPolicy

  """Policy kind of Network Policy."""
  NetworkPolicy
}

type Note implements ResolvableInterface {
  """User who wrote this note."""
  author: UserCore!

  """Content of the note."""
  body: String!

  """The GitLab Flavored Markdown rendering of `note`"""
  bodyHtml: String

  """
  Indicates if this note is confidential. Deprecated in 15.3: This was renamed.
  """
  confidential: Boolean @deprecated(reason: "This was renamed. Please use `internal`. Deprecated in 15.3.")

  """Timestamp of the note creation."""
  createdAt: Time!

  """Discussion this note is a part of."""
  discussion: Discussion

  """ID of the note."""
  id: NoteID!

  """Indicates if this note is internal."""
  internal: Boolean

  """Position of this note on a diff."""
  position: DiffPosition

  """Project associated with the note."""
  project: Project

  """Indicates if the object can be resolved."""
  resolvable: Boolean!

  """Indicates if the object is resolved."""
  resolved: Boolean!

  """Timestamp of when the object was resolved."""
  resolvedAt: Time

  """User who resolved the object."""
  resolvedBy: UserCore

  """Indicates whether this note was created by the system or by a user."""
  system: Boolean!

  """Name of the icon corresponding to a system note."""
  systemNoteIconName: String

  """Timestamp of the note's last activity."""
  updatedAt: Time!

  """URL to view this 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 discussions on this noteable."""
  discussions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): DiscussionConnection!

  """All notes on this noteable."""
  notes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): NoteConnection!
}

"""Represents an object that supports notes."""
union NoteableType = Design | Issue | MergeRequest

"""The connection type for Note."""
type NoteConnection {
  """A list of edges."""
  edges: [NoteEdge]

  """A list of nodes."""
  nodes: [Note]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type NoteEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Note
}

"""
A `NoteID` is a global ID. It is encoded as a string.

An example `NoteID` is: `"gid://gitlab/Note/1"`.
"""
scalar NoteID

type NotePermissions {
  """Indicates the user can perform `admin_note` on this resource"""
  adminNote: Boolean!

  """Indicates the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """Indicates the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """Indicates the user can perform `read_note` on this resource"""
  readNote: Boolean!

  """Indicates the user can perform `reposition_note` on this resource"""
  repositionNote: Boolean!

  """Indicates the user can perform `resolve_note` on this resource"""
  resolveNote: Boolean!
}

"""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
}

"""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 execution of 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 execution of 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 execution of 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 execution of 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 execution of 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 execution of 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
}

interface OrchestrationPolicy {
  """Description of the policy."""
  description: String!

  """Indicates whether this policy is enabled."""
  enabled: Boolean!

  """Name of the policy."""
  name: String!

  """Timestamp of when the policy YAML was last updated."""
  updatedAt: Time!

  """YAML definition of the policy."""
  yaml: String!
}

"""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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 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
}

"""Represents a package with pipelines in the Package Registry"""
type Package {
  """Whether the user can destroy the package."""
  canDestroy: Boolean!

  """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!

  """Package status."""
  status: PackageStatus!

  """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!

  """Version string."""
  version: String
}

"""Represents a package in the Package Registry"""
type PackageBase {
  """Whether the user can destroy the package."""
  canDestroy: Boolean!

  """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!

  """Package status."""
  status: PackageStatus!

  """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!

  """Version string."""
  version: String
}

"""The connection type for PackageBase."""
type PackageBaseConnection {
  """Total count of collection."""
  count: 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."""
  count: 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 {
  """Whether the user can destroy the package."""
  canDestroy: Boolean!

  """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 this 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!

  """Url of the PyPi project setup endpoint."""
  pypiSetupUrl: String

  """Url of the PyPi project endpoint."""
  pypiUrl: String

  """Package status."""
  status: PackageStatus!

  """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!

  """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 {
  """Timestamp when the PackageFileRegistry was created"""
  createdAt: Time

  """ID of the PackageFileRegistry"""
  id: ID!

  """Error message during sync of the PackageFileRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PackageFileRegistry
  """
  lastSyncedAt: Time

  """ID of the PackageFile."""
  packageFileId: ID!

  """Timestamp after which the PackageFileRegistry is resynced"""
  retryAt: Time

  """Number of consecutive failed sync attempts of the PackageFileRegistry"""
  retryCount: Int

  """Sync state of the PackageFileRegistry"""
  state: RegistryState

  """Timestamp after which the PackageFileRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the PackageFileRegistry
  """
  verifiedAt: Time
}

"""The connection type for PackageFileRegistry."""
type PackageFileRegistryConnection {
  """A list of edges."""
  edges: [PackageFileRegistryEdge]

  """A list of nodes."""
  nodes: [PackageFileRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type PackageFileRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: PackageFileRegistry
}

"""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 metadata associated with a Package"""
union PackageMetadata = ComposerMetadata | ConanMetadata | MavenMetadata | NugetMetadata | PypiMetadata

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 this 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

"""
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 {
  """
  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 this namespace.
  """
  genericDuplicatesAllowed: 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 this namespace.
  """
  mavenDuplicatesAllowed: Boolean!
}

"""
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

"""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 `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
}

"""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
}

"""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 the Geo replication and verification state of a pages_deployment
"""
type PagesDeploymentRegistry {
  """Timestamp when the PagesDeploymentRegistry was created"""
  createdAt: Time

  """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

  """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

  """Timestamp after which the PagesDeploymentRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the PagesDeploymentRegistry
  """
  verifiedAt: Time
}

"""The connection type for PagesDeploymentRegistry."""
type PagesDeploymentRegistryConnection {
  """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 {
  """Full path of the project."""
  projectPath: ID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of PagesMarkOnboardingComplete"""
type PagesMarkOnboardingCompletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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 this path."""
  user: UserCore
}

"""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

"""String or integer."""
scalar PayloadAlertFieldPathSegment

type Pipeline {
  """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!

  """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!

  """
  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)
  """
  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!

  """Pipelines this pipeline will trigger."""
  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

  """Timestamp of the pipeline's completion."""
  finishedAt: Time

  """ID of the pipeline."""
  id: ID!

  """Internal ID of the pipeline."""
  iid: String!

  """Specific job in this 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 the type of security report they produce."""
    securityReportTypes: [SecurityReportTypeEnum!]

    """Filter jobs by status."""
    statuses: [CiJobStatus!]

    """Filter jobs by retry-status."""
    retried: 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
  ): CiJobConnection

  """Event type of the pipeline associated with a merge request."""
  mergeRequestEventType: PipelineMergeRequestEventType

  """Relative path to the pipeline's page."""
  path: String

  """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

  """Specifies if a pipeline can be retried."""
  retryable: Boolean!

  """Vulnerability findings reported on the pipeline."""
  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!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """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, PENDING,
  RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED)
  """
  status: PipelineStatusEnum!

  """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

  """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: [PipelineMessage!]

  """Indicates if a pipeline has warnings."""
  warnings: Boolean!
}

type PipelineAnalytics {
  """Labels for the monthly pipeline count."""
  monthPipelinesLabels: [String!]

  """Total monthly successful pipeline count."""
  monthPipelinesSuccessful: [Int!]

  """Total monthly pipeline count."""
  monthPipelinesTotals: [Int!]

  """Pipeline times labels."""
  pipelineTimesLabels: [String!]

  """Pipeline times."""
  pipelineTimesValues: [Int!]

  """Labels for the weekly pipeline count."""
  weekPipelinesLabels: [String!]

  """Total weekly successful pipeline count."""
  weekPipelinesSuccessful: [Int!]

  """Total weekly pipeline count."""
  weekPipelinesTotals: [Int!]

  """Labels for the yearly pipeline count."""
  yearPipelinesLabels: [String!]

  """Total yearly successful pipeline count."""
  yearPipelinesSuccessful: [Int!]

  """Total yearly pipeline count."""
  yearPipelinesTotals: [Int!]
}

"""Represents the Geo sync and verification state of a pipeline artifact"""
type PipelineArtifactRegistry {
  """Timestamp when the PipelineArtifactRegistry was created"""
  createdAt: Time

  """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

  """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

  """Timestamp after which the PipelineArtifactRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the PipelineArtifactRegistry
  """
  verifiedAt: Time
}

"""The connection type for PipelineArtifactRegistry."""
type PipelineArtifactRegistryConnection {
  """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 {
  """ID of the pipeline to mutate."""
  id: CiPipelineID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of PipelineCancel"""
type PipelineCancelPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!
}

enum PipelineConfigSourceEnum {
  """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
}

"""The connection type for Pipeline."""
type PipelineConnection {
  """Total count of collection."""
  count: Int!

  """A list of edges."""
  edges: [PipelineEdge]

  """A list of nodes."""
  nodes: [Pipeline]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""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 PipelineDestroy"""
input PipelineDestroyInput {
  """ID of the pipeline to mutate."""
  id: CiPipelineID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of PipelineDestroy"""
type PipelineDestroyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type PipelineEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Pipeline
}

"""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!
}

type PipelinePermissions {
  """Indicates the user can perform `admin_pipeline` on this resource"""
  adminPipeline: Boolean!

  """Indicates the user can perform `destroy_pipeline` on this resource"""
  destroyPipeline: Boolean!

  """Indicates the user can perform `update_pipeline` on this resource"""
  updatePipeline: Boolean!
}

"""Autogenerated input type of PipelineRetry"""
input PipelineRetryInput {
  """ID of the pipeline to mutate."""
  id: CiPipelineID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of PipelineRetry"""
type PipelineRetryPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Pipeline after mutation."""
  pipeline: Pipeline
}

type PipelineSchedule {
  """Indicates if a pipeline schedule is active."""
  active: Boolean!

  """Cron notation for the schedule."""
  cron: String!

  """Timezone for the pipeline schedule."""
  cronTimezone: String!

  """Description of the pipeline schedule."""
  description: String

  """Indicates if a pipelines schedule belongs to a tag."""
  forTag: Boolean!

  """ID of the pipeline schedule."""
  id: ID!

  """Last pipeline object."""
  lastPipeline: Pipeline

  """Time when the next pipeline will run."""
  nextRunAt: Time!

  """Owner of the pipeline schedule."""
  owner: UserCore!

  """Time when the next pipeline will run."""
  realNextRun: Time!

  """Git ref for the pipeline schedule."""
  refForDisplay: String

  """Path to the ref that triggered the pipeline."""
  refPath: String

  """Permissions for the current user on the resource"""
  userPermissions: PipelineSchedulePermissions!
}

"""The connection type for PipelineSchedule."""
type PipelineScheduleConnection {
  """Total count of collection."""
  count: Int!

  """A list of edges."""
  edges: [PipelineScheduleEdge]

  """A list of nodes."""
  nodes: [PipelineSchedule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""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 {
  """
  Indicates the user can perform `admin_pipeline_schedule` on this resource
  """
  adminPipelineSchedule: Boolean!

  """
  Indicates the user can perform `play_pipeline_schedule` on this resource
  """
  playPipelineSchedule: Boolean!

  """
  Indicates the user can perform `take_ownership_pipeline_schedule` on this resource
  """
  takeOwnershipPipelineSchedule: Boolean!

  """
  Indicates the user can perform `update_pipeline_schedule` on this resource
  """
  updatePipelineSchedule: Boolean!
}

enum PipelineScheduleStatus {
  """Active pipeline schedules."""
  ACTIVE

  """Inactive pipeline schedules."""
  INACTIVE
}

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 {
  """List of assets associated with the vulnerability."""
  assets: [AssetType!]

  """
  Type of the security report that found the vulnerability. Deprecated in 15.4:
  This field will be removed from the Finding domain model.
  """
  confidence: String @deprecated(reason: "This field will be removed from the Finding domain model. Deprecated in 15.4.")

  """Description of the vulnerability finding."""
  description: String

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Evidence for the vulnerability."""
  evidence: VulnerabilityEvidence

  """Indicates whether the vulnerability is a false positive."""
  falsePositive: Boolean

  """Identifiers of the vulnerability finding."""
  identifiers: [VulnerabilityIdentifier!]!

  """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

  """Name of the vulnerability finding. Deprecated in 15.1: Use `title`."""
  name: String @deprecated(reason: "Use `title`. Deprecated in 15.1.")

  """Project on which the vulnerability finding was found."""
  project: Project

  """
  Name of the vulnerability finding. Deprecated in 15.1: The
  `project_fingerprint` attribute is being deprecated. Use `uuid` to identify findings.
  """
  projectFingerprint: String @deprecated(reason: "The `project_fingerprint` attribute is being deprecated. Use `uuid` to identify findings. Deprecated in 15.1.")

  """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

  """URL to the vulnerability's details page."""
  solution: String

  """Finding status."""
  state: VulnerabilityState

  """Title of the vulnerability finding."""
  title: String

  """Name of the vulnerability finding."""
  uuid: String
}

"""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
}

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 has not started running yet."""
  PENDING

  """Pipeline is running."""
  RUNNING

  """At least one stage of the pipeline failed."""
  FAILED

  """Pipeline completed successfully."""
  SUCCESS

  """Pipeline was canceled before completion."""
  CANCELED

  """Pipeline was skipped."""
  SKIPPED

  """Pipeline needs to be manually started."""
  MANUAL

  """Pipeline is scheduled to run."""
  SCHEDULED
}

type Project {
  """Size limit for the repository in bytes."""
  actualRepositorySizeLimit: Float

  """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

  """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 this 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 this 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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."""
  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

  """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

  """API fuzzing configuration for the project. """
  apiFuzzingCiConfiguration: ApiFuzzingCiConfiguration

  """Indicates the archived status of the project."""
  archived: Boolean

  """
  Indicates if issues referenced by merge requests and commits within the default branch are closed automatically.
  """
  autocloseReferencedIssues: Boolean

  """URL to avatar image file of the project."""
  avatarUrl: String

  """A single board of the project."""
  board(
    """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(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): BranchRuleConnection

  """CI/CD settings for the project."""
  ciCdSettings: ProjectCiCdSetting

  """Path of the CI configuration file."""
  ciConfigPathOrDefault: String!

  """
  CI/CD config variable. Introduced in 15.3: This feature is in Alpha. It can be changed or removed at any time.
  """
  ciConfigVariables(
    """Sha."""
    sha: String!
  ): [CiConfigVariable!] @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.")

  """The CI Job Tokens scope of access."""
  ciJobTokenScope: CiJobTokenScopeType

  """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

  """List of the project's CI/CD variables."""
  ciVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """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 the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Compliance frameworks associated with the project."""
  complianceFrameworks(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ComplianceFrameworkConnection

  """Container expiration policy of the project."""
  containerExpirationPolicy: ContainerExpirationPolicy

  """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 this 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!

  """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

  """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

  """Details of the deployment of the project."""
  deployment(
    """Project-level internal ID of the Deployment."""
    iid: ID!
  ): DeploymentDetails

  """Short description of the project."""
  description: String

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Project's DORA metrics."""
  dora: Dora

  """A single environment of the project."""
  environment(
    """Name of the environment."""
    name: String

    """Search query for environment name."""
    search: String

    """States of environments that should be included in result."""
    states: [String!]
  ): Environment

  """Environments of the project."""
  environments(
    """Name of the environment."""
    name: String

    """Search query for environment name."""
    search: String

    """States of environments that should be included in result."""
    states: [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

  """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

  """Number of times the project has been forked."""
  forksCount: Int!

  """Full path of the project."""
  fullPath: ID!

  """Grafana integration details for the project."""
  grafanaIntegration: GrafanaIntegration

  """Group of the project."""
  group: Group

  """URL to connect to the project via HTTPS."""
  httpUrlToRepo: String

  """ID of the project."""
  id: ID!

  """Status of import background job of the project."""
  importStatus: String

  """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

  """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

  """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!]

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to this issue."""
    labelName: [String]

    """Milestone applied to this issue."""
    milestoneTitle: [String]

    """Username of the author of the issue."""
    authorUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """Issues created before this date."""
    createdBefore: Time

    """Issues created after this date."""
    createdAfter: Time

    """Issues updated before this date."""
    updatedBefore: Time

    """Issues updated after this date."""
    updatedAfter: Time

    """Issues closed before this date."""
    closedBefore: Time

    """Issues closed after this date."""
    closedAfter: Time

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """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

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Sort issues by this criteria."""
    sort: IssueSort = created_desc

    """Current state of this issue."""
    state: IssuableState

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """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!]

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to this issue."""
    labelName: [String]

    """Milestone applied to this issue."""
    milestoneTitle: [String]

    """Username of the author of the issue."""
    authorUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """Issues created before this date."""
    createdBefore: Time

    """Issues created after this date."""
    createdAfter: Time

    """Issues updated before this date."""
    updatedBefore: Time

    """Issues updated after this date."""
    updatedAfter: Time

    """Issues closed before this date."""
    closedBefore: Time

    """Issues closed after this date."""
    closedAfter: Time

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """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

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """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!]

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of issues. For example, `["1", "2"]`."""
    iids: [String!]

    """Labels applied to this issue."""
    labelName: [String]

    """Milestone applied to this issue."""
    milestoneTitle: [String]

    """Username of the author of the issue."""
    authorUsername: String

    """Usernames of users assigned to the issue."""
    assigneeUsernames: [String!]

    """
    ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported.
    """
    assigneeId: String

    """Issues created before this date."""
    createdBefore: Time

    """Issues created after this date."""
    createdAfter: Time

    """Issues updated before this date."""
    updatedBefore: Time

    """Issues updated after this date."""
    updatedAfter: Time

    """Issues closed before this date."""
    closedBefore: Time

    """Issues closed after this date."""
    closedAfter: Time

    """Filter issues by the given issue types."""
    types: [IssueType!]

    """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

    """
    Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues.
    """
    confidential: Boolean

    """Negated arguments."""
    not: NegatedIssueFilterInput

    """ID of a contact assigned to the issues."""
    crmContactId: String

    """ID of an organization assigned to the issues."""
    crmOrganizationId: String

    """Sort issues by this criteria."""
    sort: IssueSort = created_desc

    """Current state of this issue."""
    state: IssuableState

    """List of iteration Global IDs applied to the issue."""
    iterationId: [ID]

    """Filter by iteration ID wildcard."""
    iterationWildcardId: IterationWildcardId

    """
    ID of an epic associated with the issues, "none" and "any" values are supported.
    """
    epicId: String

    """Whether to include subepics when filtering issues by epicId."""
    includeSubepics: Boolean

    """Weight applied to the issue, "none" and "any" values are supported."""
    weight: String

    """Health status of the issue, "none" and "any" values are supported."""
    healthStatusFilter: HealthStatusFilter

    """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

  """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 this 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

    """
    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

    """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

  """
  Jobs of a project. This field can only be resolved for one project 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
  ): CiJobConnection

  """Indicates if CI/CD pipeline jobs are enabled for the current user."""
  jobsEnabled: Boolean

  """Label available on this project."""
  label(
    """Title of the label."""
    title: String!
  ): Label

  """Labels available on this project."""
  labels(
    """Search term to find labels with."""
    searchTerm: String

    """Include labels from ancestor 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
  ): LabelConnection

  """Timestamp of the project last activity."""
  lastActivityAt: Time

  """Indicates if the project has Large File Storage (LFS) enabled."""
  lfsEnabled: Boolean

  """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

  """Merge requests of the project."""
  mergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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 current user"""
  mergeRequestsEnabled: Boolean

  """
  Indicates if no merge commits should be created and all merges should instead
  be fast-forwarded, which means that merging is only allowed if the branch
  could be fast-forwarded.
  """
  mergeRequestsFfOnlyEnabled: Boolean

  """Milestones of the project."""
  milestones(
    """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 this 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

  """Name of the project (without namespace)."""
  name: String!

  """Full name of the project with its namespace."""
  nameWithNamespace: String!

  """Namespace of the project."""
  namespace: Namespace

  """
  Network Policies of the project Deprecated in 14.8: Network policies are
  deprecated and will be removed in GitLab 16.0. Since GitLab 15.0 this field
  returns no data.
  """
  networkPolicies(
    """Global ID of the environment to filter policies."""
    environmentId: EnvironmentID

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): NetworkPolicyConnection @deprecated(reason: "Network policies are deprecated and will be removed in GitLab 16.0. Since GitLab 15.0 this field returns no data. Deprecated in 14.8.")

  """
  Indicates if merge requests of the project can only be merged when all the discussions are resolved.
  """
  onlyAllowMergeIfAllDiscussionsAreResolved: Boolean

  """
  Indicates if merge requests of the project can only be merged with successful jobs.
  """
  onlyAllowMergeIfPipelineSucceeds: Boolean

  """Number of open issues for the project."""
  openIssuesCount: Int

  """Packages of the project."""
  packages(
    """Sort packages by this 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 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

  """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

  """Build pipeline of the project."""
  pipeline(
    """IID of the Pipeline. For example, "1"."""
    iid: ID

    """
    SHA of the Pipeline. For example, "dyd0f15ay83993f5ab66k927w28673882x99100b".
    """
    sha: String
  ): Pipeline

  """Pipeline analytics."""
  pipelineAnalytics: PipelineAnalytics

  """Build 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 schedules of the project. This field can only be resolved for one project per request.
  """
  pipelineSchedules(
    """Filter pipeline schedules by active status."""
    status: PipelineScheduleStatus

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Build 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

    """Filter pipelines by the sha of the commit they are run for."""
    sha: String

    """Filter pipelines by their source."""
    source: String

    """Pipelines updated after this date."""
    updatedAfter: Time

    """Pipelines updated before this 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 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]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """
  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 this 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, e.g., "1"."""
    iid: ID

    """List of IIDs of requirements, e.g., `[1, 2]`."""
    iids: [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, e.g., "1"."""
    iid: ID

    """List of IIDs of requirements, e.g., `[1, 2]`."""
    iids: [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

  """SAST CI configuration for the project."""
  sastCiConfiguration: SastCiConfiguration

  """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`.
    """
    actionScanTypes: [SecurityReportTypeEnum!]

    """Filter policies by the given policy relationship."""
    relationship: SecurityPolicyRelationType = DIRECT

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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"""
  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

  """Path to project's security dashboard."""
  securityDashboardPath: String

  """Information about security analyzers used in the project."""
  securityScanners: SecurityScanners

  """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

  """Commit message used to apply merge request suggestions."""
  suggestionCommitMessage: String

  """
  List of project topics (not Git tags). Deprecated in 13.12: Use `topics`.
  """
  tagList: String @deprecated(reason: "Use `topics`. Deprecated in 13.12.")

  """Find a single Terraform state by name."""
  terraformState(
    """Name of the Terraform state."""
    name: String!
  ): TerraformState

  """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 15.3: This feature is in
  Alpha. It can be changed or removed at any time.
  """
  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: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

  """Permissions for the current user on the resource"""
  userPermissions: ProjectPermissions!

  """Visibility of the project."""
  visibility: String

  """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 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 have linked issues."""
    hasIssues: 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!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """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 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 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

    """
    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!]
  ): VulnerabilitySeveritiesCount

  """Web URL of the project."""
  webUrl: String

  """Indicates if Wikis are enabled for the current user"""
  wikiEnabled: Boolean

  """
  Work item types available to the project. Returns `null` if `work_items`
  feature flag is disabled. This flag is disabled by default, because the
  feature is experimental and is subject to change without notice.
  """
  workItemTypes(
    """
    If `true`, only taskable work item types will be returned. Argument is
    experimental and can be removed in the future without notice.
    """
    taskable: 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 15.1: This feature is in Alpha. It can be changed or removed at any time.
  """
  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!]

    """IID of the issue. For example, "1"."""
    iid: String

    """List of IIDs of work items. For example, `["1", "2"]`."""
    iids: [String!]

    """Sort work items by this criteria."""
    sort: WorkItemSort = created_desc

    """Current state of this work item."""
    state: IssuableState

    """Filter work items by the given work item types."""
    types: [IssueType!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")
}

type ProjectCiCdSetting {
  """
  Indicates CI job tokens generated in this project have restricted access to resources.
  """
  jobTokenScopeEnabled: Boolean

  """Whether to keep the latest builds artifacts."""
  keepLatestArtifact: Boolean

  """Whether merge pipelines are enabled."""
  mergePipelinesEnabled: Boolean

  """Whether merge trains are enabled."""
  mergeTrainsEnabled: Boolean

  """Project the CI/CD settings belong to."""
  project: Project
}

"""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 if the latest artifact should be kept for this project."""
  keepLatestArtifact: Boolean

  """
  Indicates CI job tokens generated in this project have restricted access to resources.
  """
  jobTokenScopeEnabled: Boolean

  """Indicates if merge pipelines are enabled for the project."""
  mergePipelinesEnabled: Boolean

  """Indicates if merge trains are enabled for the project."""
  mergeTrainsEnabled: Boolean
}

"""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 execution of the mutation."""
  errors: [String!]!
}

"""The connection type for Project."""
type ProjectConnection {
  """Total count of collection."""
  count: Int!

  """A list of edges."""
  edges: [ProjectEdge]

  """A list of nodes."""
  nodes: [Project]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type ProjectEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Project
}

"""
A `ProjectID` is a global ID. It is encoded as a string.

An example `ProjectID` is: `"gid://gitlab/Project/1"`.
"""
scalar ProjectID

"""Represents a Project Membership"""
type ProjectMember implements MemberInterface {
  """GitLab::Access level."""
  accessLevel: AccessLevel

  """Date and time the membership was created."""
  createdAt: Time

  """User that authorized membership."""
  createdBy: 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!
}

"""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
}

type ProjectPermissions {
  """Indicates the user can perform `admin_operations` on this resource"""
  adminOperations: Boolean!

  """Indicates the user can perform `admin_path_locks` on this resource"""
  adminPathLocks: Boolean!

  """Indicates the user can perform `admin_project` on this resource"""
  adminProject: Boolean!

  """Indicates the user can perform `admin_remote_mirror` on this resource"""
  adminRemoteMirror: Boolean!

  """Indicates the user can perform `admin_wiki` on this resource"""
  adminWiki: Boolean!

  """Indicates the user can perform `archive_project` on this resource"""
  archiveProject: Boolean!

  """Indicates the user can perform `change_namespace` on this resource"""
  changeNamespace: Boolean!

  """
  Indicates the user can perform `change_visibility_level` on this resource
  """
  changeVisibilityLevel: Boolean!

  """Indicates the user can perform `create_deployment` on this resource"""
  createDeployment: Boolean!

  """Indicates the user can perform `create_design` on this resource"""
  createDesign: Boolean!

  """Indicates the user can perform `create_issue` on this resource"""
  createIssue: Boolean!

  """Indicates the user can perform `create_label` on this resource"""
  createLabel: Boolean!

  """
  Indicates the user can perform `create_merge_request_from` on this resource
  """
  createMergeRequestFrom: Boolean!

  """
  Indicates the user can perform `create_merge_request_in` on this resource
  """
  createMergeRequestIn: Boolean!

  """Indicates the user can perform `create_pages` on this resource"""
  createPages: Boolean!

  """Indicates the user can perform `create_pipeline` on this resource"""
  createPipeline: Boolean!

  """
  Indicates the user can perform `create_pipeline_schedule` on this resource
  """
  createPipelineSchedule: Boolean!

  """Indicates the user can perform `create_snippet` on this resource"""
  createSnippet: Boolean!

  """Indicates the user can perform `create_wiki` on this resource"""
  createWiki: Boolean!

  """Indicates the user can perform `destroy_design` on this resource"""
  destroyDesign: Boolean!

  """Indicates the user can perform `destroy_pages` on this resource"""
  destroyPages: Boolean!

  """Indicates the user can perform `destroy_wiki` on this resource"""
  destroyWiki: Boolean!

  """Indicates the user can perform `download_code` on this resource"""
  downloadCode: Boolean!

  """Indicates the user can perform `download_wiki_code` on this resource"""
  downloadWikiCode: Boolean!

  """Indicates the user can perform `fork_project` on this resource"""
  forkProject: Boolean!

  """Indicates the user can perform `push_code` on this resource"""
  pushCode: Boolean!

  """
  Indicates the user can perform `push_to_delete_protected_branch` on this resource
  """
  pushToDeleteProtectedBranch: Boolean!

  """Indicates the user can perform `read_commit_status` on this resource"""
  readCommitStatus: Boolean!

  """Indicates the user can perform `read_cycle_analytics` on this resource"""
  readCycleAnalytics: Boolean!

  """Indicates the user can perform `read_design` on this resource"""
  readDesign: Boolean!

  """Indicates the user can perform `read_merge_request` on this resource"""
  readMergeRequest: Boolean!

  """Indicates the user can perform `read_pages_content` on this resource"""
  readPagesContent: Boolean!

  """Indicates the user can perform `read_project` on this resource"""
  readProject: Boolean!

  """Indicates the user can perform `read_project_member` on this resource"""
  readProjectMember: Boolean!

  """Indicates the user can perform `read_wiki` on this resource"""
  readWiki: Boolean!

  """Indicates the user can perform `remove_fork_project` on this resource"""
  removeForkProject: Boolean!

  """Indicates the user can perform `remove_pages` on this resource"""
  removePages: Boolean!

  """Indicates the user can perform `remove_project` on this resource"""
  removeProject: Boolean!

  """Indicates the user can perform `rename_project` on this resource"""
  renameProject: Boolean!

  """Indicates the user can perform `request_access` on this resource"""
  requestAccess: Boolean!

  """Indicates the user can perform `update_pages` on this resource"""
  updatePages: Boolean!

  """Indicates the user can perform `update_wiki` on this resource"""
  updateWiki: Boolean!

  """Indicates the user can perform `upload_file` on this resource"""
  uploadFile: Boolean!
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Project after mutation."""
  project: Project
}

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

  """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
}

"""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!

  """Whether the integration is receiving alerts."""
  active: Boolean!

  """Endpoint at which Prometheus can be queried."""
  apiUrl: String!
}

"""Autogenerated return type of PrometheusIntegrationCreate"""
type PrometheusIntegrationCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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 execution of the mutation."""
  errors: [String!]!

  """Newly created integration."""
  integration: AlertManagementPrometheusIntegration
}

"""Autogenerated input type of PrometheusIntegrationUpdate"""
input PrometheusIntegrationUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the integration to mutate."""
  id: IntegrationsPrometheusID!

  """Whether the integration is receiving alerts."""
  active: Boolean

  """Endpoint at which Prometheus can be queried."""
  apiUrl: String
}

"""Autogenerated return type of PrometheusIntegrationUpdate"""
type PrometheusIntegrationUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Newly created integration."""
  integration: AlertManagementPrometheusIntegration
}

"""Autogenerated input type of PromoteToEpic"""
input PromoteToEpicInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of the mutation."""
  errors: [String!]!

  """Issue after mutation."""
  issue: Issue
}

"""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
}

"""
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
}

"""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
}

"""Represents the push access level of a branch protection."""
type PushAccessLevel {
  """GitLab::Access level."""
  accessLevel: Int!

  """Human readable representation for this access level."""
  accessLevelDescription: String!

  """Group associated with this access level."""
  group: Group

  """User associated with this access level."""
  user: UserCore
}

"""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
}

"""Represents rules that commit pushes must follow."""
type PushRules {
  """Indicates whether commits not signed through GPG will be rejected."""
  rejectUnsignedCommits: Boolean!
}

"""Pypi metadata"""
type PypiMetadata {
  """ID of the metadatum."""
  id: PackagesPypiMetadatumID!

  """Required Python version of the Pypi package."""
  requiredPython: String
}

type Query {
  """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

  """
  Linted and processed contents of a CI config.
  Should not be requested more than once per request.
  
  """
  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
  ): CiConfig

  """CI/CD minutes 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 CI/CD minutes usage."""
    namespaceId: NamespaceID
  ): CiMinutesNamespaceMonthlyUsageConnection

  """List of the instance's CI/CD variables."""
  ciVariables(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """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: UserCore

  """Fields related to design management."""
  designManagement: DesignManagement!

  """
  Get configured DevOps adoption namespaces. **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

  """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

  """Find a Geo node."""
  geoNode(
    """Name of the Geo node. Defaults to the current Geo node name."""
    name: String
  ): GeoNode

  """Whether Gitpod is enabled in application settings."""
  gitpodEnabled: Boolean

  """Find a group."""
  group(
    """
    Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`.
    """
    fullPath: ID!
  ): Group

  """Fields related to Instance Security Dashboard."""
  instanceSecurityDashboard: InstanceSecurityDashboard

  """Find an issue."""
  issue(
    """Global ID of the issue."""
    id: IssueID!
  ): Issue

  """Find an iteration."""
  iteration(
    """Find an iteration by its ID."""
    id: IterationID!
  ): Iteration

  """All jobs on this GitLab instance."""
  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
  ): CiJobConnection

  """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

  """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 namespace."""
  namespace(
    """
    Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`.
    """
    fullPath: ID!
  ): Namespace

  """
  Find a package. This field can only be resolved for one query in any single request.
  """
  package(
    """Global ID of the package."""
    id: PackagesPackageID!
  ): PackageDetailsType

  """Find a project."""
  project(
    """
    Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`.
    """
    fullPath: ID!
  ): Project

  """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!]

    """Filter projects by IDs."""
    ids: [ID!]

    """
    Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc`
    """
    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
  ): ProjectConnection

  """Information about the complexity of the GraphQL query."""
  queryComplexity: QueryComplexity

  """Find a runner."""
  runner(
    """Runner ID."""
    id: CiRunnerID!
  ): CiRunner

  """Supported runner platforms."""
  runnerPlatforms(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): RunnerPlatformConnection

  """Runner setup instructions."""
  runnerSetup(
    """Platform to generate the instructions for."""
    platform: String!

    """Architecture to generate the instructions for."""
    architecture: String!
  ): RunnerSetup

  """Find runners visible to the current user."""
  runners(
    """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """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

  """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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Get statistics on the instance."""
  usageTrendsMeasurements(
    """Type of measurement or statistics to retrieve."""
    identifier: MeasurementIdentifier!

    """Measurement recorded after this date."""
    recordedAfter: Time

    """Measurement recorded before this 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 this criteria."""
    sort: Sort = created_desc

    """Query to search users by name, username, or primary email."""
    search: String

    """Return only admin users."""
    admins: 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
  ): UserCoreConnection

  """
  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 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 have linked issues."""
    hasIssues: 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!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 work item. Returns `null` if `work_items` feature flag is disabled.
  Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time.
  """
  workItem(
    """Global ID of the work item."""
    id: WorkItemID!
  ): WorkItem @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.")
}

type QueryComplexity {
  """GraphQL query complexity limit."""
  limit: Int

  """GraphQL query complexity score."""
  score: Int
}

"""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
}

"""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
}

"""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

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Evidence for the release."""
  evidences(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ReleaseEvidenceConnection

  """Indicates the release is an 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

  """Indicates the link points to an external resource."""
  external: Boolean

  """ID of the link."""
  id: ID!

  """
  Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`.
  """
  linkType: ReleaseAssetLinkType

  """Name of the link."""
  name: String

  """URL of the link."""
  url: String
}

"""The connection type for ReleaseAssetLink."""
type ReleaseAssetLinkConnection {
  """A list of edges."""
  edges: [ReleaseAssetLinkEdge]

  """A list of nodes."""
  nodes: [ReleaseAssetLink]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""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 execution of 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 execution of 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 execution of 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."""
  count: 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 {
  """Full path of the project the release is associated with."""
  projectPath: ID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of the mutation."""
  errors: [String!]!

  """Release after mutation."""
  release: Release
}

"""Autogenerated input type of ReleaseDelete"""
input ReleaseDeleteInput {
  """Full path of the project the release is associated with."""
  projectPath: ID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of 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 this release and `state=closed`.
  """
  closedIssuesUrl: String

  """
  HTTP URL of the merge request page , filtered by this 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 this release and `state=merged`.
  """
  mergedMergeRequestsUrl: String

  """
  HTTP URL of the issues page, filtered by this release and `state=open`.
  """
  openedIssuesUrl: String

  """
  HTTP URL of the merge request page, filtered by this 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 {
  """Full path of the project the release is associated with."""
  projectPath: ID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of the mutation."""
  errors: [String!]!

  """Release after mutation."""
  release: Release
}

"""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 execution of 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 this 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 execution of the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note
}

type Repository {
  """Blobs contained within the repository"""
  blobs(
    """Array of desired blob paths."""
    paths: [String!]!

    """Commit ref to get the blobs from. Default value is HEAD."""
    ref: 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
  ): 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!]

  """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!

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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
  ): Tree
}

type RepositoryBlob {
  """Whether the current project is archived."""
  archived: Boolean

  """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

  """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 this blob using a forked project."""
  forkAndEditPath: String

  """Web path to view this blob using a forked project."""
  forkAndViewPath: String

  """URL to the blob within Gitpod."""
  gitpodBlobUrl: String

  """Web path to blob history page."""
  historyPath: String

  """ID of the blob."""
  id: ID!

  """Web path to edit this blob in the Web IDE."""
  ideEditPath: String

  """Web path to edit this 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: Int

  """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

  """Blob content simple viewer."""
  simpleViewer: BlobViewer!

  """Size (in bytes) of the blob."""
  size: Int

  """
  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
}

"""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."""
  iid: ID!

  """Indicates if latest test report was created by user."""
  lastTestReportManuallyCreated: Boolean

  """Latest requirement test report state."""
  lastTestReportState: TestReportState

  """Project to which the requirement belongs."""
  project: Project!

  """State of the requirement."""
  state: RequirementState!

  """Test reports of the requirement."""
  testReports(
    """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

  """GitLab Flavored Markdown rendering of `title`."""
  titleHtml: String

  """Timestamp of when the requirement was last updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: RequirementPermissions!
}

"""The connection type for Requirement."""
type RequirementConnection {
  """A list of edges."""
  edges: [RequirementEdge]

  """A list of nodes."""
  nodes: [Requirement]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type RequirementEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Requirement
}

"""Check permissions for the current user on a requirement"""
type RequirementPermissions {
  """Indicates the user can perform `admin_requirement` on this resource"""
  adminRequirement: Boolean!

  """Indicates the user can perform `create_requirement` on this resource"""
  createRequirement: Boolean!

  """Indicates the user can perform `destroy_requirement` on this resource"""
  destroyRequirement: Boolean!

  """Indicates the user can perform `read_requirement` on this resource"""
  readRequirement: Boolean!

  """Indicates the user can perform `update_requirement` on this resource"""
  updateRequirement: Boolean!
}

"""State of a requirement"""
enum RequirementState {
  """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
}

type RootStorageStatistics {
  """CI artifacts size in bytes."""
  buildArtifactsSize: Float!

  """Container Registry size in bytes."""
  containerRegistrySize: Float!

  """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!

  """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!
}

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 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 execution of the mutation."""
  errors: [String!]!
}

type RunnerPermissions {
  """Indicates the user can perform `delete_runner` on this resource"""
  deleteRunner: Boolean!

  """Indicates the user can perform `read_runner` on this resource"""
  readRunner: Boolean!

  """Indicates 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 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 execution of the mutation."""
  errors: [String!]!

  """Runner token after mutation."""
  token: String
}

"""Autogenerated input type of RunnerUpdate"""
input RunnerUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the runner to update."""
  id: CiRunnerID!

  """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!]

  """
  Projects associated with the runner. Available only for project runners.
  """
  associatedProjects: [ProjectID!]

  """
  Public projects' "minutes cost factor" associated with the runner (GitLab.com only).
  """
  publicProjectsMinutesCostFactor: Float

  """
  Private projects' "minutes cost factor" associated with the runner (GitLab.com only).
  """
  privateProjectsMinutesCostFactor: Float
}

"""Autogenerated return type of RunnerUpdate"""
type RunnerUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Runner after mutation."""
  runner: CiRunner
}

"""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 saved reply."""
  id: UsersSavedReplyID!

  """Name of the saved reply."""
  name: String!
}

"""The connection type for SavedReply."""
type SavedReplyConnection {
  """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 execution of 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 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 execution of 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

  """Global ID of the saved reply."""
  id: UsersSavedReplyID!

  """Name of the saved reply."""
  name: String!

  """Content of the saved reply."""
  content: String!
}

"""Autogenerated return type of SavedReplyUpdate"""
type SavedReplyUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Saved reply after mutation."""
  savedReply: SavedReply
}

"""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 {
  """Description of the policy."""
  description: String!

  """Indicates whether this policy is enabled."""
  enabled: Boolean!

  """Name of the policy."""
  name: String!

  """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!
}

"""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

  """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 execution of the mutation."""
  errors: [String!]!
}

"""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
}

"""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
}

"""Represents the scan result policy"""
type ScanResultPolicy implements OrchestrationPolicy {
  """Description of the policy."""
  description: String!

  """Indicates whether this policy is enabled."""
  enabled: Boolean!

  """Approvers of the group type."""
  groupApprovers: [Group!]

  """Name of the policy."""
  name: String!

  """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
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Issue created after mutation."""
  issue: Issue
}

"""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 execution of the mutation."""
  errors: [String!]!

  """UUID of dismissed finding."""
  uuid: String
}

"""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

  """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 execution of 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
}

"""Autogenerated return type of SecurityPolicyProjectCreate"""
type SecurityPolicyProjectCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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
}

"""Autogenerated return type of SecurityPolicyProjectUnassign"""
type SecurityPolicyProjectUnassignPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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
}

"""Represents a policy source. Its fields depend on the source type."""
union SecurityPolicySource = GroupSecurityPolicySource | ProjectSecurityPolicySource

"""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 `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 `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 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
}

"""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 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
}

"""
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 execution of 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 {
  """AsanaService type"""
  ASANA_SERVICE

  """AssemblaService type"""
  ASSEMBLA_SERVICE

  """BambooService type"""
  BAMBOO_SERVICE

  """BugzillaService type"""
  BUGZILLA_SERVICE

  """BuildkiteService type"""
  BUILDKITE_SERVICE

  """CampfireService type"""
  CAMPFIRE_SERVICE

  """ConfluenceService type"""
  CONFLUENCE_SERVICE

  """CustomIssueTrackerService type"""
  CUSTOM_ISSUE_TRACKER_SERVICE

  """DatadogService type"""
  DATADOG_SERVICE

  """DiscordService type"""
  DISCORD_SERVICE

  """DroneCiService type"""
  DRONE_CI_SERVICE

  """EmailsOnPushService type"""
  EMAILS_ON_PUSH_SERVICE

  """EwmService type"""
  EWM_SERVICE

  """ExternalWikiService type"""
  EXTERNAL_WIKI_SERVICE

  """FlowdockService type"""
  FLOWDOCK_SERVICE

  """GithubService type"""
  GITHUB_SERVICE

  """GitlabSlackApplicationService type (Gitlab.com only)"""
  GITLAB_SLACK_APPLICATION_SERVICE

  """HangoutsChatService type"""
  HANGOUTS_CHAT_SERVICE

  """HarborService type"""
  HARBOR_SERVICE

  """IrkerService type"""
  IRKER_SERVICE

  """JenkinsService type"""
  JENKINS_SERVICE

  """JiraService type"""
  JIRA_SERVICE

  """MattermostService type"""
  MATTERMOST_SERVICE

  """MattermostSlashCommandsService type"""
  MATTERMOST_SLASH_COMMANDS_SERVICE

  """MicrosoftTeamsService type"""
  MICROSOFT_TEAMS_SERVICE

  """PackagistService type"""
  PACKAGIST_SERVICE

  """PipelinesEmailService type"""
  PIPELINES_EMAIL_SERVICE

  """PivotaltrackerService type"""
  PIVOTALTRACKER_SERVICE

  """PrometheusService type"""
  PROMETHEUS_SERVICE

  """PumbleService type"""
  PUMBLE_SERVICE

  """PushoverService type"""
  PUSHOVER_SERVICE

  """RedmineService type"""
  REDMINE_SERVICE

  """ShimoService type"""
  SHIMO_SERVICE

  """SlackService type"""
  SLACK_SERVICE

  """SlackSlashCommandsService type"""
  SLACK_SLASH_COMMANDS_SERVICE

  """TeamcityService type"""
  TEAMCITY_SERVICE

  """UnifyCircuitService type"""
  UNIFY_CIRCUIT_SERVICE

  """WebexTeamsService type"""
  WEBEX_TEAMS_SERVICE

  """YoutrackService type"""
  YOUTRACK_SERVICE

  """ZentaoService type"""
  ZENTAO_SERVICE
}

"""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 with override."""
  DISABLED_WITH_OVERRIDE

  """Sharing of runners is enabled."""
  ENABLED
}

"""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

  """Timestamp this snippet was created."""
  createdAt: Time!

  """Description of the snippet."""
  description: String

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """All discussions on this noteable."""
  discussions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): DiscussionConnection!

  """File Name of the snippet."""
  fileName: String

  """HTTP URL to the snippet repository."""
  httpUrlToRepo: String

  """ID of the snippet."""
  id: SnippetID!

  """All notes on this noteable."""
  notes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): NoteConnection!

  """Project the snippet is associated with."""
  project: Project

  """Raw URL of the snippet."""
  rawUrl: String!

  """SSH URL to the snippet repository."""
  sshUrlToRepo: String

  """Title of the snippet."""
  title: String!

  """Timestamp this snippet was updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: SnippetPermissions!

  """Visibility Level of the snippet."""
  visibilityLevel: VisibilityLevelsEnum!

  """Web URL of the snippet."""
  webUrl: String!
}

"""Represents the snippet blob"""
type SnippetBlob {
  """Shows whether the blob is binary."""
  binary: Boolean!

  """Blob external storage."""
  externalStorage: String

  """Blob mode."""
  mode: String

  """Blob name."""
  name: String

  """Blob path."""
  path: String

  """Blob plain highlighted data."""
  plainData: String

  """Blob raw content endpoint path."""
  rawPath: String!

  """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 {
  """Indicates the user can perform `admin_snippet` on this resource"""
  adminSnippet: Boolean!

  """Indicates the user can perform `award_emoji` on this resource"""
  awardEmoji: Boolean!

  """Indicates the user can perform `create_note` on this resource"""
  createNote: Boolean!

  """Indicates the user can perform `read_snippet` on this resource"""
  readSnippet: Boolean!

  """Indicates the user can perform `report_snippet` on this resource"""
  reportSnippet: Boolean!

  """Indicates the user can perform `update_snippet` on this resource"""
  updateSnippet: Boolean!
}

"""Represents the Geo sync and verification state of a snippet repository"""
type SnippetRepositoryRegistry {
  """Timestamp when the SnippetRepositoryRegistry was created"""
  createdAt: Time

  """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

  """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

  """Timestamp after which the SnippetRepositoryRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the SnippetRepositoryRegistry
  """
  verifiedAt: Time
}

"""The connection type for SnippetRepositoryRegistry."""
type SnippetRepositoryRegistryConnection {
  """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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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
}

type StatusAction {
  """Title for the button, for example: Retry this job."""
  buttonTitle: String

  """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
}

type Submodule implements Entry {
  """Flat path of the entry."""
  flatPath: String!

  """ID of the entry."""
  id: ID!

  """Name of the entry."""
  name: String!

  """Path of the entry."""
  path: String!

  """Last commit SHA for the entry."""
  sha: String!

  """Tree URL for the sub-module."""
  treeUrl: String

  """Type of tree entry."""
  type: EntryType!

  """Web URL for the sub-module."""
  webUrl: String
}

"""The connection type for Submodule."""
type SubmoduleConnection {
  """A list of edges."""
  edges: [SubmoduleEdge]

  """A list of nodes."""
  nodes: [Submodule]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type SubmoduleEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Submodule
}

type Subscription {
  """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 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 title of an issuable is updated."""
  issuableTitleUpdated(
    """ID of the issuable."""
    issuableId: IssuableID!
  ): Issuable

  """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 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
}

"""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
}

"""Represents a Suggested Reviewers result set"""
type SuggestedReviewersType {
  """List of reviewers."""
  reviewers: [String!]!

  """Number of reviewers returned."""
  topN: Int

  """Suggested reviewer version."""
  version: String
}

"""Completion status of tasks"""
type TaskCompletionStatus {
  """Number of completed tasks."""
  completedCount: Int!

  """Number of total tasks."""
  count: Int!
}

type TerraformState {
  """Timestamp the Terraform state was created."""
  createdAt: Time!

  """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!

  """Timestamp the Terraform state was updated."""
  updatedAt: Time!
}

"""The connection type for TerraformState."""
type TerraformStateConnection {
  """Total count of collection."""
  count: 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 {
  """Global ID of the Terraform state."""
  id: TerraformStateID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of TerraformStateDelete"""
type TerraformStateDeletePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!
}

"""An edge in a connection."""
type 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 {
  """Global ID of the Terraform state."""
  id: TerraformStateID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of TerraformStateLock"""
type TerraformStateLockPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of TerraformStateUnlock"""
input TerraformStateUnlockInput {
  """Global ID of the Terraform state."""
  id: TerraformStateID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String
}

"""Autogenerated return type of TerraformStateUnlock"""
type TerraformStateUnlockPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!
}

type TerraformStateVersion {
  """Timestamp the version was created."""
  createdAt: Time!

  """User that created this version."""
  createdByUser: UserCore

  """URL for downloading the version's JSON file."""
  downloadPath: String

  """ID of the Terraform state version."""
  id: ID!

  """Job that created this 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 {
  """Timestamp when the TerraformStateVersionRegistry was created"""
  createdAt: Time

  """ID of the TerraformStateVersionRegistry"""
  id: ID!

  """Error message during sync of the TerraformStateVersionRegistry"""
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the TerraformStateVersionRegistry
  """
  lastSyncedAt: Time

  """Timestamp after which the TerraformStateVersionRegistry 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!

  """Timestamp after which the TerraformStateVersionRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the TerraformStateVersionRegistry
  """
  verifiedAt: Time
}

"""The connection type for TerraformStateVersionRegistry."""
type TerraformStateVersionRegistryConnection {
  """A list of edges."""
  edges: [TerraformStateVersionRegistryEdge]

  """A list of nodes."""
  nodes: [TerraformStateVersionRegistry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TerraformStateVersionRegistryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TerraformStateVersionRegistry
}

"""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."""
  count: 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!
}

"""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."""
  count: 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."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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!
}

"""Autogenerated return type of TimelineEventCreate"""
type TimelineEventCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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 execution of 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 execution of the mutation."""
  errors: [String!]!

  """Timeline event."""
  timelineEvent: TimelineEventType
}

"""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

  """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
}

"""Autogenerated return type of TimelineEventUpdate"""
type TimelineEventUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of 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

  """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 {
  """A list of edges."""
  edges: [TimelogEdge]

  """A list of nodes."""
  nodes: [Timelog]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""Autogenerated input type of TimelogCreate"""
input TimelogCreateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Amount of time spent."""
  timeSpent: String!

  """When the time was spent."""
  spentAt: Date!

  """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 execution of 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 execution of 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 {
  """Indicates the user can perform `admin_timelog` on this resource"""
  adminTimelog: Boolean!
}

"""Represents the time report stats for timeboxes"""
type TimeReportStats {
  """Completed issues metrics."""
  complete: TimeboxMetrics

  """Incomplete issues metrics."""
  incomplete: TimeboxMetrics

  """Total issues metrics."""
  total: TimeboxMetrics
}

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 this to-do item."""
  author: UserCore!

  """Body of the to-do item."""
  body: String!

  """Timestamp this to-do item was created."""
  createdAt: Time!

  """Group this to-do item is associated with."""
  group: Group

  """ID of the to-do item."""
  id: ID!

  """Note which created this to-do item."""
  note: Note

  """Project this to-do item is associated with."""
  project: Project

  """State of the to-do item."""
  state: TodoStateEnum!

  """Target of the to-do item."""
  target: Todoable!

  """Target type of the to-do item."""
  targetType: TodoTargetEnum!
}

interface Todoable {
  """URL of this 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 {
  """User was assigned."""
  assigned

  """User was mentioned."""
  mentioned

  """Build triggered by the user failed."""
  build_failed

  """User added a TODO."""
  marked

  """User was set as an approver."""
  approval_required

  """Merge request authored by the user could not be merged."""
  unmergeable

  """User was directly addressed."""
  directly_addressed

  """Merge request authored by the user was removed from the merge train."""
  merge_train_removed

  """Review was requested from the user."""
  review_requested
}

"""The connection type for Todo."""
type TodoConnection {
  """A list of edges."""
  edges: [TodoEdge]

  """A list of nodes."""
  nodes: [Todo]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""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 execution of the mutation."""
  errors: [String!]!

  """To-do item created."""
  todo: Todo
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Requested to-do item."""
  todo: 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 restore (a maximum of 50 is supported at once).
  """
  ids: [TodoID!]!
}

"""Autogenerated return type of TodoRestoreMany"""
type TodoRestoreManyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Updated 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 execution of 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
}

"""Autogenerated return type of TodosMarkAllDone"""
type TodosMarkAllDonePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Updated to-do items."""
  todos: [Todo!]!
}

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

  """An Epic."""
  EPIC
}

type Topic {
  """URL to avatar image file of the topic."""
  avatarUrl: String

  """Description of the topic."""
  description: String

  """The 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
}

"""
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: Commit

  """Sub-modules of the tree."""
  submodules(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): SubmoduleConnection!

  """Trees of the tree."""
  trees(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): TreeEntryConnection!
}

"""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!

  """Last commit SHA for the entry."""
  sha: String!

  """Type of tree entry."""
  type: EntryType!

  """Web path for the tree entry (directory)."""
  webPath: String

  """Web URL for the tree entry (directory)."""
  webUrl: String
}

"""The connection type for TreeEntry."""
type TreeEntryConnection {
  """A list of edges."""
  edges: [TreeEntryEdge]

  """A list of nodes."""
  nodes: [TreeEntry]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

"""An edge in a connection."""
type TreeEntryEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: TreeEntry
}

enum TypeEnum {
  """Snippet created independent of any project."""
  personal

  """Snippet related to a specific project."""
  project
}

"""A regexp containing patterns sourced from user input"""
scalar UntrustedRegexp

"""Autogenerated input type of UpdateAlertStatus"""
input UpdateAlertStatusInput {
  """Project the alert to mutate is in."""
  projectPath: ID!

  """IID of the alert to mutate."""
  iid: String!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: 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 execution of 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 execution of 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 {
  """Position of list within the board."""
  position: Int

  """Indicates if the list is collapsed for this user."""
  collapsed: Boolean

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of 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 execution of 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 execution of the mutation."""
  errors: [String!]!
}

"""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 this container expiration policy is enabled."""
  enabled: Boolean

  """This container expiration policy schedule."""
  cadence: ContainerExpirationPolicyCadenceEnum

  """Tags older that this will expire."""
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """Number of tags to retain."""
  keepN: ContainerExpirationPolicyKeepEnum

  """Tags with names matching this regex pattern will expire."""
  nameRegex: UntrustedRegexp

  """Tags with names matching this regex pattern will be preserved."""
  nameRegexKeep: UntrustedRegexp
}

"""Autogenerated return type of UpdateContainerExpirationPolicy"""
type UpdateContainerExpirationPolicyPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Container expiration policy after mutation."""
  containerExpirationPolicy: ContainerExpirationPolicy

  """Errors encountered during execution of the mutation."""
  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 execution of 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
}

"""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 execution of 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 UpdateEpicBoardList"""
input UpdateEpicBoardListInput {
  """Position of list within the board."""
  position: Int

  """Indicates if the list is collapsed for this user."""
  collapsed: Boolean

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of the mutation."""
  errors: [String!]!

  """Mutated epic list."""
  list: EpicList
}

"""Autogenerated input type of UpdateEpic"""
input UpdateEpicInput {
  """IID of the epic to mutate."""
  iid: ID!

  """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. Available only when feature flag `epic_color_highlight` is
  enabled. This flag is disabled by default, because the feature is experimental
  and is subject to change without notice.
  """
  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 execution of the mutation."""
  errors: [String!]!
}

"""Autogenerated input type of UpdateImageDiffNote"""
input UpdateImageDiffNoteInput {
  """Global ID of the note to update."""
  id: NoteID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Content of the note."""
  body: String

  """Position of this note on a diff."""
  position: UpdateDiffImagePositionInput
}

"""Autogenerated return type of UpdateImageDiffNote"""
type UpdateImageDiffNotePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note
}

"""Autogenerated input type of UpdateIssue"""
input UpdateIssueInput {
  """Project the issue to mutate is in."""
  projectPath: ID!

  """IID of the issue to mutate."""
  iid: String!

  """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

  """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: 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

  """Desired health status."""
  healthStatus: HealthStatus

  """Weight of the issue."""
  weight: Int

  """ID of the parent epic. NULL when removing the association."""
  epicId: EpicID
}

"""Autogenerated return type of UpdateIssue"""
type UpdateIssuePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """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 execution of 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 this 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 this 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
}

"""Autogenerated return type of UpdateNamespacePackageSettings"""
type UpdateNamespacePackageSettingsPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Namespace package setting after mutation."""
  packageSettings: PackageSettings
}

"""Autogenerated input type of UpdateNote"""
input UpdateNoteInput {
  """Global ID of the note to update."""
  id: NoteID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """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 execution of the mutation."""
  errors: [String!]!

  """Note after mutation."""
  note: Note
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Packages cleanup policy after mutation."""
  packagesCleanupPolicy: PackagesCleanupPolicy
}

"""Autogenerated input type of UpdateRequirement"""
input UpdateRequirementInput {
  """Title of the requirement."""
  title: String

  """Description of the requirement."""
  description: String

  """Full project path the requirement is associated with."""
  projectPath: ID!

  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """State of the requirement."""
  state: RequirementState

  """IID of the requirement to update."""
  iid: 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 execution of 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 execution of the mutation."""
  errors: [String!]!

  """Snippet after mutation."""
  snippet: Snippet
}

scalar Upload

"""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 execution of 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 {
  """Timestamp when the UploadRegistry was created"""
  createdAt: Time

  """ID of the Upload."""
  fileId: ID!

  """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

  """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

  """Timestamp after which the UploadRegistry is reverified"""
  verificationRetryAt: Time

  """
  Timestamp of the most recent successful verification of the UploadRegistry
  """
  verifiedAt: Time
}

"""The connection type for UploadRegistry."""
type UploadRegistryConnection {
  """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
}

"""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 {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

  """Whether Gitpod is enabled at the user level."""
  gitpodEnabled: Boolean

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

  """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

  """Web path to the Gitpod section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Gitpod for the user."""
  profileEnableGitpodPath: String

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectMemberConnection

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

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 execution of 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 gcp_signup_offer."""
  GCP_SIGNUP_OFFER

  """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 two_factor_auth_recovery_settings_check."""
  TWO_FACTOR_AUTH_RECOVERY_SETTINGS_CHECK

  """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 eoa_bronze_plan_banner."""
  EOA_BRONZE_PLAN_BANNER

  """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 cloud_licensing_subscription_activation_banner.
  """
  CLOUD_LICENSING_SUBSCRIPTION_ACTIVATION_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 terraform_notification_dismissed."""
  TERRAFORM_NOTIFICATION_DISMISSED

  """Callout feature name for security_newsletter_callout."""
  SECURITY_NEWSLETTER_CALLOUT

  """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 security_training_feature_promotion."""
  SECURITY_TRAINING_FEATURE_PROMOTION

  """
  Callout feature name for storage_enforcement_banner_first_enforcement_threshold.
  """
  STORAGE_ENFORCEMENT_BANNER_FIRST_ENFORCEMENT_THRESHOLD

  """
  Callout feature name for storage_enforcement_banner_second_enforcement_threshold.
  """
  STORAGE_ENFORCEMENT_BANNER_SECOND_ENFORCEMENT_THRESHOLD

  """
  Callout feature name for storage_enforcement_banner_third_enforcement_threshold.
  """
  STORAGE_ENFORCEMENT_BANNER_THIRD_ENFORCEMENT_THRESHOLD

  """
  Callout feature name for storage_enforcement_banner_fourth_enforcement_threshold.
  """
  STORAGE_ENFORCEMENT_BANNER_FOURTH_ENFORCEMENT_THRESHOLD

  """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 mr_experience_survey."""
  MR_EXPERIENCE_SURVEY

  """
  Callout feature name for namespace_storage_limit_banner_info_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_BANNER_INFO_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_banner_warning_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_BANNER_WARNING_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_banner_alert_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_BANNER_ALERT_THRESHOLD

  """
  Callout feature name for namespace_storage_limit_banner_error_threshold.
  """
  NAMESPACE_STORAGE_LIMIT_BANNER_ERROR_THRESHOLD

  """Callout feature name for project_quality_summary_feedback."""
  PROJECT_QUALITY_SUMMARY_FEEDBACK

  """Callout feature name for merge_request_settings_moved_callout."""
  MERGE_REQUEST_SETTINGS_MOVED_CALLOUT

  """Callout feature name for new_top_level_group_alert."""
  NEW_TOP_LEVEL_GROUP_ALERT
}

"""Core represention of a GitLab user."""
type UserCore implements User {
  """Merge requests assigned to the user."""
  assignedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """Merge requests authored by the user."""
  authoredMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the assignee."""
    assigneeUsername: String

    """Username of the reviewer."""
    reviewerUsername: 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

  """URL of the user's avatar."""
  avatarUrl: 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 email. Deprecated in 13.7: This was renamed."""
  email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.")

  """Whether Gitpod is enabled at the user level."""
  gitpodEnabled: Boolean

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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 user."""
  id: ID!

  """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

  """Web path to the Gitpod section within user preferences."""
  preferencesGitpodPath: String

  """Web path to enable Gitpod for the user."""
  profileEnableGitpodPath: String

  """Project memberships of the user."""
  projectMemberships(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectMemberConnection

  """User's public email."""
  publicEmail: String

  """Merge requests assigned to the user for review."""
  reviewRequestedMergeRequests(
    """Array of IIDs of merge requests, for example `[1, 2]`."""
    iids: [String!]

    """
    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 this state.
    """
    state: MergeRequestState

    """Limit result to draft merge requests."""
    draft: Boolean

    """Merge requests created after this timestamp."""
    createdAfter: Time

    """Merge requests created before this timestamp."""
    createdBefore: Time

    """Merge requests updated after this timestamp."""
    updatedAfter: Time

    """Merge requests updated before this timestamp."""
    updatedBefore: Time

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

    """Merge requests merged after this date."""
    mergedAfter: Time

    """Merge requests merged before this date."""
    mergedBefore: Time

    """Title of the milestone."""
    milestoneTitle: String

    """Sort merge requests by this criteria."""
    sort: MergeRequestSort = created_desc

    """
    List of negated arguments.
    Warning: this argument is experimental and a subject to change in future.
    
    """
    not: MergeRequestsResolverNegatedParams

    """
    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

    """Username of the author."""
    authorUsername: String

    """Username of the assignee."""
    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
  ): MergeRequestConnection

  """
  Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled.
  """
  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

  """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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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!]

    """Type of the todo."""
    type: [TodoTargetEnum!]

    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Permissions for the current user on the resource."""
  userPermissions: UserPermissions!

  """Username of the user. Unique within this instance of GitLab."""
  username: String!

  """Web path of the user."""
  webPath: String!

  """Web URL of the user."""
  webUrl: String!
}

"""The connection type for UserCore."""
type UserCoreConnection {
  """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
}

"""
A `UserID` is a global ID. It is encoded as a string.

An example `UserID` is: `"gid://gitlab/User/1"`.
"""
scalar UserID

"""
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 this user for this merge request."""
  applicableApprovalRules: [ApprovalRule!]

  """Whether this user has approved this merge request."""
  approved: Boolean!

  """Whether this user can merge this merge request."""
  canMerge: Boolean!

  """Whether this user can update this merge request."""
  canUpdate: Boolean!

  """State of the review by this user."""
  reviewState: MergeRequestReviewState

  """Whether this user has provided a review for this merge request."""
  reviewed: Boolean!
}

type UserPermissions {
  """Indicates the user can perform `create_snippet` on this resource"""
  createSnippet: Boolean!
}

type UserPreferences {
  """Sort order for issue lists."""
  issuesSort: IssueSort
}

"""Autogenerated input type of UserPreferencesUpdate"""
input UserPreferencesUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Sort order for issue lists."""
  issuesSort: IssueSort
}

"""Autogenerated return type of UserPreferencesUpdate"""
type UserPreferencesUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """User preferences after mutation."""
  userPreferences: UserPreferences
}

"""
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 is able to use the system."""
  active

  """User has been blocked and is prevented from using the system."""
  blocked

  """User is no longer active and is unable to use the system."""
  deactivated
}

type UserStatus {
  """User availability status."""
  availability: AvailabilityEnum!

  """String representation of emoji."""
  emoji: String

  """User status message."""
  message: String

  """HTML of the user status message"""
  messageHtml: String
}

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
}

enum VisibilityLevelsEnum {
  """Private visibility level."""
  private

  """Internal visibility level."""
  internal

  """Public visibility level."""
  public
}

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
}

"""
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
}

"""
A `VulnerabilitiesExternalIssueLinkID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesExternalIssueLinkID` is: `"gid://gitlab/Vulnerabilities::ExternalIssueLink/1"`.
"""
scalar VulnerabilitiesExternalIssueLinkID

"""
A `VulnerabilitiesFindingID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesFindingID` is: `"gid://gitlab/Vulnerabilities::Finding/1"`.
"""
scalar VulnerabilitiesFindingID

"""
A `VulnerabilitiesScannerID` is a global ID. It is encoded as a string.

An example `VulnerabilitiesScannerID` is: `"gid://gitlab/Vulnerabilities::Scanner/1"`.
"""
scalar VulnerabilitiesScannerID

"""Represents a vulnerability"""
type Vulnerability implements NoteableInterface {
  """Timestamp of when the vulnerability state was changed to confirmed."""
  confirmedAt: Time

  """User that confirmed the vulnerability."""
  confirmedBy: UserCore

  """Description of the vulnerability."""
  description: String

  """The 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 this noteable."""
  discussions(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): DiscussionConnection!

  """Timestamp of when the vulnerability state was changed to dismissed."""
  dismissedAt: Time

  """User that dismissed the vulnerability."""
  dismissedBy: UserCore

  """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

  """
  Indicates whether there is a solution available for this vulnerability.
  """
  hasSolutions: Boolean

  """GraphQL ID of the vulnerability."""
  id: ID!

  """Identifiers of the vulnerability."""
  identifiers: [VulnerabilityIdentifier!]!

  """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!

  """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

  """
  Short text description of the vulnerability. This may include the finding's specific information.
  """
  message: String

  """All notes on this noteable."""
  notes(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): NoteConnection!

  """Primary identifier of the vulnerability."""
  primaryIdentifier: VulnerabilityIdentifier

  """Project on which the vulnerability was found."""
  project: Project

  """
  Type of the security report that found the vulnerability (SAST,
  DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION,
  COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING, GENERIC). `Scan Type` in the UI.
  """
  reportType: VulnerabilityReportType

  """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

  """State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED)"""
  state: VulnerabilityState

  """Title of the vulnerability."""
  title: String

  """Number of user notes attached to the vulnerability."""
  userNotesCount: Int!

  """Permissions for the current user on the resource"""
  userPermissions: VulnerabilityPermissions!

  """URL to the vulnerability's details page."""
  vulnerabilityPath: String
}

"""Confidence that a given vulnerability is present in the codebase."""
enum VulnerabilityConfidence {
  """Ignore confidence"""
  IGNORE

  """Unknown confidence"""
  UNKNOWN

  """Experimental confidence"""
  EXPERIMENTAL

  """Low confidence"""
  LOW

  """Medium confidence"""
  MEDIUM

  """High confidence"""
  HIGH

  """Confirmed confidence"""
  CONFIRMED
}

"""Autogenerated input type of VulnerabilityConfirm"""
input VulnerabilityConfirmInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability to be confirmed."""
  id: VulnerabilityID!
}

"""Autogenerated return type of VulnerabilityConfirm"""
type VulnerabilityConfirmPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """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
}

"""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

  """
  Short text section that describes the vulnerability. This may include the finding's specific information.
  """
  message: String

  """
  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 execution of 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 | VulnerabilityDetailCommit | VulnerabilityDetailDiff | VulnerabilityDetailFileLocation | VulnerabilityDetailInt | VulnerabilityDetailList | VulnerabilityDetailMarkdown | VulnerabilityDetailModuleLocation | 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 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 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: [VulnerabilityDetail!]!
}

"""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 VulnerabilityDismiss"""
input VulnerabilityDismissInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """ID of the vulnerability to be dismissed."""
  id: VulnerabilityID!

  """Comment why vulnerability should be dismissed."""
  comment: String

  """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 execution of the mutation."""
  errors: [String!]!

  """Vulnerability after dismissal."""
  vulnerability: Vulnerability
}

"""An edge in a connection."""
type VulnerabilityEdge {
  """A cursor for use in pagination."""
  cursor: String!

  """The item at the end of the edge."""
  node: Vulnerability
}

"""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 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 execution of 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 execution of 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
}

"""Autogenerated input type of VulnerabilityFindingDismiss"""
input VulnerabilityFindingDismissInput {
  """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 VulnerabilityFindingDismiss"""
type VulnerabilityFindingDismissPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Finding after dismissal."""
  finding: PipelineSecurityReportFinding
}

"""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!
}

"""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!
}

"""
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 {
  """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
}

"""Check permissions for the current user on a vulnerability"""
type VulnerabilityPermissions {
  """Indicates the user can perform `admin_vulnerability` on this resource"""
  adminVulnerability: Boolean!

  """
  Indicates the user can perform `admin_vulnerability_external_issue_link` on this resource
  """
  adminVulnerabilityExternalIssueLink: Boolean!

  """
  Indicates the user can perform `admin_vulnerability_issue_link` on this resource
  """
  adminVulnerabilityIssueLink: Boolean!

  """Indicates the user can perform `create_vulnerability` on this resource"""
  createVulnerability: Boolean!

  """
  Indicates the user can perform `create_vulnerability_export` on this resource
  """
  createVulnerabilityExport: Boolean!

  """
  Indicates the user can perform `create_vulnerability_feedback` on this resource
  """
  createVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `destroy_vulnerability_feedback` on this resource
  """
  destroyVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `read_vulnerability_feedback` on this resource
  """
  readVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `update_vulnerability_feedback` on this resource
  """
  updateVulnerabilityFeedback: Boolean!
}

"""The type of the security scan that found the vulnerability"""
enum VulnerabilityReportType {
  """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

  """Generic report"""
  GENERIC
}

"""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

  """ID of the vulnerability to be resolved."""
  id: VulnerabilityID!
}

"""Autogenerated return type of VulnerabilityResolve"""
type VulnerabilityResolvePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """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

  """ID of the vulnerability to be reverted."""
  id: VulnerabilityID!
}

"""Autogenerated return type of VulnerabilityRevertToDetected"""
type VulnerabilityRevertToDetectedPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Vulnerability after revert."""
  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
}

"""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/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values).
  """
  CONFIRMED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values).
  """
  DETECTED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values).
  """
  DISMISSED

  """
  For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values).
  """
  RESOLVED
}

"""
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 which performed the scan."""
  agent: ClusterAgent

  """ID of the Cluster integration which was 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 which the resource resides in."""
  namespace: String!
}

"""Represents a vulnerable package. Used in vulnerability dependency data"""
type VulnerablePackage {
  """Name of the vulnerable package."""
  name: String
}

"""Represents vulnerability letter grades with associated projects"""
type VulnerableProjectsByGrade {
  """Number of projects within this grade."""
  count: Int!

  """Grade based on the highest severity vulnerability present."""
  grade: VulnerabilityGrade!

  """Projects within this grade."""
  projects(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """Returns the first _n_ elements from the list."""
    first: Int

    """Returns the last _n_ elements from the list."""
    last: Int
  ): ProjectConnection!
}

"""Weight ID wildcard values"""
enum WeightWildcardId {
  """No weight is assigned."""
  NONE

  """Weight is assigned."""
  ANY
}

type WorkItem implements Todoable {
  """Timestamp of when the work item was closed."""
  closedAt: Time

  """Indicates the work item is confidential."""
  confidential: Boolean!

  """Timestamp of when the work item was created."""
  createdAt: Time!

  """Description of the work item."""
  description: String

  """The GitLab Flavored Markdown rendering of `description`"""
  descriptionHtml: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Internal ID of the work item."""
  iid: ID!

  """
  Lock version of the work item. Incremented each time the work item is updated.
  """
  lockVersion: Int!

  """
  Project the work item belongs to. Introduced in 15.3: This feature is in Alpha. It can be changed or removed at any time.
  """
  project: Project! @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.")

  """State of the work item."""
  state: WorkItemState!

  """Title of the work item."""
  title: String!

  """The GitLab Flavored Markdown rendering of `title`"""
  titleHtml: String

  """Timestamp of when the work item was last updated."""
  updatedAt: Time!

  """Permissions for the current user on the resource"""
  userPermissions: WorkItemPermissions!

  """URL of this object."""
  webUrl: String

  """Collection of widgets that belong to the work item."""
  widgets: [WorkItemWidget!]

  """Type assigned to the work item."""
  workItemType: WorkItemType!
}

"""The connection type for WorkItem."""
type WorkItemConnection {
  """A list of edges."""
  edges: [WorkItemEdge]

  """A list of nodes."""
  nodes: [WorkItem]

  """Information to aid in pagination."""
  pageInfo: PageInfo!
}

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 execution of 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

  """Sets the work item confidentiality."""
  confidential: Boolean

  """Description of the work item."""
  description: String

  """Input for hierarchy widget."""
  hierarchyWidget: WorkItemWidgetHierarchyCreateInput

  """Full path of the project the work item is associated with."""
  projectPath: ID!

  """Title of the work item."""
  title: String!

  """Global ID of a work item type."""
  workItemTypeId: WorkItemsTypeID!
}

"""Autogenerated return type of WorkItemCreate"""
type WorkItemCreatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Created work item."""
  workItem: WorkItem
}

input WorkItemDeletedTaskInput {
  """Global ID of the task referenced in the work item's description."""
  id: WorkItemID!

  """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!
}

"""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 execution of the mutation."""
  errors: [String!]!

  """Project the deleted work item belonged to."""
  project: Project
}

"""Autogenerated input type of WorkItemDeleteTask"""
input WorkItemDeleteTaskInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """
  Current lock version of the work item containing the task in the description.
  """
  lockVersion: Int!

  """Arguments necessary to delete a task from a work item's description."""
  taskData: WorkItemDeletedTaskInput!
}

"""Autogenerated return type of WorkItemDeleteTask"""
type WorkItemDeleteTaskPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Updated work item."""
  workItem: WorkItem
}

"""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
}

"""
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

"""Check permissions for the current user on a work item"""
type WorkItemPermissions {
  """Indicates the user can perform `delete_work_item` on this resource"""
  deleteWorkItem: Boolean!

  """Indicates the user can perform `read_work_item` on this resource"""
  readWorkItem: Boolean!

  """Indicates the user can perform `update_work_item` on this resource"""
  updateWorkItem: Boolean!
}

"""Values for sorting work items"""
enum WorkItemSort {
  """Title by ascending order."""
  TITLE_ASC

  """Title by descending order."""
  TITLE_DESC

  """Updated at descending order."""
  updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.")

  """Updated at ascending order."""
  updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.")

  """Created at descending order."""
  created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.")

  """Created at ascending order."""
  created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 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 work item"""
enum WorkItemState {
  """In open state."""
  OPEN

  """In closed state."""
  CLOSED
}

"""Values for work item state events"""
enum WorkItemStateEvent {
  """Reopens the work item."""
  REOPEN

  """Closes the work item."""
  CLOSE
}

"""
A `WorkItemsTypeID` is a global ID. It is encoded as a string.

An example `WorkItemsTypeID` is: `"gid://gitlab/WorkItems::Type/1"`.
"""
scalar WorkItemsTypeID

type WorkItemType {
  """Icon name of the work item type."""
  iconName: String

  """Global ID of the work item type."""
  id: WorkItemsTypeID!

  """Name of the work item type."""
  name: String!
}

"""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!
}

"""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
}

input WorkItemUpdatedTaskInput {
  """Global ID of the work item."""
  id: WorkItemID!

  """Close or reopen a work item."""
  stateEvent: WorkItemStateEvent

  """Title of the work item."""
  title: String

  """Sets the work item confidentiality."""
  confidential: Boolean

  """Input for description widget."""
  descriptionWidget: WorkItemWidgetDescriptionInput

  """Input for assignees widget."""
  assigneesWidget: WorkItemWidgetAssigneesInput

  """Input for hierarchy widget."""
  hierarchyWidget: WorkItemWidgetHierarchyUpdateInput

  """Input for start and due date widget."""
  startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput
}

"""Autogenerated input type of WorkItemUpdate"""
input WorkItemUpdateInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Close or reopen a work item."""
  stateEvent: WorkItemStateEvent

  """Title of the work item."""
  title: String

  """Sets the work item confidentiality."""
  confidential: Boolean

  """Input for description widget."""
  descriptionWidget: WorkItemWidgetDescriptionInput

  """Input for assignees widget."""
  assigneesWidget: WorkItemWidgetAssigneesInput

  """Input for hierarchy widget."""
  hierarchyWidget: WorkItemWidgetHierarchyUpdateInput

  """Input for start and due date widget."""
  startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput

  """Input for iteration widget."""
  iterationWidget: WorkItemWidgetIterationInput

  """Input for weight widget."""
  weightWidget: WorkItemWidgetWeightInput
}

"""Autogenerated return type of WorkItemUpdate"""
type WorkItemUpdatePayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Updated work item."""
  workItem: WorkItem
}

"""Autogenerated input type of WorkItemUpdateTask"""
input WorkItemUpdateTaskInput {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Global ID of the work item."""
  id: WorkItemID!

  """Arguments necessary to update a task."""
  taskData: WorkItemUpdatedTaskInput!
}

"""Autogenerated return type of WorkItemUpdateTask"""
type WorkItemUpdateTaskPayload {
  """A unique identifier for the client performing the mutation."""
  clientMutationId: String

  """Errors encountered during execution of the mutation."""
  errors: [String!]!

  """Updated task."""
  task: WorkItem

  """Updated work item."""
  workItem: WorkItem
}

interface WorkItemWidget {
  """Widget type."""
  type: WorkItemWidgetType
}

"""Represents an assignees widget"""
type WorkItemWidgetAssignees implements WorkItemWidget {
  """Indicates whether multiple assignees are allowed."""
  allowsMultipleAssignees: Boolean

  """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.
  """
  canInviteMembers: Boolean!

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetAssigneesInput {
  """Global IDs of assignees."""
  assigneeIds: [UserID!]!
}

"""Represents a description widget"""
type WorkItemWidgetDescription implements WorkItemWidget {
  """Description of the work item."""
  description: String

  """The 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

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetDescriptionInput {
  """Description of the work item."""
  description: String!
}

"""Represents a hierarchy widget"""
type WorkItemWidgetHierarchy implements WorkItemWidget {
  """Child work items."""
  children(
    """Returns the elements in the list that come after the specified cursor."""
    after: String

    """
    Returns the elements in the list that come before the 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

  """Parent work item."""
  parent: WorkItem

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetHierarchyCreateInput {
  """Global ID of the parent work item."""
  parentId: WorkItemID
}

input WorkItemWidgetHierarchyUpdateInput {
  """
  Global ID of the parent work item. Use `null` to remove the association.
  """
  parentId: WorkItemID

  """Global IDs of children work items."""
  childrenIds: [WorkItemID!]
}

"""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."""
  allowsScopedLabels: Boolean

  """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
}

"""Represents a start and due date widget"""
type WorkItemWidgetStartAndDueDate implements WorkItemWidget {
  """Due date of the work item."""
  dueDate: Date

  """Start date of the work item."""
  startDate: Date

  """Widget type."""
  type: WorkItemWidgetType
}

input WorkItemWidgetStartAndDueDateUpdateInput {
  """Due date for the work item."""
  dueDate: Date

  """Start date for the work item."""
  startDate: Date
}

"""Represents a status widget"""
type WorkItemWidgetStatus implements WorkItemWidget {
  """Status of the work item."""
  status: String

  """Widget type."""
  type: WorkItemWidgetType
}

"""Type of a work item widget"""
enum WorkItemWidgetType {
  """Iteration widget."""
  ITERATION

  """Weight widget."""
  WEIGHT

  """Status widget."""
  STATUS

  """Assignees widget."""
  ASSIGNEES

  """Labels widget."""
  LABELS

  """Description widget."""
  DESCRIPTION

  """Hierarchy widget."""
  HIERARCHY

  """Start And Due Date widget."""
  START_AND_DUE_DATE
}

"""Represents a weight widget"""
type WorkItemWidgetWeight implements WorkItemWidget {
  """Widget type."""
  type: WorkItemWidgetType

  """Weight of the work item."""
  weight: Int
}

input WorkItemWidgetWeightInput {
  """Weight of the work item."""
  weight: Int
}

