diff --git a/xtask/res/schema.gql b/xtask/res/schema.gql index ce6cc938b41fdc9e00b054c65d8f19e800165310..7ef5a5239fb48d232e938dd99ee567abf868c135 100644 --- a/xtask/res/schema.gql +++ b/xtask/res/schema.gql @@ -1,138 +1,35569 @@ -schema { - query: Query - mutation: Mutation +""" +Requires that exactly one field must be supplied and that field must not be `null`. +""" +directive @oneOf on INPUT_OBJECT + +"""Exposes a URL that specifies the behavior of this scalar.""" +directive @specifiedBy( + """The URL that specifies the behavior of this scalar.""" + url: String! +) on SCALAR + +"""An abuse report""" +type AbuseReport implements NoteableInterface { + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """All discussions on 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! + + """Global ID of the abuse report.""" + id: AbuseReportID! + + """Labels of the abuse report.""" + 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( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! } -type Query { - project(fullPath: ID!): Project - mergeRequest(id: MergeRequestID!): MergeRequest +""" +A `AbuseReportID` is a global ID. It is encoded as a string. + +An example `AbuseReportID` is: `"gid://gitlab/AbuseReport/1"`. +""" +scalar AbuseReportID + +"""Autogenerated input type of AbuseReportLabelCreate""" +input AbuseReportLabelCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Title of the label.""" + title: 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" } -type Mutation { - releaseCreate(input: ReleaseCreateInput!): ReleaseCreatePayload - releaseAssetLinkCreate(input: ReleaseAssetLinkInput!): ReleaseAssetLinkCreatePayload +"""Autogenerated return type of AbuseReportLabelCreate.""" +type AbuseReportLabelCreatePayload { + """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 } -type Project { - mergeRequests( - state: MergeRequestState - milestoneTitle: String - ): MergeRequestConnection - issues( - state: IssueState - milestoneTitle: [String] - ): IssueConnection - release(tagName: String!): Release +""" +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 } -scalar MergeRequestID +"""Representation of a GitLab deploy key.""" +type AccessLevelDeployKey { + """Expiration date of the deploy key.""" + expiresAt: Date -type MergeRequest { - conflicts: Boolean! - diffHeadSha: String - draft: Boolean! - headPipeline: Pipeline + """ID of the deploy key.""" id: ID! - iid: String! - mergeable: Boolean! + + """Title of the deploy key.""" title: String! + + """User assigned to the deploy key.""" + user: AccessLevelUser! } -type MergeRequestConnection { - count: Int! - nodes: [MergeRequest] +"""The connection type for AccessLevelDeployKey.""" +type AccessLevelDeployKeyConnection { + """A list of edges.""" + edges: [AccessLevelDeployKeyEdge] + + """A list of nodes.""" + nodes: [AccessLevelDeployKey] + + """Information to aid in pagination.""" + pageInfo: PageInfo! } -enum MergeRequestState { - opened - closed - locked - all - merged +"""An edge in a connection.""" +type AccessLevelDeployKeyEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AccessLevelDeployKey } -type IssueConnection { - count: Int! - nodes: [Issue] +"""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 } -type Issue { +"""Representation of a GitLab user.""" +type AccessLevelUser { + """URL of the user's avatar.""" + avatarUrl: String + + """ID of the user.""" id: ID! - iid: String - state: IssueState! - title: 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! + + """User's public email.""" + publicEmail: String + + """Username of the user.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! } -enum IssueState { - opened - closed - locked - all +type Achievement { + """URL to avatar of the achievement.""" + avatarUrl: String + + """Timestamp the achievement was created.""" + createdAt: Time! + + """Description or notes for the achievement.""" + description: String + + """ID of the achievement.""" + id: AchievementsAchievementID! + + """Name of the achievement.""" + name: String! + + """Namespace of the achievement.""" + namespace: Namespace + + """Timestamp the achievement was last updated.""" + updatedAt: Time! + + """ + Recipients for the achievement. Introduced in GitLab 15.10: **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") } -type Pipeline { - active: Boolean! - cancelable: Boolean! - id: ID! - iid: String! +"""The connection type for Achievement.""" +type AchievementConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [AchievementEdge] + + """A list of nodes.""" + nodes: [Achievement] + + """Information to aid in pagination.""" + pageInfo: PageInfo! } -input ReleaseCreateInput { - projectPath: ID! - tagName: String! - name: String - description: String - milestones: [String!] - assets: ReleaseAssetsInput +"""An edge in a connection.""" +type AchievementEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Achievement +} + +""" +A `AchievementsAchievementID` is a global ID. It is encoded as a string. + +An example `AchievementsAchievementID` is: `"gid://gitlab/Achievements::Achievement/1"`. +""" +scalar AchievementsAchievementID + +"""Autogenerated input type of AchievementsAward""" +input AchievementsAwardInput { + """A unique identifier for the client performing the mutation.""" clientMutationId: String + + """Global ID of the achievement being awarded.""" + achievementId: AchievementsAchievementID! + + """Global ID of the user being awarded the achievement.""" + userId: UserID! } -input ReleaseAssetsInput { - links: [ReleaseAssetLinkInput!] +"""Autogenerated return type of AchievementsAward.""" +type AchievementsAwardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Achievement award.""" + userAchievement: UserAchievement } -input ReleaseAssetLinkInput { +"""Autogenerated input type of AchievementsCreate""" +input AchievementsCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Namespace for the achievement.""" + namespaceId: NamespaceID! + + """Name for the achievement.""" name: String! - url: String! - tagName: String! - projectPath: String! - directAssetPath: String - linkType: ReleaseAssetLinkType = PACKAGE + + """Avatar for the achievement.""" + avatar: Upload + + """Description of or notes for the achievement.""" + description: String } -enum ReleaseAssetLinkType { - OTHER - RUNBOOK - PACKAGE - IMAGE +"""Autogenerated return type of AchievementsCreate.""" +type AchievementsCreatePayload { + """Achievement created.""" + achievement: Achievement + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! } -type ReleaseCreatePayload { +"""Autogenerated input type of AchievementsDelete""" +input AchievementsDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the achievement being deleted.""" + achievementId: AchievementsAchievementID! +} + +"""Autogenerated return type of AchievementsDelete.""" +type AchievementsDeletePayload { + """Achievement.""" + achievement: Achievement + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" errors: [String!]! } -type ReleaseAssetLinkCreatePayload { +"""Autogenerated input type of AchievementsRevoke""" +input AchievementsRevokeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the user achievement being revoked.""" + userAchievementId: AchievementsUserAchievementID! +} + +"""Autogenerated return type of AchievementsRevoke.""" +type AchievementsRevokePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" errors: [String!]! + + """Achievement award.""" + userAchievement: UserAchievement } -type Release { - id: String! - tagName: String! - assets: ReleaseAssets +"""Autogenerated input type of AchievementsUpdate""" +input AchievementsUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the achievement being updated.""" + achievementId: AchievementsAchievementID! + + """Name for the achievement.""" + name: String + + """Avatar for the achievement.""" + avatar: Upload + + """Description of or notes for the achievement.""" + description: String } -type ReleaseAssets { - links: ReleaseAssetLinkConnection +"""Autogenerated return type of AchievementsUpdate.""" +type AchievementsUpdatePayload { + """Achievement.""" + achievement: Achievement + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! } -type ReleaseAssetLinkConnection { - edges: [ReleaseAssetLinkEdge] +""" +A `AchievementsUserAchievementID` is a global ID. It is encoded as a string. + +An example `AchievementsUserAchievementID` is: `"gid://gitlab/Achievements::UserAchievement/1"`. +""" +scalar AchievementsUserAchievementID + +"""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 user_id in the context metadata.""" + userId: String + + """Delete jobs matching project in the context metadata.""" + project: String + + """Delete jobs matching root_namespace in the context metadata.""" + rootNamespace: String + + """Delete jobs matching client_id in the context metadata.""" + clientId: String + + """Delete jobs matching caller_id in the context metadata.""" + callerId: String + + """Delete jobs matching remote_ip in the context metadata.""" + remoteIp: String + + """Delete jobs matching job_id in the context metadata.""" + jobId: String + + """Delete jobs matching pipeline_id in the context metadata.""" + pipelineId: String + + """Delete jobs matching related_class in the context metadata.""" + relatedClass: String + + """Delete jobs matching feature_category in the context metadata.""" + featureCategory: String + + """Delete jobs matching artifact_size in the context metadata.""" + artifactSize: String + + """Delete jobs matching artifact_used_cdn in the context metadata.""" + artifactUsedCdn: String + + """ + Delete jobs matching artifacts_dependencies_size in the context metadata. + """ + artifactsDependenciesSize: String + + """ + Delete jobs matching artifacts_dependencies_count in the context metadata. + """ + artifactsDependenciesCount: String + + """Delete jobs matching root_caller_id in the context metadata.""" + rootCallerId: String + + """Delete jobs matching merge_action_status in the context metadata.""" + mergeActionStatus: String + + """Delete jobs matching bulk_import_entity_id in the context metadata.""" + bulkImportEntityId: String + + """ + Delete jobs matching sidekiq_destination_shard_redis in the context metadata. + """ + sidekiqDestinationShardRedis: String + + """Delete jobs with the given worker class.""" + workerClass: String + + """Name of the queue to delete jobs from.""" + queueName: String! } -type ReleaseAssetLinkEdge { - node: ReleaseAssetLink +"""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 } -type ReleaseAssetLink { - directAssetUrl: String +"""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 + + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """Timestamp the alert was created.""" + createdAt: Time + + """Description of the alert.""" + description: String + + """Alert details.""" + details: JSON + + """URL of the alert detail page.""" + detailsUrl: String! + + """All discussions on 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!] + + """ID of the alert.""" + id: ID! + + """Internal ID of the alert.""" + iid: String! + + """Issue attached to the alert.""" + issue: Issue + + """ + Internal ID of the GitLab issue attached to the alert. Deprecated in GitLab 13.10: Use issue field. + """ + issueIid: String @deprecated(reason: "Use issue field. Deprecated in GitLab 13.10.") + + """ + URL for metrics embed for the alert. Deprecated in GitLab 16.0: Returns no data. Underlying feature was removed in 16.0. + """ + metricsDashboardUrl: String @deprecated(reason: "Returns no data. Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.") + + """Monitoring tool the alert came from.""" + monitoringTool: String + + """All notes on this noteable.""" + notes( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Alert condition for Prometheus.""" + 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!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Timestamp the alert was last updated.""" + updatedAt: Time + + """URL of the alert.""" + webUrl: String! +} + +"""The connection type for AlertManagementAlert.""" +type AlertManagementAlertConnection { + """A list of edges.""" + edges: [AlertManagementAlertEdge] + + """A list of nodes.""" + nodes: [AlertManagementAlert] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AlertManagementAlertEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AlertManagementAlert +} + +""" +A `AlertManagementAlertID` is a global ID. It is encoded as a string. + +An example `AlertManagementAlertID` is: `"gid://gitlab/AlertManagement::Alert/1"`. +""" +scalar AlertManagementAlertID + +"""Values for sorting alerts""" +enum AlertManagementAlertSort { + """Start time by ascending order.""" + STARTED_AT_ASC + + """Start time by descending order.""" + STARTED_AT_DESC + + """End time by ascending order.""" + ENDED_AT_ASC + + """End time by descending order.""" + ENDED_AT_DESC + + """Created time by ascending order.""" + CREATED_TIME_ASC + + """Created time by descending order.""" + CREATED_TIME_DESC + + """Created time by ascending order.""" + UPDATED_TIME_ASC + + """Created time by descending order.""" + UPDATED_TIME_DESC + + """Events count by ascending order.""" + EVENT_COUNT_ASC + + """Events count by descending order.""" + EVENT_COUNT_DESC + + """Severity from less critical to more critical.""" + SEVERITY_ASC + + """Severity from more critical to less critical.""" + SEVERITY_DESC + + """Status by order: `Ignored > Resolved > Acknowledged > Triggered`.""" + STATUS_ASC + + """Status by order: `Triggered > Acknowledged > Resolved > Ignored`.""" + STATUS_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Represents total number of alerts for the represented categories""" +type AlertManagementAlertStatusCountsType { + """Number of alerts with status ACKNOWLEDGED for the project""" + acknowledged: Int + + """Total number of alerts for the project.""" + all: Int + + """Number of alerts with status IGNORED for the project""" + ignored: Int + + """ + Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project. + """ + open: Int + + """Number of alerts with status RESOLVED for the project""" + resolved: Int + + """Number of alerts with status TRIGGERED for the project""" + triggered: Int +} + +"""Filters the alerts based on given domain""" +enum AlertManagementDomainFilter { + """Alerts for operations domain.""" + operations + + """ + Alerts for threat monitoring domain. Deprecated in GitLab 15.0: Network + policies are deprecated and will be removed in GitLab 16.0. + """ + threat_monitoring @deprecated(reason: "Network policies are deprecated and will be removed in GitLab 16.0. Deprecated in GitLab 15.0.") +} + +"""An endpoint and credentials used to accept alerts for a project""" +type AlertManagementHttpIntegration implements AlertManagementIntegration { + """Whether the endpoint is currently accepting alerts.""" + active: Boolean + + """ + URL at which Prometheus metrics can be queried to populate the metrics dashboard. + """ + 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 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 +} + +""" +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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """ + Usernames to assign to the alert. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode +} + +"""Autogenerated return type of AlertSetAssignees.""" +type AlertSetAssigneesPayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! +} + +"""Autogenerated return type of AlertTodoCreate.""" +type AlertTodoCreatePayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +""" +A `AnalyticsCycleAnalyticsStageID` is a global ID. It is encoded as a string. + +An example `AnalyticsCycleAnalyticsStageID` is: `"gid://gitlab/Analytics::CycleAnalytics::Stage/1"`. +""" +scalar AnalyticsCycleAnalyticsStageID + +""" +A `AnalyticsCycleAnalyticsValueStreamID` is a global ID. It is encoded as a string. + +An example `AnalyticsCycleAnalyticsValueStreamID` is: `"gid://gitlab/Analytics::CycleAnalytics::ValueStream/1"`. +""" +scalar AnalyticsCycleAnalyticsValueStreamID + +"""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!]! +} + +"""Assignee ID wildcard values""" +enum AssigneeWildcardId { + """No assignee is assigned.""" + NONE + + """An assignee is assigned.""" + ANY +} + +""" +Represents the YAML definitions for audit events defined in +`ee/config/audit_events/types/<event-type-name>.yml` and +`config/audit_events/types/<event-type-name>.yml`. +""" +type AuditEventDefinition { + """Description of what action the audit event tracks.""" + description: String! + + """Feature category associated with the event.""" + featureCategory: String! + + """ + Link to the issue introducing the event. For olderaudit events, it can be a commit URL rather than amerge request URL. + """ + introducedByIssue: String + + """ + Link to the merge request introducing the event. Forolder audit events, it can + be a commit URL rather thana merge request URL. + """ + introducedByMr: String + + """Milestone the event was introduced in.""" + milestone: String! + + """Key name of the audit event.""" + name: String! + + """Indicates if the event is saved to PostgreSQL database.""" + savedToDatabase: Boolean! + + """Indicates if the event is streamed to an external destination.""" + streamed: Boolean! +} + +"""The connection type for AuditEventDefinition.""" +type AuditEventDefinitionConnection { + """A list of edges.""" + edges: [AuditEventDefinitionEdge] + + """A list of nodes.""" + nodes: [AuditEventDefinition] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AuditEventDefinitionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AuditEventDefinition +} + +"""Core representation of a GitLab user.""" +type AutocompletedUser 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """Merge request state related to the user.""" + mergeRequestInteraction( + """Global ID of the merge request.""" + id: MergeRequestID! + ): UserMergeRequestInteraction + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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! +} + +"""User availability status""" +enum AvailabilityEnum { + """Not Set""" + NOT_SET + + """Busy""" + BUSY +} + +"""Available fields to be exported as CSV""" +enum AvailableExportFields { + """Unique identifier.""" + ID + + """Title.""" + TITLE + + """Description.""" + DESCRIPTION + + """Type of the work item.""" + TYPE + + """Author name.""" + AUTHOR + + """Author username.""" + AUTHOR_USERNAME + + """Date of creation.""" + CREATED_AT +} + +""" +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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! +} + +"""Autogenerated return type of AwardEmojiAdd.""" +type AwardEmojiAddPayload { + """Emoji reactions after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! +} + +"""Autogenerated return type of AwardEmojiRemove.""" +type AwardEmojiRemovePayload { + """Emoji reactions after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of AwardEmojiToggle""" +input AwardEmojiToggleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! +} + +"""Autogenerated return type of AwardEmojiToggle.""" +type AwardEmojiTogglePayload { + """Emoji reactions after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 Blame { + """First line of Git Blame for given range.""" + firstLine: String + + """Git Blame grouped by contiguous lines for commit.""" + groups: [Groups!] +} + +type Blob implements Entry { + """Flat path of the entry.""" + flatPath: String! + + """ID of the entry.""" + id: ID! + + """LFS ID of the blob.""" + lfsOid: String + + """Blob mode in numeric format.""" + mode: String + + """Name of the entry.""" + name: String! + + """Path of the entry.""" + path: String! + + """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 { + """Timestamp of when the board was created.""" + createdAt: Time! + + """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! + + """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 + + """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! +} + +"""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 +} + +""" +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 + + """List of negated arguments.""" + not: NegatedBoardIssueInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Search query for issue title or description.""" + search: String + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Filter by confidentiality.""" + confidential: Boolean +} + +"""Represents a list for an issue board""" +type BoardList { + """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 + + """Label of the list.""" + label: Label + + """Type of the list.""" + listType: String! + + """Position of list within the board.""" + position: Int + + """Title of the list.""" + title: String! +} + +"""The connection type for BoardList.""" +type BoardListConnection { + """A list of edges.""" + edges: [BoardListEdge] + + """A list of nodes.""" + nodes: [BoardList] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of BoardListCreate""" +input BoardListCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Create the backlog list.""" + backlog: Boolean + + """Global ID of an existing label.""" + labelId: LabelID + + """Global ID of the issue board to mutate.""" + boardId: BoardID! +} + +"""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 +} + +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! + + """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 +} + +input BranchProtectionInput { + """Details about who can merge into the branch rule target.""" + mergeAccessLevels: [MergeAccessLevelInput!] = [] + + """Details about who can push to the branch rule target.""" + pushAccessLevels: [PushAccessLevelInput!] = [] + + """ + Allows users with write access to the branch rule target to force push changes. + """ + allowForcePush: Boolean = false +} + +"""Branch rules configured for a rule target.""" +type BranchRule { + """Branch protections configured for this branch rule.""" + branchProtection: BranchProtection + + """Timestamp of when the branch rule was created.""" + createdAt: Time + + """ID of the branch rule.""" + id: ProjectsBranchRuleID + + """Check if this branch rule protects the project's default branch.""" + isDefault: Boolean! + + """Check if this branch rule protects access for the branch.""" + isProtected: Boolean! + + """Number of existing branches that match this branch rule.""" + matchingBranchesCount: Int! + + """Name of the branch rule target. Includes wildcards.""" + 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! +} + +"""Autogenerated input type of BranchRuleCreate""" +input BranchRuleCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path to the project that the branch is associated with.""" + projectPath: ID! + + """Branch name, with wildcards, for the branch rules.""" + name: String! +} + +"""Autogenerated return type of BranchRuleCreate.""" +type BranchRuleCreatePayload { + """Branch rule after mutation.""" + branchRule: BranchRule + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of BranchRuleDelete""" +input BranchRuleDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the branch rule to destroy.""" + id: ProjectsBranchRuleID! +} + +"""Autogenerated return type of BranchRuleDelete.""" +type BranchRuleDeletePayload { + """Branch rule after mutation.""" + branchRule: BranchRule + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type BranchRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: BranchRule +} + +"""Autogenerated input type of BranchRuleUpdate""" +input BranchRuleUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the branch rule to update.""" + id: ProjectsBranchRuleID! + + """Branch name, with wildcards, for the branch rules.""" + name: String! + + """Branch protections configured for the branch rule.""" + branchProtection: BranchProtectionInput +} + +"""Autogenerated return type of BranchRuleUpdate.""" +type BranchRuleUpdatePayload { + """Branch rule after mutation.""" + branchRule: BranchRule + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of BulkDestroyJobArtifacts""" +input BulkDestroyJobArtifactsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global IDs of the job artifacts to destroy.""" + ids: [CiJobArtifactID!]! + + """ + Global Project ID of the job artifacts to destroy. Incompatible with projectPath. + """ + projectId: ProjectID! +} + +"""Autogenerated return type of BulkDestroyJobArtifacts.""" +type BulkDestroyJobArtifactsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Number of job artifacts deleted.""" + destroyedCount: Int + + """IDs of job artifacts that were deleted.""" + destroyedIds: [CiJobArtifactID!] + + """Errors encountered during 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!]! +} + +"""Autogenerated input type of CatalogResourcesCreate""" +input CatalogResourcesCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project path belonging to the catalog resource.""" + projectPath: ID! +} + +"""Autogenerated return type of CatalogResourcesCreate.""" +type CatalogResourcesCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CatalogResourcesDestroy""" +input CatalogResourcesDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project path belonging to the catalog resource.""" + projectPath: ID! +} + +"""Autogenerated return type of CatalogResourcesDestroy.""" +type CatalogResourcesDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type CiApplicationSettings { + """Whether to keep the latest jobs artifacts.""" + keepLatestArtifact: Boolean +} + +""" +A `CiBuildID` is a global ID. It is encoded as a string. + +An example `CiBuildID` is: `"gid://gitlab/Ci::Build/1"`. +""" +scalar CiBuildID + +type CiBuildNeed { + """ID of the BuildNeed.""" + id: ID! + + """Name of the job we need to complete.""" + name: String +} + +"""The connection type for CiBuildNeed.""" +type CiBuildNeedConnection { + """A list of edges.""" + edges: [CiBuildNeedEdge] + + """A list of nodes.""" + nodes: [CiBuildNeed] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiBuildNeedEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiBuildNeed +} + +type CiCatalogResource { + """Description of the catalog resource.""" + description: String + + """ + Full project path of the catalog resource. Introduced in GitLab 16.11: **Status**: Experiment. + """ + fullPath: ID @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """Icon for the catalog resource.""" + icon: String + + """ID of the catalog resource.""" + id: ID! + + """ + Number of projects that used a component from this catalog resource in a + pipeline, by using `include:component`, in the last 30 days. Introduced in + GitLab 17.0: **Status**: Experiment. + """ + last30DayUsageCount: Int! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """ + Release date of the catalog resource's latest version. Introduced in GitLab 16.5: **Status**: Experiment. + """ + latestReleasedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """Name of the catalog resource.""" + name: String + + """Number of times the catalog resource has been starred.""" + starCount: Int! + + """Relative path to the starrers page for the catalog resource project.""" + starrersPath: String + + """Verification level of the catalog resource.""" + verificationLevel: CiCatalogResourceVerificationLevel + + """ + Versions of the catalog resource. This field can only be resolved for one catalog resource in any single request. + """ + versions( + """Name of the version.""" + name: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiCatalogResourceVersionConnection + + """ + Web path of the catalog resource. Introduced in GitLab 16.1: **Status**: Experiment. + """ + webPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.") +} + +type CiCatalogResourceComponent { + """ID of the component.""" + id: CiCatalogResourcesComponentID! + + """Path used to include the component.""" + includePath: String + + """Inputs for the component.""" + inputs: [CiCatalogResourceComponentInput!] + + """Name of the component.""" + name: String +} + +"""The connection type for CiCatalogResourceComponent.""" +type CiCatalogResourceComponentConnection { + """A list of edges.""" + edges: [CiCatalogResourceComponentEdge] + + """A list of nodes.""" + nodes: [CiCatalogResourceComponent] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiCatalogResourceComponentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiCatalogResourceComponent +} + +type CiCatalogResourceComponentInput { + """Default value for the input.""" + default: String + + """Name of the input.""" + name: String + + """Indicates if an input is required.""" + required: Boolean +} + +"""The connection type for CiCatalogResource.""" +type CiCatalogResourceConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CiCatalogResourceEdge] + + """A list of nodes.""" + nodes: [CiCatalogResource] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiCatalogResourceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiCatalogResource +} + +""" +A `CiCatalogResourceID` is a global ID. It is encoded as a string. + +An example `CiCatalogResourceID` is: `"gid://gitlab/Ci::Catalog::Resource/1"`. +""" +scalar CiCatalogResourceID + +""" +A `CiCatalogResourcesComponentID` is a global ID. It is encoded as a string. + +An example `CiCatalogResourcesComponentID` is: `"gid://gitlab/Ci::Catalog::Resources::Component/1"`. +""" +scalar CiCatalogResourcesComponentID + +"""Values for scoping catalog resources""" +enum CiCatalogResourceScope { + """All catalog resources visible to the current user.""" + ALL + + """Catalog resources belonging to authorized namespaces of the user.""" + NAMESPACES +} + +"""Values for sorting catalog resources""" +enum CiCatalogResourceSort { + """Name by ascending order.""" + NAME_ASC + + """Name by descending order.""" + NAME_DESC + + """Latest release date by ascending order.""" + LATEST_RELEASED_AT_ASC + + """Latest release date by descending order.""" + LATEST_RELEASED_AT_DESC + + """Created date by ascending order.""" + CREATED_ASC + + """Created date by descending order.""" + CREATED_DESC + + """Star count by ascending order.""" + STAR_COUNT_ASC + + """Star count by descending order.""" + STAR_COUNT_DESC + + """Last 30-day usage count by ascending order.""" + USAGE_COUNT_ASC + + """Last 30-day usage count by descending order.""" + USAGE_COUNT_DESC +} + +""" +A `CiCatalogResourcesVersionID` is a global ID. It is encoded as a string. + +An example `CiCatalogResourcesVersionID` is: `"gid://gitlab/Ci::Catalog::Resources::Version/1"`. +""" +scalar CiCatalogResourcesVersionID + +enum CiCatalogResourceVerificationLevel { + """The resource is Gitlab Maintained""" + GITLAB_MAINTAINED + + """The resource is Gitlab Partner Maintained""" + GITLAB_PARTNER_MAINTAINED + + """The resource is Verified Creator Maintained""" + VERIFIED_CREATOR_MAINTAINED + + """The resource is Unverified""" + UNVERIFIED +} + +type CiCatalogResourceVersion { + """User that created the version.""" + author: UserCore + + """Commit associated with the version.""" + commit: Commit + + """Components belonging to the catalog resource.""" + components( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiCatalogResourceComponentConnection + + """Timestamp of when the version was created.""" + createdAt: Time + + """Global ID of the version.""" + id: CiCatalogResourcesVersionID! + + """Name that uniquely identifies the version within the catalog resource.""" + name: String + + """Relative web path to the version.""" + path: String + + """Readme data.""" + readme: String + + """GitLab Flavored Markdown rendering of `readme`""" + readmeHtml: String + + """ + Timestamp of when the version was released. Introduced in GitLab 16.7: **Status**: Experiment. + """ + releasedAt: Time @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") +} + +"""The connection type for CiCatalogResourceVersion.""" +type CiCatalogResourceVersionConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CiCatalogResourceVersionEdge] + + """A list of nodes.""" + nodes: [CiCatalogResourceVersion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiCatalogResourceVersionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiCatalogResourceVersion +} + +type 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. For example, `"https://gitlab.com/gitlab-org/gitlab/-/blob/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml"`. + """ + blob: String + + """Current project scope, e.g., "gitlab-org/gitlab".""" + contextProject: String + + """Current sha scope.""" + contextSha: String + + """ + Extra information for the `include`, which can contain `job_name`, `project`, + and `ref`. Values can be masked if they contain masked variables. + """ + extra: JSON + + """ + File location. It can be masked if it contains masked variables. For example, `".gitlab/ci/build-images.gitlab-ci.yml"`. + """ + location: String + + """ + File raw location. It can be masked if it contains masked variables. For example, `"https://gitlab.com/gitlab-org/gitlab/-/raw/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml"`. + """ + raw: String + + """Include type.""" + type: CiConfigIncludeType +} + +"""Include type.""" +enum CiConfigIncludeType { + """Remote include.""" + remote + + """Local include.""" + local + + """Project file include.""" + file + + """Template include.""" + template + + """Component include.""" + component +} + +type CiConfigJob { + """Override a set of commands that are executed after the job.""" + afterScript: [String!] + + """Allow job to fail.""" + allowFailure: Boolean + + """Override a set of commands that are executed before the job.""" + beforeScript: [String!] + + """Name of an environment to which the job deploys.""" + environment: String + + """Limit when jobs are not created.""" + except: CiConfigJobRestriction + + """Name of the job group.""" + groupName: String + + """Name of the job.""" + name: String + + """Builds that must complete before the jobs run.""" + needs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiConfigNeedConnection + + """Jobs are created when these conditions do not apply.""" + only: CiConfigJobRestriction + + """Shell script that is executed by a runner.""" + script: [String!] + + """Name of the job stage.""" + stage: String + + """List of tags that are used to select a runner.""" + tags: [String!] + + """When to run the job.""" + when: String +} + +"""The connection type for CiConfigJob.""" +type CiConfigJobConnection { + """A list of edges.""" + edges: [CiConfigJobEdge] + + """A list of nodes.""" + nodes: [CiConfigJob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiConfigJobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiConfigJob +} + +type CiConfigJobRestriction { + """Git refs the job restriction applies to.""" + refs: [String!] +} + +type 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 + + """Value options for the variable.""" + valueOptions: [String!] +} + +"""Represents a deployment freeze window of a project""" +type CiFreezePeriod { + """Time zone for the cron fields, defaults to UTC if not provided.""" + cronTimezone: String + + """End of the freeze period in cron format.""" + endCron: String! + + """Timestamp (UTC) of when the current/next active period ends.""" + endTime: Time + + """Start of the freeze period in cron format.""" + startCron: String! + + """Timestamp (UTC) of when the current/next active period starts.""" + startTime: Time + + """Freeze period status.""" + status: CiFreezePeriodStatus! +} + +"""Deploy freeze period status""" +enum CiFreezePeriodStatus { + """Freeze period is active.""" + ACTIVE + + """Freeze period is inactive.""" + INACTIVE +} + +type CiGroup { + """Detailed status of the group.""" + detailedStatus: DetailedStatus + + """ID for a group.""" + id: String! + + """Jobs in group.""" + jobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Name of the job group.""" + name: String + + """Size of the group.""" + size: Int +} + +"""The connection type for CiGroup.""" +type CiGroupConnection { + """A list of edges.""" + edges: [CiGroupEdge] + + """A list of nodes.""" + nodes: [CiGroup] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiGroupEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiGroup +} + +"""Ci/CD environment scope for a group.""" +type CiGroupEnvironmentScope { + """Scope name defininig the enviromnments that can use the variable.""" + name: String +} + +"""The connection type for CiGroupEnvironmentScope.""" +type CiGroupEnvironmentScopeConnection { + """A list of edges.""" + edges: [CiGroupEnvironmentScopeEdge] + + """A list of nodes.""" + nodes: [CiGroupEnvironmentScope] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiGroupEnvironmentScopeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiGroupEnvironmentScope +} + +"""CI/CD variables for a group.""" +type CiGroupVariable implements CiVariable { + """Description of the variable.""" + description: String + + """Scope defining the environments that can use the variable.""" + environmentScope: String + + """Indicates whether the variable is hidden.""" + hidden: Boolean + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiGroupVariable.""" +type CiGroupVariableConnection { + """A list of edges.""" + edges: [CiGroupVariableEdge] + + """Maximum amount of group CI/CD variables.""" + limit: Int! + + """A list of nodes.""" + nodes: [CiGroupVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiGroupVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiGroupVariable +} + +"""Values for sorting inherited variables""" +enum CiGroupVariablesSort { + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC + + """Key by descending order.""" + KEY_DESC + + """Key by ascending order.""" + KEY_ASC +} + +"""CI/CD variables for a GitLab instance.""" +type CiInstanceVariable implements CiVariable { + """Description of the variable.""" + description: String + + """ + Scope defining the environments that can use the variable. Deprecated in + GitLab 15.3: No longer used, only available for GroupVariableType and + ProjectVariableType. + """ + environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in GitLab 15.3.") + + """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 + + """URL for browsing the artifact's archive.""" + browseArtifactsPath: String + + """Indicates whether the current user can play the job.""" + canPlayJob: Boolean! + + """Indicates the job can be canceled.""" + cancelable: Boolean! + + """Path to the commit that triggered the job.""" + commitPath: String + + """Coverage level of the job.""" + coverage: Float + + """When the job was created.""" + createdAt: Time! + + """Whether the job was created by a tag.""" + createdByTag: Boolean! + + """Detailed status of the job.""" + detailedStatus: DetailedStatus + + """Downstream pipeline for a bridge.""" + downstreamPipeline: Pipeline + + """Duration of the job in seconds.""" + duration: Int + + """When the job was erased.""" + erasedAt: Time + + """Message on why the job failed.""" + failureMessage: String + + """When a job has finished running.""" + finishedAt: Time + + """ID of the job.""" + id: JobID + + """Indicates the type of job.""" + kind: CiJobKind! + + """Whether the job has a manual action.""" + manualJob: Boolean + + """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 + + """Play path of the job.""" + playPath: String + + """Indicates the job can be played.""" + playable: Boolean! + + """Jobs from the previous stage.""" + previousStageJobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """ + Jobs that must complete before the job runs. Returns `BuildNeed`, which is the + needed jobs if the job uses the `needs` keyword, or the previous stage jobs + otherwise. Deprecated in GitLab 16.4: Replaced by previousStageJobs and needs fields. + """ + previousStageJobsOrNeeds( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): JobNeedUnionConnection @deprecated(reason: "Replaced by previousStageJobs and needs fields. Deprecated in GitLab 16.4.") + + """Project that the job belongs to.""" + project: Project + + """When the job was enqueued and marked as pending.""" + queuedAt: Time + + """How long the job was enqueued before starting.""" + queuedDuration: Duration + + """Ref name of the job.""" + refName: String + + """Path to the ref.""" + refPath: String + + """Indicates that the job has been retried.""" + retried: Boolean + + """Indicates the job can be retried.""" + retryable: Boolean! + + """Runner assigned to execute the job.""" + runner: CiRunner + + """Runner manager assigned to the job.""" + runnerManager: CiRunnerManager + + """Indicates the job is scheduled.""" + scheduled: Boolean! + + """Schedule for the build.""" + scheduledAt: Time + + """ + Type of job scheduling. Value is `dag` if the job uses the `needs` keyword, and `stage` otherwise. + """ + schedulingType: String + + """Short SHA1 ID of the commit.""" + shortSha: String! + + """Stage of the job.""" + stage: CiStage + + """When the job was started.""" + startedAt: Time + + """Status of the job.""" + status: CiJobStatus + + """Indicates the job is stuck.""" + stuck: Boolean! + + """Tags for the current job.""" + tags: [String!] + + """Trace generated by the job.""" + trace: CiJobTrace + + """Whether the job was triggered.""" + triggered: Boolean + + """Permissions for the current user on the resource""" + userPermissions: JobPermissions! + + """Web path of the job.""" + webPath: String +} + +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: BigInt! +} + +"""The connection type for CiJobArtifact.""" +type CiJobArtifactConnection { + """A list of edges.""" + edges: [CiJobArtifactEdge] + + """A list of nodes.""" + nodes: [CiJobArtifact] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiJobArtifactEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiJobArtifact +} + +""" +A `CiJobArtifactID` is a global ID. It is encoded as a string. + +An example `CiJobArtifactID` is: `"gid://gitlab/Ci::JobArtifact/1"`. +""" +scalar CiJobArtifactID + +"""The connection type for CiJob.""" +type CiJobConnection { + """ + 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 waiting for callback.""" + WAITING_FOR_CALLBACK + + """A job that is pending.""" + PENDING + + """A job that is running.""" + RUNNING + + """A job that is success.""" + SUCCESS + + """A job that is failed.""" + FAILED + + """A job that is canceling.""" + CANCELING + + """A job that is canceled.""" + CANCELED + + """A job that is skipped.""" + SKIPPED + + """A job that is manual.""" + MANUAL + + """A job that is scheduled.""" + SCHEDULED +} + +"""Autogenerated input type of CiJobTokenScopeAddGroupOrProject""" +input CiJobTokenScopeAddGroupOrProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project that the CI job token scope belongs to.""" + projectPath: ID! + + """Group or project to be added to the CI job token scope.""" + targetPath: ID! +} + +"""Autogenerated return type of CiJobTokenScopeAddGroupOrProject.""" +type CiJobTokenScopeAddGroupOrProjectPayload { + """CI job token's access scope.""" + 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 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 access scope.""" + ciJobTokenScope: CiJobTokenScopeType + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Direction of access.""" +enum CiJobTokenScopeDirection { + """ + Job token scope project can access target project in the outbound allowlist. + """ + OUTBOUND + + """ + Target projects in the inbound allowlist can access the scope project through their job tokens. + """ + INBOUND +} + +"""Autogenerated input type of CiJobTokenScopeRemoveGroup""" +input CiJobTokenScopeRemoveGroupInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project that the CI job token scope belongs to.""" + projectPath: ID! + + """Group to be removed from the CI job token scope.""" + targetGroupPath: ID! +} + +"""Autogenerated return type of CiJobTokenScopeRemoveGroup.""" +type CiJobTokenScopeRemoveGroupPayload { + """CI job token's access scope.""" + ciJobTokenScope: CiJobTokenScopeType + + """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 { + """ + Allowlist of groups that can access the current project by authenticating with a CI/CD job token. + """ + groupsAllowlist( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection! + + """ + Count of groups that can access the current project by authenticating with a + CI/CD job token. The count does not include subgroups. + """ + groupsAllowlistCount: Int! + + """ + Allowlist of projects that can access the current project by authenticating with a CI/CD job token. + """ + inboundAllowlist( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """ + Count of projects that can access the current project by authenticating with a + CI/CD job token. The count does not include nested projects. + """ + inboundAllowlistCount: Int! + + """ + Allow list of projects that are accessible using the current project's CI Job tokens. + """ + outboundAllowlist( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """ + Allow list of projects that can be accessed by CI Job tokens created by this + project. Deprecated in GitLab 15.9: The `projects` attribute is being + deprecated. Use `outbound_allowlist`. + """ + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! @deprecated(reason: "The `projects` attribute is being deprecated. Use `outbound_allowlist`. Deprecated in GitLab 15.9.") +} + +type CiJobTrace { + """ + HTML summary that contains the tail lines of the trace. Returns at most 16KB + of raw bytes from the trace. The returned string might start with an + unexpected invalid UTF-8 code point due to truncation. Introduced in GitLab + 15.11: **Status**: Experiment. + """ + htmlSummary( + """Number of tail lines to return, up to a maximum of 100 lines.""" + lastLines: Int = 10 + ): String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") +} + +"""CI/CD variables given to a manual job.""" +type CiManualVariable implements CiVariable { + """ + Scope defining the environments that can use the variable. Deprecated in + GitLab 15.3: No longer used, only available for GroupVariableType and + ProjectVariableType. + """ + environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in GitLab 15.3.") + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiManualVariable.""" +type CiManualVariableConnection { + """A list of edges.""" + edges: [CiManualVariableEdge] + + """A list of nodes.""" + nodes: [CiManualVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiManualVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiManualVariable +} + +""" +A `CiPipelineID` is a global ID. It is encoded as a string. + +An example `CiPipelineID` is: `"gid://gitlab/Ci::Pipeline/1"`. +""" +scalar CiPipelineID + +""" +A `CiPipelineScheduleID` is a global ID. It is encoded as a string. + +An example `CiPipelineScheduleID` is: `"gid://gitlab/Ci::PipelineSchedule/1"`. +""" +scalar CiPipelineScheduleID + +""" +A `CiPipelineScheduleVariableID` is a global ID. It is encoded as a string. + +An example `CiPipelineScheduleVariableID` is: `"gid://gitlab/Ci::PipelineScheduleVariable/1"`. +""" +scalar CiPipelineScheduleVariableID + +""" +A `CiProcessableID` is a global ID. It is encoded as a string. + +An example `CiProcessableID` is: `"gid://gitlab/Ci::Processable/1"`. +""" +scalar CiProcessableID + +"""CI/CD variables for a project.""" +type CiProjectVariable implements CiVariable { + """Description of the variable.""" + description: String + + """Scope defining the environments that can use the variable.""" + environmentScope: String + + """Indicates whether the variable is hidden.""" + hidden: Boolean + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiProjectVariable.""" +type CiProjectVariableConnection { + """A list of edges.""" + edges: [CiProjectVariableEdge] + + """Maximum amount of project CI/CD variables.""" + limit: Int! + + """A list of nodes.""" + nodes: [CiProjectVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiProjectVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiProjectVariable +} + +type CiRunner { + """Access level of the runner.""" + accessLevel: CiRunnerAccessLevel! + + """ + Indicates the runner is allowed to receive jobs. Deprecated in GitLab 14.8: Use paused. + """ + active: Boolean! @deprecated(reason: "Use paused. Deprecated in GitLab 14.8.") + + """Admin URL of the runner. Only available for administrators.""" + adminUrl: String + + """Timestamp of last contact from this runner.""" + contactedAt: Time + + """Timestamp of creation of this runner.""" + createdAt: Time + + """User that created this runner.""" + createdBy: UserCore + + """ + Type of runner registration. Introduced in GitLab 17.0: **Status**: Experiment. + """ + creationMethod: CiRunnerCreationMethod @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Description of the runner.""" + description: String + + """Admin form URL of the runner. Only available for administrators.""" + editAdminUrl: String + + """ + Ephemeral authentication token used for runner manager registration. Only + available for the creator of the runner for a limited time during + registration. Introduced in GitLab 15.9: **Status**: Experiment. + """ + ephemeralAuthenticationToken: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """ + URL of the registration page of the runner manager. Only available for the + creator of the runner for a limited time during registration. Introduced in + GitLab 15.11: **Status**: Experiment. + """ + ephemeralRegisterUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + + """Groups the runner is associated with. For group runners only.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the runner.""" + id: CiRunnerID! + + """ + Number of jobs processed by the runner (limited to 1000, plus one to indicate that more items exist). + `jobCount` is an optimized version of `jobs { count }`, and can be requested for multiple runners on the same request. + """ + jobCount: Int + + """ + Job execution status of the runner. Introduced in GitLab 15.7: **Status**: Experiment. + """ + jobExecutionStatus: CiRunnerJobExecutionStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.") + + """ + 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 + + """GitLab Flavored Markdown rendering of `maintenance_note`""" + maintenanceNoteHtml: String + + """Runner managers associated with the runner configuration.""" + managers( + """Filter runner managers by system ID.""" + systemId: String + + """Filter runner managers by status.""" + status: CiRunnerStatus + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiRunnerManagerConnection + + """Maximum timeout (in seconds) for jobs processed by the runner.""" + maximumTimeout: Int + + """Project that owns the runner. For project runners only.""" + ownerProject: Project + + """Indicates the runner is paused and not available to run jobs.""" + paused: Boolean! + + """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!] + + """Return only personal projects.""" + personal: Boolean + + """ + Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc` + """ + sort: String = "id_desc" + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """ + URL of the temporary registration page of the runner. Only available before + the runner is registered. Only available for administrators. + """ + registerAdminUrl: String + + """Indicates the runner is able to run untagged jobs.""" + runUntagged: Boolean! + + """Type of the runner.""" + runnerType: CiRunnerType! + + """ + First eight characters of the runner's token used to authenticate new job requests. Used as the runner's unique ID. + """ + shortSha: String + + """Status of the runner.""" + status: CiRunnerStatus! + + """Tags associated with the runner.""" + tagList: [String!] + + """Runner token expiration time.""" + tokenExpiresAt: Time + + """Permissions for the current user on the resource""" + userPermissions: RunnerPermissions! +} + +enum CiRunnerAccessLevel { + """A runner that is not protected.""" + NOT_PROTECTED + + """A runner that is ref protected.""" + REF_PROTECTED +} + +"""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! +} + +enum CiRunnerCreationMethod { + """Applies to a runner that was created by a runner registration token.""" + REGISTRATION_TOKEN + + """Applies to a runner that was created by an authenticated user.""" + AUTHENTICATED_USER +} + +"""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 + +enum CiRunnerJobExecutionStatus { + """Runner is idle. Introduced in GitLab 15.7: **Status**: Experiment.""" + IDLE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.") + + """ + Runner is executing jobs. Introduced in GitLab 15.7: **Status**: Experiment. + """ + RUNNING @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.") +} + +type CiRunnerManager { + """Architecture provided by the runner manager.""" + architectureName: String + + """Timestamp of last contact from the runner manager.""" + contactedAt: Time + + """Timestamp of creation of the runner manager.""" + createdAt: Time + + """Executor last advertised by the runner.""" + executorName: String + + """ID of the runner manager.""" + id: CiRunnerManagerID! + + """IP address of the runner manager.""" + ipAddress: String + + """ + Job execution status of the runner manager. Introduced in GitLab 16.3: **Status**: Experiment. + """ + jobExecutionStatus: CiRunnerJobExecutionStatus @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """Platform provided by the runner manager.""" + platformName: String + + """Revision of the runner.""" + revision: String + + """Runner configuration for the runner manager.""" + runner: CiRunner + + """Status of the runner manager.""" + status: CiRunnerStatus! + + """System ID associated with the runner manager.""" + systemId: String! + + """Version of the runner.""" + version: String +} + +"""The connection type for CiRunnerManager.""" +type CiRunnerManagerConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CiRunnerManagerEdge] + + """A list of nodes.""" + nodes: [CiRunnerManager] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiRunnerManagerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiRunnerManager +} + +""" +A `CiRunnerManagerID` is a global ID. It is encoded as a string. + +An example `CiRunnerManagerID` is: `"gid://gitlab/Ci::RunnerManager/1"`. +""" +scalar CiRunnerManagerID + +"""Values for filtering runners in namespaces.""" +enum CiRunnerMembershipFilter { + """Include runners that have a direct relationship.""" + DIRECT + + """ + Include runners that have either a direct or inherited relationship. These + runners can be specific to a project or a group. + """ + DESCENDANTS + + """ + Include all runners. This list includes runners for all projects in the group + and subgroups, as well as for the parent groups and instance. Introduced in + GitLab 15.5: **Status**: Experiment. + """ + ALL_AVAILABLE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.5.") +} + +"""Values for sorting runners""" +enum CiRunnerSort { + """Ordered by contacted_at in ascending order.""" + CONTACTED_ASC + + """Ordered by contacted_at in descending order.""" + CONTACTED_DESC + + """Ordered by created_at in ascending order.""" + CREATED_ASC + + """Ordered by created_at in descending order.""" + CREATED_DESC + + """Ordered by token_expires_at in ascending order.""" + TOKEN_EXPIRES_AT_ASC + + """Ordered by token_expires_at in descending order.""" + TOKEN_EXPIRES_AT_DESC +} + +enum CiRunnerStatus { + """ + Runner that is not paused. Deprecated in GitLab 14.6: This was renamed. + """ + ACTIVE @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in GitLab 14.6.") + + """Runner that is paused. Deprecated in GitLab 14.6: This was renamed.""" + PAUSED @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in GitLab 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 7 days. + """ + OFFLINE + + """Runner that has not contacted this instance within the last 7 days.""" + 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 +} + +type CiStage { + """Detailed status of the stage.""" + detailedStatus: DetailedStatus + + """Group of jobs for the stage.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiGroupConnection + + """ID of the stage.""" + id: ID! + + """Jobs for the stage.""" + jobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Name of the stage.""" + name: String + + """Status of the pipeline stage.""" + status: String +} + +"""The connection type for CiStage.""" +type CiStageConnection { + """A list of edges.""" + edges: [CiStageEdge] + + """A list of nodes.""" + nodes: [CiStage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiStageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiStage +} + +""" +A `CiStageID` is a global ID. It is encoded as a string. + +An example `CiStageID` is: `"gid://gitlab/Ci::Stage/1"`. +""" +scalar CiStageID + +"""GitLab CI/CD configuration template.""" +type CiTemplate { + """Contents of the CI template.""" + content: String! + + """Name of the CI template.""" + name: String! +} + +""" +A `CiTriggerID` is a global ID. It is encoded as a string. + +An example `CiTriggerID` is: `"gid://gitlab/Ci::Trigger/1"`. +""" +scalar CiTriggerID + +interface CiVariable { + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""Attributes for defining a CI/CD variable.""" +input CiVariableInput { + """Name of the variable.""" + key: String! + + """Value of the variable.""" + value: String! +} + +"""Values for sorting variables""" +enum CiVariableSort { + """Sorted by key in ascending order.""" + KEY_ASC + + """Sorted by key in descending order.""" + KEY_DESC +} + +enum CiVariableType { + """Env var type.""" + ENV_VAR + + """File type.""" + FILE +} + +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( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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 + + """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 +} + +type ClusterAgentAuthorizationCiAccess { + """Authorized cluster agent.""" + agent: ClusterAgent + + """Configuration for the authorized project.""" + config: JSON +} + +"""The connection type for ClusterAgentAuthorizationCiAccess.""" +type ClusterAgentAuthorizationCiAccessConnection { + """A list of edges.""" + edges: [ClusterAgentAuthorizationCiAccessEdge] + + """A list of nodes.""" + nodes: [ClusterAgentAuthorizationCiAccess] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ClusterAgentAuthorizationCiAccessEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ClusterAgentAuthorizationCiAccess +} + +type ClusterAgentAuthorizationUserAccess { + """Authorized cluster agent.""" + agent: ClusterAgent + + """Configuration for the authorized project.""" + config: JSON +} + +"""The connection type for ClusterAgentAuthorizationUserAccess.""" +type ClusterAgentAuthorizationUserAccessConnection { + """A list of edges.""" + edges: [ClusterAgentAuthorizationUserAccessEdge] + + """A list of nodes.""" + nodes: [ClusterAgentAuthorizationUserAccess] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ClusterAgentAuthorizationUserAccessEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ClusterAgentAuthorizationUserAccess +} + +"""The connection type for ClusterAgent.""" +type ClusterAgentConnection { + """Total count of collection.""" + 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 + +enum CodeQualityDegradationSeverity { + """Code Quality degradation has a status of blocker.""" + BLOCKER + + """Code Quality degradation has a status of critical.""" + CRITICAL + + """Code Quality degradation has a status of major.""" + MAJOR + + """Code Quality degradation has a status of minor.""" + MINOR + + """Code Quality degradation has a status of info.""" + INFO + + """Code Quality degradation has a status of unknown.""" + UNKNOWN +} + +"""Represents reports comparison for code quality.""" +type CodequalityReportsComparer { + """Compared codequality report.""" + report: CodequalityReportsComparerReport + + """Compared codequality report generation status.""" + status: CodequalityReportsComparerReportGenerationStatus +} + +"""Represents compared code quality report.""" +type CodequalityReportsComparerReport { + """All code quality degradations.""" + existingErrors: [CodequalityReportsComparerReportDegradation!] + + """New code quality degradations.""" + newErrors: [CodequalityReportsComparerReportDegradation!]! + + """Resolved code quality degradations.""" + resolvedErrors: [CodequalityReportsComparerReportDegradation!] + + """Status of report.""" + status: CodequalityReportsComparerStatus! + + """Codequality report summary.""" + summary: CodequalityReportsComparerReportSummary! +} + +"""Represents a degradation on the compared codequality report.""" +type CodequalityReportsComparerReportDegradation { + """Description of the code quality degradation.""" + description: String! + + """Code quality plugin that reported the degradation.""" + engineName: String + + """Relative path to the file containing the code quality degradation.""" + filePath: String! + + """ + Unique fingerprint to identify the code quality degradation. For example, an MD5 hash. + """ + fingerprint: String! + + """Line on which the code quality degradation occurred.""" + line: Int! + + """ + Severity of the code quality degradation (BLOCKER, CRITICAL, MAJOR, MINOR, INFO, UNKNOWN). + """ + severity: CodeQualityDegradationSeverity! + + """URL to the file along with line number.""" + webUrl: String +} + +"""Represents the generation status of the compared codequality report.""" +enum CodequalityReportsComparerReportGenerationStatus { + """Report was generated.""" + PARSED + + """Report is being generated.""" + PARSING + + """An error happened while generating the report.""" + ERROR +} + +"""Represents a summary of the compared codequality report.""" +type CodequalityReportsComparerReportSummary { + """Count of code quality errors.""" + errored: Int + + """Count of resolved code quality degradations.""" + resolved: Int + + """Total count of code quality degradations.""" + total: Int +} + +"""Represents the state of the code quality report.""" +enum CodequalityReportsComparerStatus { + """No degradations found in the head pipeline report.""" + SUCCESS + + """Report generated and there are new code quality degradations.""" + FAILED + + """Head report or base report not found.""" + NOT_FOUND +} + +""" +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 + + """Timestamp of when the commit was committed.""" + committedDate: Time + + """Email of the committer.""" + committerEmail: String + + """Name of the committer.""" + committerName: String + + """Description of the commit message.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ + Diffs contained within the commit. This field can only be resolved for 10 diffs in any single request. + """ + diffs: [Diff!] + + """Full title of the commit message.""" + fullTitle: String + + """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 the date.""" + updatedAfter: Time + + """Pipelines updated before the date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """SHA1 ID of the commit.""" + sha: String! + + """Short SHA1 ID of the commit.""" + shortId: String! + + """Signature of the commit.""" + signature: CommitSignature + + """Rendered HTML of the commit signature.""" + signatureHtml: String + + """Title of the commit message.""" + title: String + + """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!]! +} + +type CommitData { + """CSS class for age of commit.""" + ageMapClass: String! + + """Link to author avatar.""" + authorAvatar: String! + + """Link to the commit author.""" + commitAuthorLink: String! + + """Link to the commit.""" + commitLink: String! + + """Link to blame prior to the change.""" + projectBlameLink: String + + """Time of commit.""" + timeAgoTooltip: String! +} + +"""An edge in a connection.""" +type CommitEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Commit +} + +enum CommitEncoding { + """Text encoding.""" + TEXT + + """Base64 encoding.""" + BASE64 +} + +type CommitParentNames { + """Names of the commit parent (branch or tag).""" + names: [String!] +} + +type CommitReferences { + """Get branch names containing a given commit.""" + containingBranches( + """ + Exclude tipping refs. WARNING: This argument can be confusing, if there is a limit. + for example set the limit to 5 and in the 5 out a total of 25 refs there is 2 tipped refs, + then the method will only 3 refs, even though there is more. + """ + excludeTipped: Boolean! = false + + """Number of ref names to return.""" + limit: Int! = 100 + ): CommitParentNames + + """Get tag names containing a given commit.""" + containingTags( + """ + Exclude tipping refs. WARNING: This argument can be confusing, if there is a limit. + for example set the limit to 5 and in the 5 out a total of 25 refs there is 2 tipped refs, + then the method will only 3 refs, even though there is more. + """ + excludeTipped: Boolean! = false + + """Number of ref names to return.""" + limit: Int! = 100 + ): CommitParentNames + + """Get branch names tipping at a given commit.""" + tippingBranches( + """Number of ref names to return.""" + limit: Int! = 100 + ): CommitParentNames + + """Get tag names tipping at a given commit.""" + tippingTags( + """Number of ref names to return.""" + limit: Int! = 100 + ): CommitParentNames +} + +"""Represents signing information for a commit""" +interface CommitSignature { + """SHA of the associated commit.""" + commitSha: String + + """Project of the associated commit.""" + project: Project + + """Indicates verification status of the associated key or certificate.""" + verificationStatus: VerificationStatus +} + +"""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 ConfigureSastIac""" +input ConfigureSastIacInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! +} + +"""Autogenerated return type of ConfigureSastIac.""" +type ConfigureSastIacPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureSast""" +input ConfigureSastInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! + + """SAST CI configuration for the project.""" + configuration: SastCiConfigurationInput! +} + +"""Autogenerated return type of ConfigureSast.""" +type ConfigureSastPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureSecretDetection""" +input ConfigureSecretDetectionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! +} + +"""Autogenerated return type of ConfigureSecretDetection.""" +type ConfigureSecretDetectionPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Represents the total number of contacts for the represented states.""" +type ContactStateCounts { + """Number of contacts with state `ACTIVE`""" + active: Int + + """Number of contacts with state `ALL`""" + all: Int + + """Number of contacts with state `INACTIVE`""" + inactive: Int +} + +""" +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 registry protection rule designed to prevent users with a certain +access level or lower from altering the container registry. +""" +type ContainerRegistryProtectionRule { + """ + ID of the container registry protection rule. Introduced in GitLab 16.6: **Status**: Experiment. + """ + id: ContainerRegistryProtectionRuleID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """ + Minimum GitLab access level to allow to push container images to the container + registry. For example, `MAINTAINER`, `OWNER`, or `ADMIN`. Introduced in GitLab + 16.6: **Status**: Experiment. + """ + minimumAccessLevelForDelete: ContainerRegistryProtectionRuleAccessLevel! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """ + Minimum GitLab access level to allow to push container images to the container + registry. For example, `MAINTAINER`, `OWNER`, or `ADMIN`. Introduced in GitLab + 16.6: **Status**: Experiment. + """ + minimumAccessLevelForPush: ContainerRegistryProtectionRuleAccessLevel! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """ + Container repository path pattern protected by the protection rule. For + example, `my-project/my-container-*`. Wildcard character `*` allowed. + Introduced in GitLab 16.6: **Status**: Experiment. + """ + repositoryPathPattern: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") +} + +"""Access level of a container registry protection rule resource""" +enum ContainerRegistryProtectionRuleAccessLevel { + """Maintainer access. Introduced in GitLab 16.6: **Status**: Experiment.""" + MAINTAINER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """Owner access. Introduced in GitLab 16.6: **Status**: Experiment.""" + OWNER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """Admin access. Introduced in GitLab 16.6: **Status**: Experiment.""" + ADMIN @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") +} + +"""The connection type for ContainerRegistryProtectionRule.""" +type ContainerRegistryProtectionRuleConnection { + """A list of edges.""" + edges: [ContainerRegistryProtectionRuleEdge] + + """A list of nodes.""" + nodes: [ContainerRegistryProtectionRule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ContainerRegistryProtectionRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ContainerRegistryProtectionRule +} + +""" +A `ContainerRegistryProtectionRuleID` is a global ID. It is encoded as a string. + +An example `ContainerRegistryProtectionRuleID` is: `"gid://gitlab/ContainerRegistry::Protection::Rule/1"`. +""" +scalar ContainerRegistryProtectionRuleID + +"""A container repository""" +type ContainerRepository { + """Timestamp when the container repository was created.""" + createdAt: Time! + + """Tags cleanup status for the container repository.""" + expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus + + """ + Timestamp when the cleanup done by the expiration policy was started on the container repository. + """ + expirationPolicyStartedAt: Time + + """ID of the container repository.""" + id: ID! + + """Number of deleted tags from the last cleanup.""" + lastCleanupDeletedTagsCount: Int + + """URL of the container repository.""" + location: String! + + """ + Migration state of the container repository. Deprecated in GitLab 17.0: + Returns an empty string. This was used for the migration of GitLab.com, which + is now complete. Not used by Self-managed instances. + """ + migrationState: String! @deprecated(reason: "Returns an empty string. This was used for the migration of GitLab.com, which is now complete. Not used by Self-managed instances. Deprecated in GitLab 17.0.") + + """Name of the container repository.""" + name: String! + + """Path of the container repository.""" + path: String! + + """Project of the container registry.""" + project: Project! + + """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! + + """Permissions for the current user on the resource""" + userPermissions: ContainerRepositoryPermissions! +} + +"""Status of the tags cleanup of a container repository""" +enum ContainerRepositoryCleanupStatus { + """Tags cleanup is not scheduled. This is the default state.""" + UNSCHEDULED + + """Tags cleanup is scheduled and is going to be executed shortly.""" + SCHEDULED + + """ + Tags cleanup has been partially executed. There are still remaining tags to delete. + """ + UNFINISHED + + """Tags cleanup is ongoing.""" + ONGOING +} + +"""The connection type for ContainerRepository.""" +type ContainerRepositoryConnection { + """A list of edges.""" + edges: [ContainerRepositoryEdge] + + """A list of nodes.""" + nodes: [ContainerRepository] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Details of a container repository""" +type ContainerRepositoryDetails { + """Timestamp when the container repository was created.""" + createdAt: Time! + + """Tags cleanup status for the container repository.""" + expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus + + """ + Timestamp when the cleanup done by the expiration policy was started on the container repository. + """ + expirationPolicyStartedAt: Time + + """ID of the container repository.""" + id: ID! + + """Number of deleted tags from the last cleanup.""" + lastCleanupDeletedTagsCount: Int + + """ + Timestamp when a repository tag was last created or updated. Only present for + repositories that had tags created or updated after GitLab 16.11. + """ + lastPublishedAt: Time + + """URL of the container repository.""" + location: String! + + """An image manifest from the container repository.""" + manifest( + """Tag name or digest of the manifest.""" + reference: String! + ): String + + """ + Migration state of the container repository. Deprecated in GitLab 17.0: + Returns an empty string. This was used for the migration of GitLab.com, which + is now complete. Not used by Self-managed instances. + """ + migrationState: String! @deprecated(reason: "Returns an empty string. This was used for the migration of GitLab.com, which is now complete. Not used by Self-managed instances. Deprecated in GitLab 17.0.") + + """Name of the container repository.""" + name: String! + + """Path of the container repository.""" + path: String! + + """Project of the container registry.""" + project: Project! + + """ + 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 + + """Include tag referrers.""" + referrers: Boolean = null + + """ + Comma-separated list of artifact types used to filter referrers. Applies only when `referrers` is set to `true`. + """ + referrerType: String = null + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryTagConnection + + """Number of tags associated with this image.""" + tagsCount: Int! + + """Timestamp when the container repository was updated.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: ContainerRepositoryPermissions! +} + +"""An edge in a connection.""" +type ContainerRepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ContainerRepository +} + +""" +A `ContainerRepositoryID` is a global ID. It is encoded as a string. + +An example `ContainerRepositoryID` is: `"gid://gitlab/ContainerRepository/1"`. +""" +scalar ContainerRepositoryID + +type ContainerRepositoryPermissions { + """ + If `true`, the user can perform `destroy_container_image` on this resource + """ + destroyContainerRepository: Boolean! +} + +"""A referrer for a container repository tag""" +type ContainerRepositoryReferrer { + """Artifact type of the referrer.""" + artifactType: String + + """Digest of the referrer.""" + digest: String + + """Permissions for the current user on the resource""" + userPermissions: ContainerRepositoryTagPermissions! +} + +"""Values for sorting container repositories""" +enum ContainerRepositorySort { + """Name by ascending order.""" + NAME_ASC + + """Name by descending order.""" + NAME_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Status of a container repository""" +enum ContainerRepositoryStatus { + """Delete Scheduled status.""" + DELETE_SCHEDULED + + """Delete Failed status.""" + DELETE_FAILED + + """Delete Ongoing status.""" + DELETE_ONGOING +} + +"""A tag from a container repository""" +type ContainerRepositoryTag { + """Timestamp when the tag was created.""" + createdAt: Time + + """Digest of the tag.""" + digest: String + + """URL of the tag.""" + location: String! + + """Name of the tag.""" + name: String! + + """Path of the tag.""" + path: String! + + """Timestamp when the tag was published.""" + publishedAt: Time + + """Referrers for this tag.""" + referrers: [ContainerRepositoryReferrer!] + + """Revision of the tag.""" + revision: String + + """Short revision of the tag.""" + shortRevision: String + + """Size of the tag.""" + totalSize: BigInt + + """Permissions for the current user on the resource""" + userPermissions: ContainerRepositoryTagPermissions! +} + +"""The connection type for ContainerRepositoryTag.""" +type ContainerRepositoryTagConnection { + """A list of edges.""" + edges: [ContainerRepositoryTagEdge] + + """A list of nodes.""" + nodes: [ContainerRepositoryTag] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ContainerRepositoryTagEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ContainerRepositoryTag +} + +type ContainerRepositoryTagPermissions { + """ + If `true`, the user can perform `destroy_container_image` on this resource + """ + destroyContainerRepositoryTag: Boolean! +} + +"""Values for sorting tags""" +enum ContainerRepositoryTagSort { + """Ordered by name in ascending order.""" + NAME_ASC + + """Ordered by name in descending order.""" + NAME_DESC + + """ + Ordered by published_at in ascending order. Only available for GitLab.com. + """ + PUBLISHED_AT_ASC + + """ + Ordered by published_at in descending order. Only available for GitLab.com. + """ + PUBLISHED_AT_DESC +} + +"""Autogenerated input type of CreateAlertIssue""" +input CreateAlertIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! +} + +"""Autogenerated return type of CreateAlertIssue.""" +type CreateAlertIssuePayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 +} + +"""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 the cluster agent.""" + projectPath: ID! + + """Name of the cluster agent.""" + name: String! +} + +"""Autogenerated return type of CreateClusterAgent.""" +type CreateClusterAgentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Cluster agent created after mutation.""" + clusterAgent: ClusterAgent + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateContainerRegistryProtectionRule""" +input CreateContainerRegistryProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project where a protection rule is located.""" + projectPath: ID! + + """ + Container repository path pattern protected by the protection rule. For + example, `my-project/my-container-*`. Wildcard character `*` allowed. + """ + repositoryPathPattern: String! + + """ + Minimum GitLab access level to allow to push container images to the container + registry. For example, `MAINTAINER`, `OWNER`, or `ADMIN`. + """ + minimumAccessLevelForPush: ContainerRegistryProtectionRuleAccessLevel! + + """ + Minimum GitLab access level to allow to delete container images in the + container registry. For example, `MAINTAINER`, `OWNER`, or `ADMIN`. + """ + minimumAccessLevelForDelete: ContainerRegistryProtectionRuleAccessLevel! +} + +"""Autogenerated return type of CreateContainerRegistryProtectionRule.""" +type CreateContainerRegistryProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Container registry protection rule after mutation. Introduced in GitLab 16.6: **Status**: Experiment. + """ + containerRegistryProtectionRule: ContainerRegistryProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateCustomEmoji""" +input CreateCustomEmojiInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Namespace full path the emoji is associated with.""" + groupPath: ID! + + """Name of the emoji.""" + name: String! + + """Location of the emoji file.""" + url: String! +} + +"""Autogenerated return type of CreateCustomEmoji.""" +type CreateCustomEmojiPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """New custom emoji.""" + customEmoji: CustomEmoji + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateDiffNote""" +input CreateDiffNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """Position of the note on a diff.""" + position: DiffPositionInput! +} + +"""Autogenerated return type of CreateDiffNote.""" +type CreateDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreateDiscussion""" +input CreateDiscussionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean +} + +"""Autogenerated return type of CreateDiscussion.""" +type CreateDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreateImageDiffNote""" +input CreateImageDiffNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """Position of the note on a diff.""" + position: DiffImagePositionInput! +} + +"""Autogenerated return type of CreateImageDiffNote.""" +type CreateImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 +} + +"""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 CreateNote""" +input CreateNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """Global ID of the discussion the note is in reply to.""" + discussionId: DiscussionID + + """ + SHA of the head commit which is used to ensure that the merge request has not been updated since the request was sent. + """ + mergeRequestDiffHeadSha: String +} + +"""Autogenerated return type of CreateNote.""" +type CreateNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreatePackagesProtectionRule""" +input CreatePackagesProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project where a protection rule is located.""" + projectPath: ID! + + """ + Package name protected by the protection rule. For example `@my-scope/my-package-*`. Wildcard character `*` allowed. + """ + packageNamePattern: String! + + """Package type protected by the protection rule. For example `NPM`.""" + packageType: PackagesProtectionRulePackageType! + + """ + Minimum GitLab access required to push packages to the package registry. For + example, `MAINTAINER`, `OWNER`, or `ADMIN`. Introduced in GitLab 16.5: + **Status**: Experiment. + """ + minimumAccessLevelForPush: PackagesProtectionRuleAccessLevel! +} + +"""Autogenerated return type of CreatePackagesProtectionRule.""" +type CreatePackagesProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Packages protection rule after mutation. Introduced in GitLab 16.5: **Status**: Experiment. + """ + packageProtectionRule: PackagesProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") +} + +"""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 +} + +"""The currently authenticated GitLab user.""" +type CurrentUser 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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! +} + +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 { + """Timestamp of when the custom emoji was created.""" + createdAt: Time! + + """Whether the emoji is an external link.""" + external: Boolean! + + """ID of the emoji.""" + id: CustomEmojiID! + + """Name of the emoji.""" + name: String! + + """Link to file of the emoji.""" + url: String! + + """Permissions for the current user on the resource""" + userPermissions: CustomEmojiPermissions! +} + +"""The connection type for CustomEmoji.""" +type CustomEmojiConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CustomEmojiEdge] + + """A list of nodes.""" + nodes: [CustomEmoji] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CustomEmojiEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CustomEmoji +} + +""" +A `CustomEmojiID` is a global ID. It is encoded as a string. + +An example `CustomEmojiID` is: `"gid://gitlab/CustomEmoji/1"`. +""" +scalar CustomEmojiID + +type CustomEmojiPermissions { + """If `true`, the user can perform `create_custom_emoji` on this resource""" + createCustomEmoji: Boolean! + + """If `true`, the user can perform `delete_custom_emoji` on this resource""" + deleteCustomEmoji: Boolean! + + """If `true`, the user can perform `read_custom_emoji` on this resource""" + readCustomEmoji: Boolean! +} + +type CustomerRelationsContact { + """State of the contact.""" + active: Boolean! + + """Timestamp the contact was created.""" + createdAt: Time! + + """Description of or notes for the contact.""" + description: String + + """Email address of the contact.""" + email: String + + """First name of the contact.""" + firstName: String! + + """Internal ID of the contact.""" + id: ID! + + """Last name of the contact.""" + lastName: String! + + """Organization of the contact.""" + organization: CustomerRelationsOrganization + + """Phone number of the contact.""" + phone: String + + """Timestamp the contact was last updated.""" + updatedAt: Time! +} + +"""The connection type for CustomerRelationsContact.""" +type CustomerRelationsContactConnection { + """A list of edges.""" + edges: [CustomerRelationsContactEdge] + + """A list of nodes.""" + nodes: [CustomerRelationsContact] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of CustomerRelationsContactCreate""" +input CustomerRelationsContactCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group for the contact.""" + groupId: GroupID! + + """Organization for the contact.""" + organizationId: CustomerRelationsOrganizationID + + """First name of the contact.""" + firstName: String! + + """Last name of the contact.""" + lastName: String! + + """Phone number of the contact.""" + phone: String + + """Email address of the contact.""" + email: String + + """Description of or notes for the contact.""" + description: String +} + +"""Autogenerated return type of CustomerRelationsContactCreate.""" +type CustomerRelationsContactCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Contact after the mutation.""" + contact: CustomerRelationsContact + + """Errors encountered during 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! +} + +"""Date represented in ISO 8601""" +scalar Date + +"""Autogenerated input type of DeleteAnnotation""" +input DeleteAnnotationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the annotation to delete.""" + id: String! +} + +"""Autogenerated return type of DeleteAnnotation.""" +type DeleteAnnotationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DeleteContainerRegistryProtectionRule""" +input DeleteContainerRegistryProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the container registry protection rule to delete.""" + id: ContainerRegistryProtectionRuleID! +} + +"""Autogenerated return type of DeleteContainerRegistryProtectionRule.""" +type DeleteContainerRegistryProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Container registry protection rule that was deleted successfully. Introduced in GitLab 16.7: **Status**: Experiment. + """ + containerRegistryProtectionRule: ContainerRegistryProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type DeletedNote { + """ID of the discussion for the deleted note.""" + discussionId: DiscussionID + + """ID of the deleted note.""" + id: NoteID! + + """Whether deleted note is the last note in the discussion.""" + lastDiscussionNote: Boolean +} + +"""The response from the AdminSidekiqQueuesDeleteJobs mutation""" +type DeleteJobsResponse { + """ + Whether or not the entire queue was processed in time; if not, retrying the same request is safe. + """ + completed: Boolean + + """Number of matching jobs deleted.""" + deletedJobs: Int + + """Queue size after processing.""" + queueSize: Int +} + +"""Autogenerated input type of DeletePackagesProtectionRule""" +input DeletePackagesProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the package protection rule to delete.""" + id: PackagesProtectionRuleID! +} + +"""Autogenerated return type of DeletePackagesProtectionRule.""" +type DeletePackagesProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Packages protection rule that was deleted successfully. Introduced in GitLab 16.6: **Status**: Experiment. + """ + packageProtectionRule: PackagesProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") +} + +"""Autogenerated input type of DeletePagesDeployment""" +input DeletePagesDeploymentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the Pages Deployment.""" + id: PagesDeploymentID! +} + +"""Autogenerated return type of DeletePagesDeployment.""" +type DeletePagesDeploymentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted Pages Deployment.""" + pagesDeployment: PagesDeployment! +} + +"""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! +} + +""" +A `DeployKeyID` is a global ID. It is encoded as a string. + +An example `DeployKeyID` is: `"gid://gitlab/DeployKey/1"`. +""" +scalar DeployKeyID + +"""The deployment of an environment""" +type Deployment { + """Commit details of the deployment.""" + commit: Commit + + """When the deployment record was created.""" + createdAt: Time + + """When the deployment finished.""" + finishedAt: Time + + """Global ID of the deployment.""" + id: ID + + """Project-level internal ID of the deployment.""" + iid: String + + """Pipeline job of the deployment.""" + job: CiJob + + """Git-Ref that the deployment ran on.""" + ref: String + + """Path to the Git-Ref that the deployment ran on.""" + refPath: String + + """Git-SHA that the deployment ran on.""" + sha: String + + """Status of the deployment.""" + status: DeploymentStatus + + """True or false if the deployment ran on a Git-tag.""" + tag: Boolean + + """ + Git tags that contain this deployment. This field can only be resolved for two deployments in any single request. + """ + tags: [DeploymentTag!] + + """User who executed the deployment.""" + triggerer: UserCore + + """When the deployment record was updated.""" + updatedAt: Time + + """Permissions for the current user on the resource""" + userPermissions: DeploymentPermissions! + + """Web path to the deployment page.""" + webPath: String +} + +"""The connection type for Deployment.""" +type DeploymentConnection { + """A list of edges.""" + edges: [DeploymentEdge] + + """A list of nodes.""" + nodes: [Deployment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DeploymentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Deployment +} + +type DeploymentPermissions { + """If `true`, the user can perform `destroy_deployment` on this resource""" + destroyDeployment: Boolean! + + """If `true`, the user can perform `update_deployment` on this resource""" + updateDeployment: Boolean! +} + +"""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 + + """Web path for this tag.""" + webPath: String +} + +"""All environment deployment tiers.""" +enum DeploymentTier { + """Production.""" + PRODUCTION + + """Staging.""" + STAGING + + """Testing.""" + TESTING + + """Development.""" + DEVELOPMENT + + """Other.""" + OTHER +} + +type DescriptionVersion { + """Content of the given description version.""" + description: String + + """ID of the description version.""" + id: DescriptionVersionID! +} + +""" +A `DescriptionVersionID` is a global ID. It is encoded as a string. + +An example `DescriptionVersionID` is: `"gid://gitlab/DescriptionVersion/1"`. +""" +scalar DescriptionVersionID + +"""A single design""" +type Design implements CurrentUserTodos & DesignFields & NoteableInterface & Todoable { + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Description of the design.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Diff refs for 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: ID! + + """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 + + """Indicates whether the design was imported.""" + imported: Boolean! + + """Import source of the design.""" + importedFrom: ImportSource! + + """Issue the design belongs to.""" + issue: Issue! + + """All notes on this noteable.""" + notes( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Total count of user-created notes for 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: ID! + + """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 the version.""" + id: DesignManagementDesignAtVersionID! + ): DesignAtVersion + + """All designs for the design collection.""" + designs( + """ + Filters designs to only those that existed at the version. If argument is + omitted or nil then all designs will reflect the latest version + """ + atVersion: DesignManagementVersionID + + """Filters designs by their filename.""" + filenames: [String!] + + """Filters designs by their ID.""" + ids: [DesignManagementDesignID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignConnection! + + """Issue associated with the design collection.""" + issue: Issue! + + """Project associated with the design collection.""" + project: Project! + + """A specific version.""" + version( + """Global ID of the version.""" + id: DesignManagementVersionID + + """SHA256 of a specific version.""" + sha: String + ): DesignVersion + + """All versions related to all designs, ordered newest first.""" + versions( + """SHA256 of the most recent acceptable version.""" + earlierOrEqualToSha: String + + """Global ID of the most recent acceptable version.""" + earlierOrEqualToId: DesignManagementVersionID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignVersionConnection! +} + +"""Copy state of a DesignCollection""" +enum DesignCollectionCopyState { + """The DesignCollection has no copy in progress""" + READY + + """The DesignCollection is being copied""" + IN_PROGRESS + + """The DesignCollection encountered an error during a copy""" + ERROR +} + +"""The connection type for Design.""" +type DesignConnection { + """A list of edges.""" + edges: [DesignEdge] + + """A list of nodes.""" + nodes: [Design] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DesignEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Design +} + +interface DesignFields { + """Diff refs for 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: ID! + + """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 the version.""" + id: DesignManagementDesignAtVersionID! + ): DesignAtVersion + + """Find a version.""" + version( + """Global ID of the version.""" + id: DesignManagementVersionID! + ): DesignVersion +} + +"""Autogenerated input type of DesignManagementDelete""" +input DesignManagementDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project where the issue is to upload designs for.""" + projectPath: ID! + + """IID of the issue to modify designs for.""" + iid: ID! + + """Filenames of the designs to delete.""" + filenames: [String!]! +} + +"""Autogenerated return type of DesignManagementDelete.""" +type DesignManagementDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 DesignManagementUpdate""" +input DesignManagementUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the design to update.""" + id: DesignManagementDesignID! + + """Description of the design.""" + description: String +} + +"""Autogenerated return type of DesignManagementUpdate.""" +type DesignManagementUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Updated design.""" + design: Design! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DesignManagementUpload""" +input DesignManagementUploadInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project where the issue is to upload designs for.""" + projectPath: ID! + + """IID of the issue to modify designs for.""" + iid: ID! + + """Files to upload.""" + files: [Upload!]! +} + +"""Autogenerated return type of DesignManagementUpload.""" +type DesignManagementUploadPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Designs that were uploaded by the mutation.""" + designs: [Design!]! + + """Errors encountered during 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 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 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 DestroyPackages""" +input DestroyPackagesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global IDs of the Packages. Max 20""" + ids: [PackagesPackageID!]! +} + +"""Autogenerated return type of DestroyPackages.""" +type DestroyPackagesPayload { + """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 +} + +"""Details of the import status of a project.""" +type DetailedImportStatus { + """ID of the import state.""" + id: ProjectImportStateID + + """Last error of the import.""" + lastError: String + + """Time of the last successful update.""" + lastSuccessfulUpdateAt: Time + + """Time of the last update.""" + lastUpdateAt: Time + + """Time of the start of the last update.""" + lastUpdateStartedAt: Time + + """Current status of the import.""" + status: String + + """Import url.""" + url: String +} + +""" +Detailed representation of whether a GitLab merge request can be merged. +""" +enum DetailedMergeStatus { + """Merge status has not been checked.""" + UNCHECKED + + """Currently checking for mergeability.""" + CHECKING + + """Branch can be merged.""" + MERGEABLE + + """Source branch exists and contains commits.""" + COMMITS_STATUS + + """Pipeline must succeed before merging.""" + CI_MUST_PASS + + """Pipeline is still running.""" + CI_STILL_RUNNING + + """Discussions must be resolved before merging.""" + DISCUSSIONS_NOT_RESOLVED + + """Merge request must not be draft before merging.""" + DRAFT_STATUS + + """Merge request must be open before merging.""" + NOT_OPEN + + """Merge request must be approved before merging.""" + NOT_APPROVED + + """Merge request dependencies must be merged.""" + BLOCKED_STATUS + + """Status checks must pass.""" + EXTERNAL_STATUS_CHECKS + + """Merge request diff is being created.""" + PREPARING + + """Either the title or description must reference a Jira issue.""" + JIRA_ASSOCIATION + + """There are conflicts between the source and target branches.""" + CONFLICT + + """Merge request needs to be rebased.""" + NEED_REBASE + + """Merge request approvals currently syncing.""" + APPROVALS_SYNCING +} + +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. Deprecated in GitLab 16.4: The `group` attribute is deprecated. Use `name` instead. + """ + group: String @deprecated(reason: "The `group` attribute is deprecated. Use `name` instead. Deprecated in GitLab 16.4.") + + """Indicates if the status has further details.""" + hasDetails: Boolean + + """ + Icon of the status. Deprecated in GitLab 16.4: The `icon` attribute is + deprecated. Use `name` to identify the status to display instead. + """ + icon: String @deprecated(reason: "The `icon` attribute is deprecated. Use `name` to identify the status to display instead. Deprecated in GitLab 16.4.") + + """ID for a detailed status.""" + id: String! + + """Human-readable label of the status (e.g. success).""" + label: String + + """Machine-readable status name (e.g. SUCCESS).""" + name: String + + """ + Text of the status. Deprecated in GitLab 16.4: The `text` attribute is being deprecated. Use `label` instead. + """ + text: String @deprecated(reason: "The `text` attribute is being deprecated. Use `label` instead. Deprecated in GitLab 16.4.") + + """Tooltip associated with the status.""" + tooltip: String +} + +type Diff { + """Old file mode of the file.""" + aMode: String + + """New file mode of the file.""" + bMode: String + + """Indicates if the file has been removed. """ + deletedFile: String + + """Diff representation of the changes made to the file.""" + diff: String + + """Indicates if the file has just been added. """ + newFile: String + + """New path of the file.""" + newPath: String + + """Old path of the file.""" + oldPath: String + + """Indicates if the file has been renamed.""" + renamedFile: String +} + +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 + + """Unknown file type.""" + file +} + +type DiffRefs { + """Merge base of the branch the comment was made on.""" + baseSha: String + + """SHA of the HEAD at the time the comment was made.""" + headSha: String! + + """SHA of the branch being compared against.""" + startSha: String! +} + +"""Changes to a single file""" +type DiffStats { + """Number of lines added to this file.""" + additions: Int! + + """Number of lines deleted from this file.""" + deletions: Int! + + """File path, relative to repository root.""" + path: String! +} + +"""Aggregated summary of changes""" +type DiffStatsSummary { + """Number of lines added.""" + additions: Int! + + """Number of lines changed.""" + changes: Int! + + """Number of lines deleted.""" + deletions: Int! + + """Number of files changed.""" + fileCount: Int! +} + +type Discussion implements ResolvableInterface { + """Timestamp of the discussion's creation.""" + createdAt: Time! + + """ID of this discussion.""" + id: 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!]! +} + +""" +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!]! +} + +type EgressNode { + """Artifacts egress for that project in that period of time.""" + artifactsEgress: BigInt! + + """First day of the node range. There is one node per month.""" + date: String! + + """Packages egress for that project in that period of time.""" + packagesEgress: BigInt! + + """Registry egress for that project in that period of time.""" + registryEgress: BigInt! + + """Repository egress for that project in that period of time.""" + repositoryEgress: BigInt! + + """Total egress for that project in that period of time.""" + totalEgress: BigInt! +} + +"""The connection type for EgressNode.""" +type EgressNodeConnection { + """A list of edges.""" + edges: [EgressNodeEdge] + + """A list of nodes.""" + nodes: [EgressNode] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EgressNodeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: EgressNode +} + +type Email { + """Timestamp the email was confirmed.""" + confirmedAt: Time + + """Timestamp the email was created.""" + createdAt: Time! + + """Email address.""" + email: String! + + """Internal ID of the email.""" + id: ID! + + """Timestamp the email was last updated.""" + updatedAt: Time! +} + +"""The connection type for Email.""" +type EmailConnection { + """A list of edges.""" + edges: [EmailEdge] + + """A list of nodes.""" + nodes: [Email] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EmailEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Email +} + +""" +A `EmailID` is a global ID. It is encoded as a string. + +An example `EmailID` is: `"gid://gitlab/Email/1"`. +""" +scalar EmailID + +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 + + """Cluster agent of the environment.""" + clusterAgent: ClusterAgent + + """When the environment was created.""" + createdAt: Time + + """Deployment freeze periods of the environment.""" + deployFreezes: [CiFreezePeriod!] + + """ + Deployments of the environment. This field can only be resolved for one environment in any single request. + """ + deployments( + """Statuses of the deployments.""" + statuses: [DeploymentStatus!] + + """Order by a specified field.""" + orderBy: DeploymentsOrderByInput + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentConnection + + """ + Number of deployments in the environment for display. Returns the precise + number up to 999, and "999+" for counts exceeding this limit. + """ + deploymentsDisplayCount: String + + """Folder name of the environment.""" + environmentType: String + + """External URL of the environment.""" + externalUrl: String + + """Flux resource path of the environment.""" + fluxResourcePath: String + + """ID of the environment.""" + id: ID! + + """Kubernetes namespace of the environment.""" + kubernetesNamespace: String + + """Last deployment of the environment.""" + lastDeployment( + """Status of the Deployment.""" + status: DeploymentStatus! + ): Deployment + + """ + Most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned. + """ + latestOpenedMostSevereAlert: AlertManagementAlert + + """Human-readable name of the environment.""" + name: String! + + """Path to the environment.""" + path: String! + + """Slug of the environment.""" + slug: String + + """State of the environment, for example: available/stopped.""" + state: String! + + """Deployment tier of the environment.""" + tier: DeploymentTier + + """When the environment was updated.""" + updatedAt: Time + + """ + Permissions for the current user on the resource. This field can only be + resolved for one environment in any single request. + """ + userPermissions: EnvironmentPermissions! +} + +"""The connection type for Environment.""" +type EnvironmentConnection { + """A list of edges.""" + edges: [EnvironmentEdge] + + """A list of nodes.""" + nodes: [Environment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of EnvironmentCreate""" +input EnvironmentCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! + + """Name of the environment.""" + name: String! + + """External URL of the environment.""" + externalUrl: String + + """Tier of the environment.""" + tier: DeploymentTier + + """Cluster agent of the environment.""" + clusterAgentId: ClustersAgentID + + """Kubernetes namespace of the environment.""" + kubernetesNamespace: String + + """Flux resource path of the environment.""" + fluxResourcePath: String +} + +"""Autogenerated return type of EnvironmentCreate.""" +type EnvironmentCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Created environment.""" + environment: Environment + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of EnvironmentDelete""" +input EnvironmentDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to Delete.""" + id: EnvironmentID! +} + +"""Autogenerated return type of EnvironmentDelete.""" +type EnvironmentDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type EnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Environment +} + +""" +A `EnvironmentID` is a global ID. It is encoded as a string. + +An example `EnvironmentID` is: `"gid://gitlab/Environment/1"`. +""" +scalar EnvironmentID + +type EnvironmentPermissions { + """If `true`, the user can perform `destroy_environment` on this resource""" + destroyEnvironment: Boolean! + + """If `true`, the user can perform `stop_environment` on this resource""" + stopEnvironment: Boolean! + + """If `true`, the user can perform `update_environment` on this resource""" + updateEnvironment: Boolean! +} + +"""Autogenerated input type of EnvironmentsCanaryIngressUpdate""" +input EnvironmentsCanaryIngressUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to update.""" + id: EnvironmentID! + + """Weight of the Canary Ingress.""" + weight: Int! +} + +"""Autogenerated return type of EnvironmentsCanaryIngressUpdate.""" +type EnvironmentsCanaryIngressUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of EnvironmentStop""" +input EnvironmentStopInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to stop.""" + id: EnvironmentID! + + """Force environment to stop without executing on_stop actions.""" + force: Boolean +} + +"""Autogenerated return type of EnvironmentStop.""" +type EnvironmentStopPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Environment after attempt to stop.""" + environment: Environment + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of EnvironmentUpdate""" +input EnvironmentUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to update.""" + id: EnvironmentID! + + """External URL of the environment.""" + externalUrl: String + + """Tier of the environment.""" + tier: DeploymentTier + + """Cluster agent of the environment.""" + clusterAgentId: ClustersAgentID + + """Kubernetes namespace of the environment.""" + kubernetesNamespace: String + + """Flux resource path of the environment.""" + fluxResourcePath: String +} + +"""Autogenerated return type of EnvironmentUpdate.""" +type EnvironmentUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Environment after attempt to update.""" + environment: Environment + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +""" +Values for status of the Web IDE Extension Marketplace opt-in for the user +""" +enum ExtensionsMarketplaceOptInStatus { + """Web IDE Extension Marketplace opt-in status: UNSET.""" + UNSET + + """Web IDE Extension Marketplace opt-in status: ENABLED.""" + ENABLED + + """Web IDE Extension Marketplace opt-in status: DISABLED.""" + DISABLED +} + +type FileUpload { + """Global ID of the upload.""" + id: UploadID! + + """Path of the upload.""" + path: String! + + """Size of the upload in bytes.""" + size: Int! +} + +"""Details of the fork project compared to its upstream project.""" +type ForkDetails { + """Number of commits ahead of upstream.""" + ahead: Int + + """Number of commits behind upstream.""" + behind: Int + + """Indicates if the fork conflicts with its upstream project.""" + hasConflicts: Boolean + + """Indicates if there is a synchronization in progress.""" + isSyncing: Boolean +} + +""" +A `GitlabErrorTrackingDetailedErrorID` is a global ID. It is encoded as a string. + +An example `GitlabErrorTrackingDetailedErrorID` is: `"gid://gitlab/Gitlab::ErrorTracking::DetailedError/1"`. +""" +scalar GitlabErrorTrackingDetailedErrorID + +""" +A global identifier. + +A global identifier represents an object uniquely across the application. +An example of a global identifier is `"gid://gitlab/User/1"`. + +`gid://gitlab` stands for the root name. +`User` is the name of the ActiveRecord class of the record. +`1` is the record id as per the id in the db table. + +Global identifiers are encoded as strings. + +""" +scalar GlobalID + +"""GPG signature for a signed commit""" +type GpgSignature implements CommitSignature { + """SHA of the associated commit.""" + commitSha: String + + """ID of the GPG key.""" + gpgKeyPrimaryKeyid: String + + """User email associated with the GPG key.""" + gpgKeyUserEmail: String + + """User name associated with the GPG key.""" + gpgKeyUserName: String + + """Project of the associated commit.""" + project: Project + + """User associated with the key.""" + user: UserCore + + """Indicates verification status of the associated key or certificate.""" + verificationStatus: VerificationStatus +} + +type GrafanaIntegration { + """Timestamp of the issue's creation.""" + createdAt: Time! + + """Indicates whether Grafana integration is enabled.""" + enabled: Boolean! + + """URL for the Grafana host for the Grafana integration.""" + grafanaUrl: String! + + """Internal ID of the Grafana integration.""" + id: ID! + + """Timestamp of the issue's last activity.""" + updatedAt: Time! +} + +type Group { + """ + Achievements for the namespace. Returns `null` if the `achievements` feature + flag is disabled. Introduced in GitLab 15.8: **Status**: Experiment. + """ + achievements( + """Filter achievements by IDs.""" + ids: [AchievementsAchievementID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.") + + """ + Path for the namespace's achievements. Returns `null` if the namespace is not + a group, or the `achievements` feature flag is disabled. Introduced in GitLab + 17.0: **Status**: Experiment. + """ + achievementsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """ + Indicates whether Auto DevOps is enabled for all projects within this group. + """ + autoDevopsEnabled: Boolean + + """Search users for autocompletion""" + autocompleteUsers( + """Query to search users by name, username, or public email.""" + search: String + ): [AutocompletedUser!] + + """Avatar URL of the group.""" + avatarUrl: String + + """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( + """Sort order of results.""" + sort: CiVariableSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiGroupVariableConnection + + """Counts of contacts by state for the group.""" + contactStateCounts( + """Search term to find contacts with.""" + search: String + + """State of the contacts to search for.""" + state: CustomerRelationsContactState + ): ContactStateCounts + + """Find contacts of this group.""" + contacts( + """Criteria to sort contacts by.""" + sort: ContactSort = LAST_NAME_ASC + + """Search term to find contacts with.""" + search: String + + """State of the contacts to search for.""" + state: CustomerRelationsContactState + + """Filter contacts by IDs.""" + ids: [CustomerRelationsContactID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsContactConnection + + """Container repositories of the group.""" + containerRepositories( + """Filter the container repositories by their name.""" + name: String + + """Sort container repositories by the criteria.""" + sort: ContainerRepositorySort = created_desc + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryConnection + + """Number of container repositories in the group.""" + containerRepositoriesCount: Int! + + """Timestamp of the group creation.""" + createdAt: Time + + """ + Indicates if the cross_project_pipeline feature is available for the namespace. + """ + crossProjectPipelineAvailable: Boolean! + + """Custom emoji in this namespace.""" + customEmoji( + """Includes custom emoji from parent groups.""" + includeAncestorGroups: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomEmojiConnection + + """ + Data transfer data point for a specific period. This is mocked data under a development feature flag. + """ + dataTransfer( + """ + Retain egress data for one year. Data for the current month will increase dynamically as egress occurs. + """ + from: Date + + """End date for the data.""" + to: Date + ): GroupDataTransfer + + """Number of dependency proxy blobs cached in the group.""" + dependencyProxyBlobCount: Int! + + """Dependency Proxy blobs.""" + dependencyProxyBlobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DependencyProxyBlobConnection + + """Number of dependency proxy images cached in the group.""" + dependencyProxyImageCount: Int! + + """Prefix for pulling images when using the dependency proxy.""" + dependencyProxyImagePrefix: String! + + """Dependency proxy TTL policy for the group.""" + dependencyProxyImageTtlPolicy: DependencyProxyImageTtlGroupPolicy + + """Dependency Proxy manifests.""" + dependencyProxyManifests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DependencyProxyManifestConnection + + """Dependency Proxy settings for the group.""" + dependencyProxySetting: DependencyProxySetting + + """Total size of the dependency proxy cached images.""" + dependencyProxyTotalSize: String! + + """ + Total size of the dependency proxy cached images in bytes, encoded as a string. + """ + dependencyProxyTotalSizeBytes: BigInt! + + """ + Total size of the dependency proxy cached images in bytes. Deprecated in GitLab 16.1: Use `dependencyProxyTotalSizeBytes`. + """ + dependencyProxyTotalSizeInBytes: Int! @deprecated(reason: "Use `dependencyProxyTotalSizeBytes`. Deprecated in GitLab 16.1.") + + """List of descendant groups of this group.""" + descendantGroups( + """List of descendant groups of the parent group.""" + includeParentDescendants: Boolean = true + + """Limit result to groups owned by authenticated user.""" + owned: Boolean + + """Search query for group name or group full path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """Count of direct descendant groups of this group.""" + descendantGroupsCount: Int! + + """Description of the namespace.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Indicates if a group has email notifications disabled.""" + emailsDisabled: Boolean + + """Indicates if a group has email notifications enabled.""" + emailsEnabled: Boolean + + """Environment scopes of the group.""" + environmentScopes( + """Name of the environment scope.""" + name: String + + """Search query for environment scope name.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiGroupEnvironmentScopeConnection + + """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!] + + """Filter members by enterprise users.""" + enterprise: 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 + ): GroupMemberConnection + + """Count of direct members of this group.""" + groupMembersCount: Int! + + """ID of the namespace.""" + id: ID! + + """Issues for projects in this group.""" + issues( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author of the issue.""" + authorUsername: String + + """Issues closed after the date.""" + closedAfter: Time + + """Issues closed before the date.""" + closedBefore: Time + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Issues created after the date.""" + createdAfter: Time + + """Issues created before the date.""" + createdBefore: Time + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to the issue.""" + labelName: [String] + + """Milestone applied to the issue.""" + milestoneTitle: [String] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Issues updated after the date.""" + updatedAfter: Time + + """Issues updated before the date.""" + updatedBefore: Time + + """Sort issues by the criteria.""" + sort: IssueSort = created_desc + + """Current state of the issue.""" + state: IssuableState + + """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 + + """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 + + """Specify which fields to search in.""" + searchIn: [LabelSearchFieldList!]! = [TITLE, DESCRIPTION] + + """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 math rendering limits are locked for all descendant groups. + """ + lockMathRenderingLimitsEnabled: Boolean + + """Indicates if math rendering limits are used for this group.""" + mathRenderingLimitsEnabled: Boolean + + """The maximum access level of the current user in the group.""" + maxAccessLevel: AccessLevel! + + """Indicates if a group is disabled from getting mentioned.""" + mentionsDisabled: Boolean + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the 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 + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """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 the criteria.""" + sort: MilestoneSort = DUE_DATE_ASC + + """Include milestones from all parent groups.""" + includeAncestors: Boolean + + """Include milestones from all subgroups and subprojects.""" + includeDescendants: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MilestoneConnection + + """Name of the namespace.""" + name: String! + + """ + Path for editing group at the organization level. Introduced in GitLab 17.1: **Status**: Experiment. + """ + organizationEditPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + + """Counts of organizations by status for the group.""" + organizationStateCounts( + """Search term to find organizations with.""" + search: String + + """State of the organizations to search for.""" + state: CustomerRelationsOrganizationState + ): OrganizationStateCounts + + """Find organizations of this group.""" + organizations( + """Criteria to sort organizations by.""" + sort: OrganizationSort = NAME_ASC + + """Search term used to find organizations with.""" + search: String + + """State of the organization to search for.""" + state: CustomerRelationsOrganizationState + + """Filter organizations by IDs.""" + ids: [CustomerRelationsOrganizationID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsOrganizationConnection + + """Package settings for the namespace.""" + packageSettings: PackageSettings + + """ + Packages of the group. This field can only be resolved for one group in any single request. + """ + packages( + """Sort packages by the criteria.""" + sort: PackageGroupSort = CREATED_DESC + + """Search a package by name.""" + packageName: String = null + + """Filter a package by type.""" + packageType: PackageTypeEnum = null + + """ + Filter a package by version. If used in combination with `include_versionless`, + then no versionless packages are returned. + """ + packageVersion: String = null + + """Filter a package by status.""" + status: PackageStatus = null + + """Include versionless packages.""" + includeVersionless: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageConnection + + """List of the namespaces's Pages Deployments.""" + pagesDeployments( + """Filter by active or inactive state.""" + active: Boolean + + """Sort results.""" + sort: Sort + + """ + Filter deployments that are + versioned or unversioned. + """ + versioned: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PagesDeploymentConnection + + """Parent group.""" + parent: Group + + """Path of the namespace.""" + path: String! + + """Permission level required to create projects in the group.""" + projectCreationLevel: String + + """Projects within this namespace.""" + projects( + """Include also subgroup projects.""" + includeSubgroups: Boolean = false + + """Include also archived projects.""" + includeArchived: Boolean = true + + """Include projects that are not aimed for deletion.""" + notAimedForDeletion: Boolean = false + + """Search project with most similar names or paths.""" + search: String = null + + """Sort projects by the criteria.""" + sort: NamespaceProjectSort = null + + """Filter projects by IDs.""" + ids: [ID!] = null + + """Return only projects with issues enabled.""" + withIssuesEnabled: Boolean + + """Return only projects with merge requests enabled.""" + withMergeRequestsEnabled: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """Count of direct projects in this group.""" + projectsCount: Int! + + """List of recently visited boards of the group. Maximum size is 4.""" + recentIssueBoards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """Releases belonging to projects in the group.""" + releases( + """Sort group releases by given criteria.""" + sort: GroupReleaseSort = RELEASED_AT_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseConnection + + """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 + + """Filter runners by creator ID.""" + creatorId: UserID + + """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 + + """ + 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 + + """Permission level required to create subgroups within the group.""" + subgroupCreationLevel: String + + """ + Timelog categories for the namespace. Introduced in GitLab 15.3: **Status**: Experiment. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.") + + """ + Time logged on issues and merge requests in the group and its subgroups. + """ + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection! + + """Time before two-factor authentication is enforced.""" + twoFactorGracePeriod: Int + + """Timestamp of when the group was last updated.""" + updatedAt: Time + + """Permissions for the current user on the resource""" + userPermissions: GroupPermissions! + + """Visibility of the namespace.""" + visibility: String + + """Web URL of the group.""" + webUrl: String! + + """ + Find a work item by IID directly associated with the group. Returns `null` if + the `namespace_level_work_items` feature flag is disabled. Introduced in + GitLab 16.4: **Status**: Experiment. + """ + workItem( + """IID of the work item.""" + iid: String! + ): WorkItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Counts of work items by state for the namespace. Returns `null` if the + `namespace_level_work_items` feature flag is disabled. Introduced in GitLab + 16.7: **Status**: Experiment. + """ + workItemStateCounts( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Current state of the work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """IID of the work item. For example, "1".""" + iid: String + + """Sort work items by criteria.""" + sort: WorkItemSort = created_desc + + """Include work items from ancestor groups.""" + includeAncestors: Boolean = false + + """Include work items from descendant groups and projects.""" + includeDescendants: Boolean = false + ): WorkItemStateCountsType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """Work item types available to the group.""" + workItemTypes( + """Filter work item types by the given name.""" + name: 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 + ): WorkItemTypeConnection + + """ + Work items that belong to the namespace. Introduced in GitLab 16.3: **Status**: Experiment. + """ + workItems( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Current state of the work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """IID of the work item. For example, "1".""" + iid: String + + """Sort work items by criteria.""" + sort: WorkItemSort = created_desc + + """Include work items from ancestor groups.""" + includeAncestors: Boolean = false + + """Include work items from descendant groups and projects.""" + includeDescendants: 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 + ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") +} + +"""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! +} + +type GroupDataTransfer { + """Data nodes.""" + egressNodes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EgressNodeConnection +} + +"""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! +} + +"""Autogenerated input type of GroupMemberBulkUpdate""" +input GroupMemberBulkUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global IDs of the members.""" + userIds: [UserID!]! + + """Access level to update the members to.""" + accessLevel: MemberAccessLevel! + + """Date and time the membership expires.""" + expiresAt: Time + + """Global ID of the group.""" + groupId: GroupID! +} + +"""Autogenerated return type of GroupMemberBulkUpdate.""" +type GroupMemberBulkUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Group members after mutation.""" + groupMembers: [GroupMember!] +} + +"""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 + + """Groups where the user can import projects to.""" + IMPORT_PROJECTS +} + +type GroupPermissions { + """If `true`, the user can perform `create_custom_emoji` on this resource""" + createCustomEmoji: Boolean! + + """If `true`, the user can perform `create_projects` on this resource""" + createProjects: Boolean! + + """If `true`, the user can perform `read_group` on this resource""" + readGroup: Boolean! + + """If `true`, the user can perform `remove_group` on this resource""" + removeGroup: Boolean! + + """If `true`, the user can perform `view_edit_page` on this resource""" + viewEditPage: Boolean! +} + +"""Values for sorting releases belonging to a group""" +enum GroupReleaseSort { + """Released at by descending order.""" + RELEASED_AT_DESC + + """Released at by ascending order.""" + RELEASED_AT_ASC +} + +type Groups { + """Commit responsible for specified group.""" + commit: Commit! + + """HTML data derived from commit needed to present blame.""" + commitData: CommitData + + """Starting line number for the commit group.""" + lineno: Int! + + """Array of lines added for the commit group.""" + lines: [String!]! + + """Number of contiguous lines which the blame spans for the commit group.""" + span: Int! +} + +"""Autogenerated input type of GroupUpdate""" +input GroupUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the group that will be updated.""" + fullPath: ID! + + """ + Indicates if math rendering limits are locked for all descendant groups. + """ + lockMathRenderingLimitsEnabled: Boolean + + """Indicates if math rendering limits are used for this group.""" + mathRenderingLimitsEnabled: Boolean + + """Name of the namespace.""" + name: String + + """Path of the namespace.""" + path: String + + """Shared runners availability for the namespace and its descendants.""" + sharedRunnersSetting: SharedRunnersSetting + + """Visibility of the namespace.""" + visibility: VisibilityLevelsEnum +} + +"""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 +} + +"""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! +} + +"""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 +} + +"""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 +} + +"""IDE settings and feature flags.""" +type Ide { + """Indicates whether AI assisted code suggestions are enabled.""" + codeSuggestionsEnabled: Boolean! +} + +"""Import source""" +enum ImportSource { + """Not imported""" + NONE + + """Imported from Gitlab Migration.""" + GITLAB_MIGRATION + + """Imported from Gitlab Project.""" + GITLAB_PROJECT + + """Imported from Gitlab Group.""" + GITLAB_GROUP + + """Imported from Github.""" + GITHUB + + """Imported from Bitbucket.""" + BITBUCKET + + """Imported from Bitbucket Server.""" + BITBUCKET_SERVER + + """Imported from Fogbugz.""" + FOGBUGZ + + """Imported from Gitea.""" + GITEA + + """Imported from Git.""" + GIT + + """Imported from Manifest.""" + MANIFEST + + """Imported from Custom Template.""" + CUSTOM_TEMPLATE +} + +""" +A `IncidentManagementTimelineEventID` is a global ID. It is encoded as a string. + +An example `IncidentManagementTimelineEventID` is: `"gid://gitlab/IncidentManagement::TimelineEvent/1"`. +""" +scalar IncidentManagementTimelineEventID + +""" +A `IncidentManagementTimelineEventTagID` is a global ID. It is encoded as a string. + +An example `IncidentManagementTimelineEventTagID` is: `"gid://gitlab/IncidentManagement::TimelineEventTag/1"`. +""" +scalar IncidentManagementTimelineEventTagID + +""" +CI/CD variables a project inherites from its parent group and ancestors. +""" +type InheritedCiVariable { + """Description of the variable.""" + description: String + + """Scope defining the environments that can use the variable.""" + environmentScope: String + + """ + Indicates the path to the CI/CD settings of the group the variable belongs to. + """ + groupCiCdSettingsPath: String + + """Indicates group the variable belongs to.""" + groupName: String + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for InheritedCiVariable.""" +type InheritedCiVariableConnection { + """A list of edges.""" + edges: [InheritedCiVariableEdge] + + """A list of nodes.""" + nodes: [InheritedCiVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type InheritedCiVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: InheritedCiVariable +} + +""" +An integration to override the level settings of instance specific integrations. +""" +type IntegrationExclusion { + """Project that has been excluded from the instance specific integration.""" + project: Project +} + +"""The connection type for IntegrationExclusion.""" +type IntegrationExclusionConnection { + """A list of edges.""" + edges: [IntegrationExclusionEdge] + + """A list of nodes.""" + nodes: [IntegrationExclusion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of IntegrationExclusionCreate""" +input IntegrationExclusionCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Type of integration to exclude.""" + integrationName: IntegrationType! + + """IDs of projects to exclude up to a maximum of 100.""" + projectIds: [ProjectID!]! +} + +"""Autogenerated return type of IntegrationExclusionCreate.""" +type IntegrationExclusionCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Integration exclusions created by the mutation.""" + exclusions: [IntegrationExclusion!] +} + +"""Autogenerated input type of IntegrationExclusionDelete""" +input IntegrationExclusionDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Type of integration.""" + integrationName: IntegrationType! + + """IDs of excluded projects.""" + projectIds: [ProjectID!]! +} + +"""Autogenerated return type of IntegrationExclusionDelete.""" +type IntegrationExclusionDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project no longer excluded due to the mutation.""" + exclusions: [IntegrationExclusion!] +} + +"""An edge in a connection.""" +type IntegrationExclusionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IntegrationExclusion +} + +""" +A `IntegrationsPrometheusID` is a global ID. It is encoded as a string. + +An example `IntegrationsPrometheusID` is: `"gid://gitlab/Integrations::Prometheus/1"`. +The older format `"gid://gitlab/PrometheusService/1"` was deprecated in 14.1. +""" +scalar IntegrationsPrometheusID + +"""Integration Names""" +enum IntegrationType { + """Beyond Identity.""" + BEYOND_IDENTITY +} + +"""An ISO 8601-encoded date""" +scalar ISO8601Date + +"""An ISO 8601-encoded datetime""" +scalar ISO8601DateTime + +"""Represents an issuable.""" +union Issuable = 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 + +"""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 +} + +"""Values for subscribing and unsubscribing from issuables""" +enum IssuableSubscriptionEvent { + """Subscribe to an issuable.""" + SUBSCRIBE + + """Unsubscribe from an issuable.""" + UNSUBSCRIBE +} + +type Issue implements CurrentUserTodos & NoteableInterface & Todoable { + """ + Alert associated to this issue. Deprecated in GitLab 15.6: Use `alert_management_alerts`. + """ + alertManagementAlert: AlertManagementAlert @deprecated(reason: "Use `alert_management_alerts`. Deprecated in GitLab 15.6.") + + """Alert Management alerts associated to this issue.""" + alertManagementAlerts( + """IID of the alert. For example, "1".""" + iid: String + + """Alerts with the specified statues. For example, `[TRIGGERED]`.""" + statuses: [AlertManagementStatus!] + + """Sort alerts by the criteria.""" + sort: AlertManagementAlertSort + + """Filter query for given domain.""" + domain: AlertManagementDomainFilter! = operations + + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AlertManagementAlertConnection + + """Assignees of the issue.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """User that created the issue.""" + author: UserCore! + + """Issue this issue was closed as a duplicate of.""" + closedAsDuplicateOf: Issue + + """Timestamp of when the issue was closed.""" + closedAt: Time + + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """Indicates the issue is confidential.""" + confidential: Boolean! + + """User specific email address for the issue.""" + createNoteEmail: String + + """Timestamp of when the issue was created.""" + createdAt: Time! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Customer relations contacts of the issue.""" + customerRelationsContacts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsContactConnection + + """Description of the issue.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Collection of design images associated with 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 the parent project or group has email notifications disabled: + `true` if email notifications are disabled. Deprecated in GitLab 16.3: Use + `emails_enabled`. + """ + emailsDisabled: Boolean! @deprecated(reason: "Use `emails_enabled`. Deprecated in GitLab 16.3.") + + """ + Indicates if the parent project or group has email notifications disabled: `false` if email notifications are disabled. + """ + emailsEnabled: Boolean! + + """Escalation status of the issue.""" + escalationStatus: IssueEscalationStatus + + """ + Email address of non-GitLab user reporting the issue. For guests, the email address is obfuscated. + """ + externalAuthor: String + + """Indicates the issue is hidden because the author has been banned.""" + hidden: Boolean + + """Human-readable time estimate of the issue.""" + humanTimeEstimate: String + + """Human-readable total time reported as spent on the issue.""" + humanTotalTimeSpent: String + + """ID of the issue.""" + id: ID! + + """Internal ID of the issue.""" + iid: String! + + """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! + + """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( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """List of participants in the issue.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ID of the issue project.""" + projectId: Int + + """ + Internal reference of the issue. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """ + Merge requests related to the issue. This field can only be resolved for one issue in any single request. + """ + relatedMergeRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Relative position of the issue (used for positioning in epic tree and issue boards). + """ + relativePosition: Int + + """Severity level of the incident.""" + severity: IssuableSeverity + + """State of the issue.""" + state: IssueState! + + """Indicates the currently logged in user is subscribed to the issue.""" + subscribed: Boolean! + + """Task completion status of the issue.""" + taskCompletionStatus: TaskCompletionStatus! + + """Time estimate of the issue.""" + timeEstimate: Int! + + """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! + + """GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Total time (in seconds) reported as spent on the issue.""" + totalTimeSpent: Int! + + """Type of the issue.""" + type: IssueType + + """Timestamp of when the issue was last updated.""" + updatedAt: Time! + + """User that last updated the issue.""" + updatedBy: UserCore + + """Number of upvotes the issue has received.""" + upvotes: Int! + + """Number of user discussions in the issue.""" + userDiscussionsCount: Int! + + """Number of user notes of the issue.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: IssuePermissions! + + """Web path of the issue.""" + webPath: String! + + """Web URL of the issue.""" + webUrl: String! +} + +"""The connection type for Issue.""" +type IssueConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [IssueEdge] + + """A list of nodes.""" + nodes: [Issue] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type IssueEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Issue +} + +"""Issue escalation status values""" +enum IssueEscalationStatus { + """Investigation has not started.""" + TRIGGERED + + """Someone is actively investigating the problem.""" + ACKNOWLEDGED + + """The problem has been addressed.""" + RESOLVED + + """No action will be taken.""" + IGNORED +} + +""" +A `IssueID` is a global ID. It is encoded as a string. + +An example `IssueID` is: `"gid://gitlab/Issue/1"`. +""" +scalar IssueID + +"""Autogenerated input type of IssueLinkAlerts""" +input IssueLinkAlertsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Alerts references to be linked to the incident.""" + alertReferences: [String!]! +} + +"""Autogenerated return type of IssueLinkAlerts.""" +type IssueLinkAlertsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueMove""" +input IssueMoveInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Project to move the issue to.""" + targetProjectPath: ID! +} + +"""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 +} + +"""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 +} + +""" +A `IssueParentID` is a global ID. It is encoded as a string. + +An example `IssueParentID` is: `"gid://gitlab/IssueParent/1"`. +""" +scalar IssueParentID + +"""Check permissions for the current user on a issue""" +type IssuePermissions { + """If `true`, the user can perform `admin_issue` on this resource""" + adminIssue: Boolean! + + """ + If `true`, the user can perform `admin_issue_relation` on this resource + """ + adminIssueRelation: Boolean! + + """If `true`, the user can perform `create_design` on this resource""" + createDesign: Boolean! + + """If `true`, the user can perform `create_note` on this resource""" + createNote: Boolean! + + """If `true`, the user can perform `destroy_design` on this resource""" + destroyDesign: Boolean! + + """If `true`, the user can perform `read_design` on this resource""" + readDesign: Boolean! + + """If `true`, the user can perform `read_issue` on this resource""" + readIssue: Boolean! + + """If `true`, the user can perform `reopen_issue` on this resource""" + reopenIssue: Boolean! + + """If `true`, the user can perform `update_design` on this resource""" + updateDesign: Boolean! + + """If `true`, the user can perform `update_issue` on this resource""" + updateIssue: Boolean! +} + +"""Autogenerated input type of IssuesBulkUpdate""" +input IssuesBulkUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the parent to which the bulk update will be scoped. The parent + can be a project. The parent can also be a group (Premium and Ultimate only). + Example `IssueParentID` are `"gid://gitlab/Project/1"` and + `"gid://gitlab/Group/1"`. + """ + parentId: IssueParentID! + + """ + Global ID array of the issues that will be updated. IDs that the user can't + update will be ignored. A max of 100 can be provided. + """ + ids: [IssueID!]! + + """ + Global ID array of the users that will be assigned to the given issues. + Existing assignees will be replaced with the ones on this list. + """ + assigneeIds: [UserID!] + + """Global ID of the milestone that will be assigned to the issues.""" + milestoneId: MilestoneID + + """Close or reopen an issue.""" + stateEvent: IssueStateEvent + + """Global ID array of the labels that will be added to the issues. """ + addLabelIds: [LabelID!] + + """Global ID array of the labels that will be removed from the issues. """ + removeLabelIds: [LabelID!] + + """Subscribe to or unsubscribe from issue notifications.""" + subscriptionEvent: IssuableSubscriptionEvent +} + +"""Autogenerated return type of IssuesBulkUpdate.""" +type IssuesBulkUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Number of issues that were successfully updated.""" + updatedIssueCount: Int +} + +"""Autogenerated input type of IssueSetAssignees""" +input IssueSetAssigneesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """ + Usernames to assign to the resource. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of IssueSetAssignees.""" +type IssueSetAssigneesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetConfidential""" +input IssueSetConfidentialInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Whether or not to set the issue as a confidential.""" + confidential: Boolean! +} + +"""Autogenerated return type of IssueSetConfidential.""" +type IssueSetConfidentialPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetCrmContacts""" +input IssueSetCrmContactsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """ + Customer relations contact IDs to set. Replaces existing contacts by default. + """ + contactIds: [CustomerRelationsContactID!]! + + """Changes the operation mode. Defaults to REPLACE.""" + operationMode: MutationOperationMode +} + +"""Autogenerated return type of IssueSetCrmContacts.""" +type IssueSetCrmContactsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetDueDate""" +input IssueSetDueDateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Desired due date for the issue. Due date is removed if null.""" + dueDate: Time +} + +"""Autogenerated return type of IssueSetDueDate.""" +type IssueSetDueDatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetEscalationStatus""" +input IssueSetEscalationStatusInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Set the escalation status.""" + status: IssueEscalationStatus! +} + +"""Autogenerated return type of IssueSetEscalationStatus.""" +type IssueSetEscalationStatusPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetLocked""" +input IssueSetLockedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Whether or not to lock discussion on the issue.""" + locked: Boolean! +} + +"""Autogenerated return type of IssueSetLocked.""" +type IssueSetLockedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetSeverity""" +input IssueSetSeverityInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Set the incident severity level.""" + severity: IssuableSeverity! +} + +"""Autogenerated return type of IssueSetSeverity.""" +type IssueSetSeverityPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 +} + +"""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 + + """Priority by ascending order.""" + PRIORITY_ASC + + """Priority by descending order.""" + PRIORITY_DESC + + """Label priority by ascending order.""" + LABEL_PRIORITY_ASC + + """Label priority by descending order.""" + LABEL_PRIORITY_DESC + + """Milestone due date by ascending order.""" + MILESTONE_DUE_ASC + + """Milestone due date by descending order.""" + MILESTONE_DUE_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""State of a GitLab issue""" +enum IssueState { + """In open state.""" + opened + + """In closed state.""" + closed + + """Discussion has been locked.""" + locked + + """All available.""" + all +} + +"""Values for issue state events""" +enum IssueStateEvent { + """Reopens the issue.""" + REOPEN + + """Closes the issue.""" + CLOSE +} + +"""Represents total number of issues for the represented statuses""" +type IssueStatusCountsType { + """Number of issues with status ALL for the project""" + all: Int + + """Number of issues with status CLOSED for the project""" + closed: Int + + """Number of issues with status OPENED for the project""" + opened: Int +} + +"""Issue type""" +enum IssueType { + """Issue issue type""" + ISSUE + + """Incident issue type""" + INCIDENT + + """Test Case issue type""" + TEST_CASE + + """Requirement issue type""" + REQUIREMENT + + """Task issue type""" + TASK + + """ + Objective issue type. Available only when feature flag `okrs_mvc` is enabled. + Introduced in GitLab 15.6: **Status**: Experiment. + """ + OBJECTIVE @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.") + + """ + Key Result issue type. Available only when feature flag `okrs_mvc` is enabled. + Introduced in GitLab 15.7: **Status**: Experiment. + """ + KEY_RESULT @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.") + + """ + Epic issue type. Available only when feature flag `namespace_level_work_items` + is enabled. Introduced in GitLab 16.7: **Status**: Experiment. + """ + EPIC @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") +} + +"""Autogenerated input type of IssueUnlinkAlert""" +input IssueUnlinkAlertInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Global ID of the alert to unlink from the incident.""" + alertId: AlertManagementAlertID! +} + +"""Autogenerated return type of IssueUnlinkAlert.""" +type IssueUnlinkAlertPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +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 + + """ANNOTATIONS job artifact file type.""" + ANNOTATIONS + + """REPOSITORY XRAY job artifact file type.""" + REPOSITORY_XRAY + + """SAST job artifact file type.""" + SAST + + """SECRET DETECTION job artifact file type.""" + SECRET_DETECTION + + """DEPENDENCY SCANNING job artifact file type.""" + DEPENDENCY_SCANNING + + """CONTAINER SCANNING job artifact file type.""" + CONTAINER_SCANNING + + """CLUSTER IMAGE SCANNING job artifact file type.""" + CLUSTER_IMAGE_SCANNING + + """DAST job artifact file type.""" + DAST + + """LICENSE SCANNING job artifact file type.""" + LICENSE_SCANNING + + """ACCESSIBILITY job artifact file type.""" + ACCESSIBILITY + + """CODE QUALITY job artifact file type.""" + CODEQUALITY + + """PERFORMANCE job artifact file type.""" + PERFORMANCE + + """BROWSER PERFORMANCE job artifact file type.""" + BROWSER_PERFORMANCE + + """LOAD PERFORMANCE job artifact file type.""" + LOAD_PERFORMANCE + + """TERRAFORM job artifact file type.""" + TERRAFORM + + """REQUIREMENTS job artifact file type.""" + REQUIREMENTS + + """REQUIREMENTS V2 job artifact file type.""" + REQUIREMENTS_V2 + + """COVERAGE FUZZING job artifact file type.""" + COVERAGE_FUZZING + + """API FUZZING job artifact file type.""" + API_FUZZING +} + +"""Autogenerated input type of JobArtifactsDestroy""" +input JobArtifactsDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the job to mutate.""" + id: CiBuildID! +} + +"""Autogenerated return type of JobArtifactsDestroy.""" +type JobArtifactsDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Number of artifacts deleted.""" + destroyedArtifactsCount: Int! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job with artifacts to be deleted.""" + job: CiJob +} + +"""Autogenerated input type of JobCancel""" +input JobCancelInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the job to mutate.""" + id: CiBuildID! +} + +"""Autogenerated return type of JobCancel.""" +type JobCancelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """If `true`, the user can perform `cancel_build` on this resource""" + cancelBuild: Boolean! + + """If `true`, the user can perform `read_build` on this resource""" + readBuild: Boolean! + + """If `true`, the user can perform `read_job_artifacts` on this resource""" + readJobArtifacts: Boolean! + + """If `true`, the user can perform `update_build` on this resource""" + updateBuild: Boolean! +} + +"""Autogenerated input type of JobPlay""" +input JobPlayInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the job to mutate.""" + id: CiBuildID! + + """Variables to use when playing a manual job.""" + variables: [CiVariableInput!] = [] +} + +"""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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the job to mutate.""" + id: CiProcessableID! + + """Variables to use when retrying a manual job.""" + variables: [CiVariableInput!] = [] +} + +"""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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the job to mutate.""" + id: CiBuildID! +} + +"""Autogenerated return type of JobUnschedule.""" +type JobUnschedulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job after the mutation.""" + job: CiJob +} + +"""Represents untyped JSON""" +scalar JSON + +type Kas { + """Indicates whether the Kubernetes agent server is enabled.""" + enabled: Boolean! + + """URL used by the agents to communicate with the server.""" + externalUrl: String + + """KAS version.""" + version: String +} + +"""Represents an SSH key.""" +type Key { + """Timestamp of when the key was created.""" + createdAt: Time! + + """Timestamp of when the key expires. It's null if it never expires.""" + expiresAt: Time! + + """ID of the key.""" + id: ID! + + """Public key of the key pair.""" + key: String! + + """Title of the key.""" + title: 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 + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Label ID.""" + id: ID! + + """ + Indicates this label is locked for merge requests that have been merged. + """ + lockOnMerge: Boolean! + + """Text color of the label.""" + textColor: String! + + """Content of the label.""" + title: String! + + """When 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 + +"""List of fields where the provided searchTerm should be looked up""" +enum LabelSearchFieldList { + """Search in the label title.""" + TITLE + + """Search in the label description.""" + DESCRIPTION +} + +type LinkedWorkItemType { + """Timestamp the link was created.""" + linkCreatedAt: Time! + + """Global ID of the link.""" + linkId: WorkItemsRelatedWorkItemLinkID! + + """Type of link.""" + linkType: String! + + """Timestamp the link was updated.""" + linkUpdatedAt: Time! + + """Linked work item.""" + workItem: WorkItem +} + +"""The connection type for LinkedWorkItemType.""" +type LinkedWorkItemTypeConnection { + """A list of edges.""" + edges: [LinkedWorkItemTypeEdge] + + """A list of nodes.""" + nodes: [LinkedWorkItemType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type LinkedWorkItemTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: LinkedWorkItemType +} + +""" +A `ListID` is a global ID. It is encoded as a string. + +An example `ListID` is: `"gid://gitlab/List/1"`. +""" +scalar ListID + +"""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 +} + +"""Access level of a group or project member""" +enum MemberAccessLevel { + """Guest access.""" + GUEST + + """Reporter access.""" + REPORTER + + """Developer access.""" + DEVELOPER + + """Maintainer access.""" + MAINTAINER + + """Owner access.""" + OWNER +} + +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. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Representation of mergeability check identifier.""" +enum MergeabilityCheckIdentifier { + """Checks whether the merge request is open""" + NOT_OPEN + + """Checks whether the merge request is draft""" + DRAFT_STATUS + + """Checks source branch exists and contains commits.""" + COMMITS_STATUS + + """Checks whether the merge request has open discussions""" + DISCUSSIONS_NOT_RESOLVED + + """Checks whether CI has passed""" + CI_MUST_PASS + + """Checks whether the merge request has a conflict""" + CONFLICT + + """Checks whether the merge request needs to be rebased""" + NEED_REBASE +} + +""" +Representation of whether a mergeability check passed, failed or is inactive. +""" +enum MergeabilityCheckStatus { + """Mergeability check has passed.""" + SUCCESS + + """Mergeability check has failed. The merge request cannot be merged.""" + FAILED + + """Mergeability check is disabled via settings.""" + INACTIVE + + """Mergeability check has passed with a warning.""" + WARNING +} + +""" +Defines which user roles, users, or groups can merge into a protected branch. +""" +type MergeAccessLevel { + """GitLab::Access level.""" + accessLevel: Int! + + """Human readable representation for this access level.""" + accessLevelDescription: String! +} + +"""The connection type for MergeAccessLevel.""" +type MergeAccessLevelConnection { + """A list of edges.""" + edges: [MergeAccessLevelEdge] + + """A list of nodes.""" + nodes: [MergeAccessLevel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeAccessLevelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeAccessLevel +} + +""" +Defines which user roles, users, or groups can merge into a protected branch. +""" +input MergeAccessLevelInput { + """Access level allowed to perform action.""" + accessLevel: Int +} + +type MergeRequest implements CurrentUserTodos & NoteableInterface & Todoable { + """Indicates if members of the target project can push to the fork.""" + allowCollaboration: Boolean + + """Allows assigning multiple users to a merge request.""" + allowsMultipleAssignees: Boolean! + + """Allows assigning multiple reviewers to a merge request.""" + allowsMultipleReviewers: Boolean! + + """Indicates if the merge request has all the required approvals.""" + approved: Boolean! + + """Users who approved the merge request.""" + approvedBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Assignees of the merge request.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestAssigneeConnection + + """User who created 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!] + + """List of emoji reactions associated with the merge request.""" + awardEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AwardEmojiConnection + + """Code quality reports comparison reported on the merge request.""" + codequalityReportsComparer: CodequalityReportsComparer + + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """Number of commits in the merge request.""" + commitCount: Int + + """Merge request commits.""" + commits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitConnection + + """Merge request commits excluding merge commits.""" + commitsWithoutMergeCommits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitConnection + + """Users who have added commits to the merge request.""" + committers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Indicates if the merge request has conflicts.""" + conflicts: Boolean! + + """Timestamp of when the merge request was created.""" + createdAt: Time! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Default merge commit message of the merge request.""" + defaultMergeCommitMessage: String + + """Default squash commit message of the merge request.""" + defaultSquashCommitMessage: String + + """ + Description of the merge request (Markdown rendered as HTML for caching). + """ + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Detailed merge status of the merge request.""" + detailedMergeStatus: DetailedMergeStatus + + """Diff head SHA of the merge request.""" + diffHeadSha: String + + """ + References of the base SHA, the head SHA, and the start SHA for 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! + + """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 GitLab 14.0: This was renamed. + """ + mergeStatus: String @deprecated(reason: "This was renamed. Please use `MergeRequest.mergeStatusEnum`. Deprecated in GitLab 14.0.") + + """Merge status of the merge request.""" + mergeStatusEnum: MergeStatus + + """User who merged this merge request or set it to auto-merge.""" + mergeUser: UserCore + + """Indicates if the merge has been set to auto-merge.""" + mergeWhenPipelineSucceeds: Boolean + + """ + Status of all mergeability checks of the merge request. Introduced in GitLab 16.5: **Status**: Experiment. + """ + mergeabilityChecks: [MergeRequestMergeabilityCheck!]! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """Indicates if the merge request is mergeable.""" + mergeable: Boolean! + + """ + Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. + """ + mergeableDiscussionsState: Boolean + + """Timestamp of when the merge request was merged, null if not merged.""" + mergedAt: Time + + """Milestone of the merge request.""" + milestone: Milestone + + """All notes on this noteable.""" + notes( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """ + Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. + """ + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestParticipantConnection + + """ + 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 the date.""" + updatedAfter: Time + + """Pipelines updated before the date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Timestamp of when the merge request was prepared.""" + preparedAt: Time + + """Alias for target_project.""" + project: Project! + + """ID of the merge request project.""" + projectId: Int! + + """Rebase commit SHA of the merge request.""" + rebaseCommitSha: String + + """ + Indicates if there is a rebase currently in progress for the merge request. + """ + rebaseInProgress: Boolean! + + """ + Internal reference of the merge request. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """Indicates if merge request was retargeted.""" + retargeted: Boolean + + """Users from whom a review has been requested.""" + reviewers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestReviewerConnection + + """ + Indicates if the merge request is created by @GitLab-Security-Bot. Deprecated + in GitLab 16.11: Security Auto Fix experiment feature was removed. It was + always hidden behind `security_auto_fix` feature flag. + """ + securityAutoFix: Boolean @deprecated(reason: "Security Auto Fix experiment feature was removed. It was always hidden behind `security_auto_fix` feature flag. Deprecated in GitLab 16.11.") + + """Indicates if the merge request will be rebased.""" + shouldBeRebased: Boolean! + + """ + Indicates if the source branch of the merge request will be deleted after merge. + """ + shouldRemoveSourceBranch: Boolean + + """Source branch of the merge request.""" + sourceBranch: String! + + """Indicates if the source branch of the merge request exists.""" + sourceBranchExists: Boolean! + + """Indicates if the source branch is protected.""" + sourceBranchProtected: Boolean! + + """Source project of the merge request.""" + sourceProject: Project + + """ID of the merge request source project.""" + sourceProjectId: Int + + """ + Indicates if the merge request is set to be squashed when merged. [Project settings](https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html#configure-squash-options-for-a-project) + may override this value. Use `squash_on_merge` instead to take project squash + options into account. + """ + squash: Boolean! + + """Indicates if the merge request will be squashed when merged.""" + squashOnMerge: Boolean! + + """State of the merge request.""" + state: MergeRequestState! + + """ + Indicates if the currently logged in user is subscribed to this merge request. + """ + subscribed: Boolean! + + """Indicates if the merge request supports locked labels.""" + supportsLockOnMerge: Boolean! + + """Target branch of the merge request.""" + targetBranch: String! + + """Indicates if the target branch of the merge request exists.""" + targetBranchExists: Boolean! + + """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! + + """GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Total time (in seconds) reported as spent on the merge request.""" + totalTimeSpent: Int! + + """Timestamp of when the merge request was last updated.""" + updatedAt: Time! + + """Number of upvotes for the merge request.""" + upvotes: Int! + + """Number of user discussions in the merge request.""" + userDiscussionsCount: Int + + """User notes count of the merge request.""" + userNotesCount: Int + + """Permissions for the current user on the resource""" + userPermissions: MergeRequestPermissions! + + """Web path of the merge request.""" + webPath: String! + + """Web URL of the merge request.""" + webUrl: String +} + +"""Autogenerated input type of MergeRequestAccept""" +input MergeRequestAcceptInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """How to merge the merge request.""" + strategy: MergeStrategyEnum + + """Custom merge commit message.""" + commitMessage: String + + """HEAD SHA at the time when the merge was requested.""" + sha: String! + + """Custom squash commit message (if squash is true).""" + squashCommitMessage: String + + """Should the source branch be removed.""" + shouldRemoveSourceBranch: Boolean + + """Squash commits on the source branch before merge.""" + squash: Boolean = false +} + +"""Autogenerated return type of MergeRequestAccept.""" +type MergeRequestAcceptPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """Details of 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 + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [MergeRequestAssigneeEdge] + + """A list of nodes.""" + nodes: [MergeRequestAssignee] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestAssigneeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestAssignee +} + +"""The author of the merge request.""" +type MergeRequestAuthor implements 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """Details of 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 + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 +} + +"""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 + +"""Mergeability check of the merge request.""" +type MergeRequestMergeabilityCheck { + """Identifier of the mergeability check.""" + identifier: MergeabilityCheckIdentifier! + + """Status of the mergeability check.""" + status: MergeabilityCheckStatus! +} + +"""New state to apply to a merge request.""" +enum MergeRequestNewState { + """Open the merge request if it is closed.""" + OPEN + + """Close the merge request if it is open.""" + CLOSED +} + +"""A user participating in a merge request.""" +type MergeRequestParticipant implements 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """Details of 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 + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [MergeRequestParticipantEdge] + + """A list of nodes.""" + nodes: [MergeRequestParticipant] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestParticipantEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestParticipant +} + +"""Check permissions for the current user on a merge request""" +type MergeRequestPermissions { + """If `true`, the user can perform `admin_merge_request` on this resource""" + adminMergeRequest: Boolean! + + """If `true`, the user can perform `can_approve` on this resource""" + canApprove: Boolean! + + """If `true`, the user can perform `can_merge` on this resource""" + canMerge: Boolean! + + """ + If `true`, the user can perform `cherry_pick_on_current_merge_request` on this resource + """ + cherryPickOnCurrentMergeRequest: Boolean! + + """If `true`, the user can perform `create_note` on this resource""" + createNote: Boolean! + + """ + If `true`, the user can perform `push_to_source_branch` on this resource + """ + pushToSourceBranch: Boolean! + + """If `true`, the user can perform `read_merge_request` on this resource""" + readMergeRequest: Boolean! + + """ + If `true`, the user can perform `remove_source_branch` on this resource + """ + removeSourceBranch: Boolean! + + """ + If `true`, the user can perform `revert_on_current_merge_request` on this resource + """ + revertOnCurrentMergeRequest: Boolean! + + """ + If `true`, the user can perform `update_merge_request` on this resource + """ + updateMergeRequest: Boolean! +} + +"""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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """Details of 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 + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [MergeRequestReviewerEdge] + + """A list of nodes.""" + nodes: [MergeRequestReviewer] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestReviewerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestReviewer +} + +"""Autogenerated input type of MergeRequestReviewerRereview""" +input MergeRequestReviewerRereviewInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + User ID for the user that has been requested for a new review. + + """ + userId: UserID! +} + +"""Autogenerated return type of MergeRequestReviewerRereview.""" +type MergeRequestReviewerRereviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""State of a review of a GitLab merge request.""" +enum MergeRequestReviewState { + """Awaiting review from merge request reviewer.""" + UNREVIEWED + + """Merge request reviewer has reviewed.""" + REVIEWED + + """Merge request reviewer has requested changes.""" + REQUESTED_CHANGES + + """Merge request reviewer has approved the changes.""" + APPROVED + + """Merge request reviewer removed their approval of the changes.""" + UNAPPROVED +} + +""" +A `MergeRequestsClosingIssuesID` is a global ID. It is encoded as a string. + +An example `MergeRequestsClosingIssuesID` is: `"gid://gitlab/MergeRequestsClosingIssues/1"`. +""" +scalar MergeRequestsClosingIssuesID + +"""Autogenerated input type of MergeRequestSetAssignees""" +input MergeRequestSetAssigneesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Usernames to assign to the resource. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of MergeRequestSetAssignees.""" +type MergeRequestSetAssigneesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetDraft""" +input MergeRequestSetDraftInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Whether or not to set the merge request as a draft. + + """ + draft: Boolean! +} + +"""Autogenerated return type of MergeRequestSetDraft.""" +type MergeRequestSetDraftPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetLabels""" +input MergeRequestSetLabelsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Label IDs to set. Replaces existing labels by default. + + """ + labelIds: [LabelID!]! + + """ + Changes the operation mode. Defaults to REPLACE. + + """ + operationMode: MutationOperationMode +} + +"""Autogenerated return type of MergeRequestSetLabels.""" +type MergeRequestSetLabelsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetLocked""" +input MergeRequestSetLockedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Whether or not to lock the merge request. + + """ + locked: Boolean! +} + +"""Autogenerated return type of MergeRequestSetLocked.""" +type MergeRequestSetLockedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetMilestone""" +input MergeRequestSetMilestoneInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Milestone to assign to the merge request. + + """ + milestoneId: MilestoneID +} + +"""Autogenerated return type of MergeRequestSetMilestone.""" +type MergeRequestSetMilestonePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetReviewers""" +input MergeRequestSetReviewersInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """ + Usernames of reviewers to assign. Replaces existing reviewers by default. + """ + reviewerUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of MergeRequestSetReviewers.""" +type MergeRequestSetReviewersPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +input MergeRequestsResolverNegatedParams { + """ + 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 + + """Opened merge request.""" + opened + + """In closed state.""" + closed + + """Discussion has been locked.""" + locked + + """All available.""" + all +} + +"""Autogenerated input type of MergeRequestUpdate""" +input MergeRequestUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """Title of the merge request.""" + title: String + + """Target branch of the merge request.""" + targetBranch: String + + """ + Description of the merge request (Markdown rendered as HTML for caching). + """ + description: String + + """Action to perform to change the state.""" + state: MergeRequestNewState + + """ + Estimated time to complete the merge request. Use `null` or `0` to remove the current estimate. + """ + timeEstimate: String +} + +"""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_when_pipeline_succeeds merge strategy.""" + MERGE_WHEN_PIPELINE_SUCCEEDS +} + +type Metadata { + """Enterprise edition.""" + enterprise: Boolean! + + """Metadata about KAS.""" + kas: Kas! + + """Revision.""" + revision: String! + + """Version.""" + version: String! +} + +type MetricsDashboardAnnotation { + """Description of the annotation.""" + description: String + + """Timestamp marking end of annotated time span.""" + endingAt: Time + + """ID of the annotation.""" + id: ID! + + """ID of a dashboard panel to which the annotation should be scoped.""" + panelId: String + + """Timestamp marking start of annotated time span.""" + startingAt: Time +} + +"""Represents a milestone""" +type Milestone { + """Timestamp of milestone creation.""" + createdAt: Time! + + """Description of the milestone.""" + description: String + + """Timestamp of the milestone due date.""" + dueDate: Time + + """ + Expired state of the milestone (a milestone is expired when the due date is + past the current date). Defaults to `false` when due date has not been set. + """ + expired: Boolean! + + """Group of the milestone.""" + group: Group + + """Indicates if milestone is at group level.""" + groupMilestone: Boolean! + + """ID of the milestone.""" + id: ID! + + """Internal ID of the milestone.""" + iid: ID! + + """Project of the milestone.""" + project: Project + + """Indicates if milestone is at project level.""" + projectMilestone: Boolean! + + """Releases associated with 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 + + """Timestamp of the milestone start date.""" + startDate: Time + + """State of the milestone.""" + state: MilestoneStateEnum! + + """Milestone statistics.""" + stats: MilestoneStats + + """Indicates if milestone is at subgroup level.""" + subgroupMilestone: Boolean! + + """Title of the milestone.""" + title: String! + + """ + Upcoming state of the milestone (a milestone is upcoming when the start date + is in the future). Defaults to `false` when start date has not been set. + """ + upcoming: Boolean! + + """Timestamp of last milestone update.""" + updatedAt: Time! + + """Web path of the milestone.""" + webPath: String! +} + +"""The connection type for Milestone.""" +type MilestoneConnection { + """A list of edges.""" + edges: [MilestoneEdge] + + """A list of nodes.""" + nodes: [Milestone] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MilestoneEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Milestone +} + +""" +A `MilestoneID` is a global ID. It is encoded as a string. + +An example `MilestoneID` is: `"gid://gitlab/Milestone/1"`. +""" +scalar MilestoneID + +"""Values for sorting milestones""" +enum MilestoneSort { + """Milestone due date by ascending order.""" + DUE_DATE_ASC + + """Milestone due date by descending order.""" + DUE_DATE_DESC + + """ + Group milestones in 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. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Current state of milestone""" +enum MilestoneStateEnum { + """Milestone is currently active.""" + active + + """Milestone is closed.""" + closed +} + +"""Contains statistics about a milestone""" +type MilestoneStats { + """Number of closed issues associated with the milestone.""" + closedIssuesCount: Int + + """Total number of issues associated with the milestone.""" + totalIssuesCount: Int +} + +"""Milestone ID wildcard values""" +enum MilestoneWildcardId { + """No milestone is assigned.""" + NONE + + """Milestone is assigned.""" + ANY + + """Milestone assigned is open and started (start date <= today).""" + STARTED + + """Milestone assigned is due in the future (due date > today).""" + UPCOMING +} + +"""Candidate for a model version in the model registry""" +type MlCandidate { + """Map of links to perform actions on the candidate.""" + _links: MLCandidateLinks! + + """CI information about the job that created the candidate.""" + ciJob: CiJob + + """Date of creation.""" + createdAt: Time! + + """MLflow uuid for the candidate.""" + eid: String! + + """ID of the candidate.""" + id: MlCandidateID! + + """IID of the candidate scoped to project.""" + iid: Int! + + """Metadata entries for the candidate.""" + metadata( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlCandidateMetadataConnection! + + """Metrics for the candidate.""" + metrics( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlCandidateMetricConnection! + + """Name of the candidate.""" + name: String + + """Parameters for the candidate.""" + params( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlCandidateParamConnection! + + """Candidate status.""" + status: String +} + +"""The connection type for MlCandidate.""" +type MlCandidateConnection { + """ + 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: [MlCandidateEdge] + + """A list of nodes.""" + nodes: [MlCandidate] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MlCandidateEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlCandidate +} + +""" +A `MlCandidateID` is a global ID. It is encoded as a string. + +An example `MlCandidateID` is: `"gid://gitlab/Ml::Candidate/1"`. +""" +scalar MlCandidateID + +"""Represents links to perform actions on the candidate""" +type MLCandidateLinks { + """Path to the artifact.""" + artifactPath: String + + """Path to the details page of the candidate.""" + showPath: String +} + +"""Metadata for a candidate in the model registry""" +type MlCandidateMetadata { + """ID of the metadata.""" + id: MlCandidateMetadataID! + + """Name of the metadata entry.""" + name: String + + """Value set for the metadata entry.""" + value: String! +} + +"""The connection type for MlCandidateMetadata.""" +type MlCandidateMetadataConnection { + """ + 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: [MlCandidateMetadataEdge] + + """A list of nodes.""" + nodes: [MlCandidateMetadata] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MlCandidateMetadataEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlCandidateMetadata +} + +""" +A `MlCandidateMetadataID` is a global ID. It is encoded as a string. + +An example `MlCandidateMetadataID` is: `"gid://gitlab/Ml::CandidateMetadata/1"`. +""" +scalar MlCandidateMetadataID + +"""Metric for a candidate in the model registry""" +type MlCandidateMetric { + """ID of the metric.""" + id: MlCandidateMetricID! + + """Name of the metric.""" + name: String + + """Step at which the metric was measured.""" + step: Int! + + """Value set for the metric.""" + value: Float! +} + +"""The connection type for MlCandidateMetric.""" +type MlCandidateMetricConnection { + """ + 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: [MlCandidateMetricEdge] + + """A list of nodes.""" + nodes: [MlCandidateMetric] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MlCandidateMetricEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlCandidateMetric +} + +""" +A `MlCandidateMetricID` is a global ID. It is encoded as a string. + +An example `MlCandidateMetricID` is: `"gid://gitlab/Ml::CandidateMetric/1"`. +""" +scalar MlCandidateMetricID + +"""Parameter for a candidate in the model registry""" +type MlCandidateParam { + """ID of the parameter.""" + id: MlCandidateParamID! + + """Name of the parameter.""" + name: String + + """Value set for the parameter.""" + value: String! +} + +"""The connection type for MlCandidateParam.""" +type MlCandidateParamConnection { + """ + 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: [MlCandidateParamEdge] + + """A list of nodes.""" + nodes: [MlCandidateParam] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MlCandidateParamEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlCandidateParam +} + +""" +A `MlCandidateParamID` is a global ID. It is encoded as a string. + +An example `MlCandidateParamID` is: `"gid://gitlab/Ml::CandidateParam/1"`. +""" +scalar MlCandidateParamID + +"""Machine learning model in the model registry""" +type MlModel { + """Map of links to perform actions on the model.""" + _links: MLModelLinks! + + """Count of candidates in the model.""" + candidateCount: Int + + """Version candidates of the model.""" + candidates( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlCandidateConnection + + """Date of creation.""" + createdAt: Time! + + """Description of the model.""" + description: String + + """ID of the model.""" + id: MlModelID! + + """Latest version of the model.""" + latestVersion: MlModelVersion + + """Name of the model.""" + name: String! + + """Version of the model.""" + version( + """Id of the version to be fetched.""" + modelVersionId: MlModelVersionID + ): MlModelVersion + + """Count of versions in the model.""" + versionCount: Int + + """Versions of the model.""" + versions( + """Search for versions where the name includes the string.""" + version: String + + """Ordering column. Default is created_at.""" + orderBy: MlModelVersionsOrderBy + + """Ordering column. Default is desc.""" + sort: SortDirectionEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlModelVersionConnection +} + +"""The connection type for MlModel.""" +type MlModelConnection { + """ + 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: [MlModelEdge] + + """A list of nodes.""" + nodes: [MlModel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of MlModelCreate""" +input MlModelCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the model to mutate is in.""" + projectPath: ID! + + """Name of the model.""" + name: String! + + """Description of the model.""" + description: String +} + +"""Autogenerated return type of MlModelCreate.""" +type MlModelCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Model after mutation.""" + model: MlModel +} + +"""Autogenerated input type of MlModelDelete""" +input MlModelDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the model to mutate is in.""" + projectPath: ID! + + """Global ID of the model to be deleted.""" + id: MlModelID! +} + +"""Autogenerated return type of MlModelDelete.""" +type MlModelDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Model after mutation.""" + model: MlModel +} + +"""Autogenerated input type of MlModelDestroy""" +input MlModelDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the model to mutate is in.""" + projectPath: ID! + + """Global ID of the model to be deleted.""" + id: MlModelID! +} + +"""Autogenerated return type of MlModelDestroy.""" +type MlModelDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Model deletion result message.""" + message: String + + """Model after mutation.""" + model: MlModel +} + +"""An edge in a connection.""" +type MlModelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlModel +} + +""" +A `MlModelID` is a global ID. It is encoded as a string. + +An example `MlModelID` is: `"gid://gitlab/Ml::Model/1"`. +""" +scalar MlModelID + +"""Represents links to perform actions on the model""" +type MLModelLinks { + """Path to the details page of the model.""" + showPath: String +} + +"""Values for ordering machine learning models by a specific field""" +enum MlModelsOrderBy { + """Ordered by name.""" + NAME + + """Ordered by creation time.""" + CREATED_AT + + """Ordered by update time.""" + UPDATED_AT + + """Ordered by id.""" + ID +} + +"""Version of a machine learning model""" +type MlModelVersion { + """Map of links to perform actions on the model version.""" + _links: MLModelVersionLinks! + + """Metrics, params and metadata for the model version.""" + candidate: MlCandidate! + + """Date of creation.""" + createdAt: Time! + + """Description of the version.""" + description: String + + """ID of the model version.""" + id: MlModelVersionID! + + """Package for model version artifacts.""" + packageId: PackagesPackageID! + + """Name of the version.""" + version: String! +} + +"""The connection type for MlModelVersion.""" +type MlModelVersionConnection { + """ + 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: [MlModelVersionEdge] + + """A list of nodes.""" + nodes: [MlModelVersion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of MlModelVersionCreate""" +input MlModelVersionCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the model to mutate is in.""" + projectPath: ID! + + """Global ID of the model the version belongs to.""" + modelId: MlModelID! + + """Model version.""" + version: String + + """Description of the model version.""" + description: String +} + +"""Autogenerated return type of MlModelVersionCreate.""" +type MlModelVersionCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Model after mutation.""" + modelVersion: MlModelVersion +} + +"""Autogenerated input type of MlModelVersionDelete""" +input MlModelVersionDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the model version to be deleted.""" + id: MlModelVersionID! +} + +"""Autogenerated return type of MlModelVersionDelete.""" +type MlModelVersionDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted model version.""" + modelVersion: MlModelVersion +} + +"""An edge in a connection.""" +type MlModelVersionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MlModelVersion +} + +""" +A `MlModelVersionID` is a global ID. It is encoded as a string. + +An example `MlModelVersionID` is: `"gid://gitlab/Ml::ModelVersion/1"`. +""" +scalar MlModelVersionID + +"""Represents links to perform actions on the model version""" +type MLModelVersionLinks { + """File upload path for the machine learning model.""" + importPath: String + + """Path to the package of the model version.""" + packagePath: String + + """Path to the details page of the model version.""" + showPath: String +} + +"""Field names for ordering machine learning model versions""" +enum MlModelVersionsOrderBy { + """Ordered by name.""" + VERSION + + """Ordered by creation time.""" + CREATED_AT + + """Ordered by id.""" + ID +} + +type Mutation { + abuseReportLabelCreate( + """Parameters for AbuseReportLabelCreate""" + input: AbuseReportLabelCreateInput! + ): AbuseReportLabelCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + achievementsAward( + """Parameters for AchievementsAward""" + input: AchievementsAwardInput! + ): AchievementsAwardPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + achievementsCreate( + """Parameters for AchievementsCreate""" + input: AchievementsCreateInput! + ): AchievementsCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.") + achievementsDelete( + """Parameters for AchievementsDelete""" + input: AchievementsDeleteInput! + ): AchievementsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + achievementsRevoke( + """Parameters for AchievementsRevoke""" + input: AchievementsRevokeInput! + ): AchievementsRevokePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + achievementsUpdate( + """Parameters for AchievementsUpdate""" + input: AchievementsUpdateInput! + ): AchievementsUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + adminSidekiqQueuesDeleteJobs( + """Parameters for AdminSidekiqQueuesDeleteJobs""" + input: AdminSidekiqQueuesDeleteJobsInput! + ): AdminSidekiqQueuesDeleteJobsPayload + alertSetAssignees( + """Parameters for AlertSetAssignees""" + input: AlertSetAssigneesInput! + ): AlertSetAssigneesPayload + alertTodoCreate( + """Parameters for AlertTodoCreate""" + input: AlertTodoCreateInput! + ): AlertTodoCreatePayload + artifactDestroy( + """Parameters for ArtifactDestroy""" + input: ArtifactDestroyInput! + ): ArtifactDestroyPayload + awardEmojiAdd( + """Parameters for AwardEmojiAdd""" + input: AwardEmojiAddInput! + ): AwardEmojiAddPayload + awardEmojiRemove( + """Parameters for AwardEmojiRemove""" + input: AwardEmojiRemoveInput! + ): AwardEmojiRemovePayload + awardEmojiToggle( + """Parameters for AwardEmojiToggle""" + input: AwardEmojiToggleInput! + ): AwardEmojiTogglePayload + boardListCreate( + """Parameters for BoardListCreate""" + input: BoardListCreateInput! + ): BoardListCreatePayload + branchRuleCreate( + """Parameters for BranchRuleCreate""" + input: BranchRuleCreateInput! + ): BranchRuleCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + branchRuleDelete( + """Parameters for BranchRuleDelete""" + input: BranchRuleDeleteInput! + ): BranchRuleDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.") + branchRuleUpdate( + """Parameters for BranchRuleUpdate""" + input: BranchRuleUpdateInput! + ): BranchRuleUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + bulkDestroyJobArtifacts( + """Parameters for BulkDestroyJobArtifacts""" + input: BulkDestroyJobArtifactsInput! + ): BulkDestroyJobArtifactsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + bulkRunnerDelete( + """Parameters for BulkRunnerDelete""" + input: BulkRunnerDeleteInput! + ): BulkRunnerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.") + catalogResourcesCreate( + """Parameters for CatalogResourcesCreate""" + input: CatalogResourcesCreateInput! + ): CatalogResourcesCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + catalogResourcesDestroy( + """Parameters for CatalogResourcesDestroy""" + input: CatalogResourcesDestroyInput! + ): CatalogResourcesDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + ciJobTokenScopeAddGroupOrProject( + """Parameters for CiJobTokenScopeAddGroupOrProject""" + input: CiJobTokenScopeAddGroupOrProjectInput! + ): CiJobTokenScopeAddGroupOrProjectPayload + ciJobTokenScopeAddProject( + """Parameters for CiJobTokenScopeAddProject""" + input: CiJobTokenScopeAddProjectInput! + ): CiJobTokenScopeAddProjectPayload + ciJobTokenScopeRemoveGroup( + """Parameters for CiJobTokenScopeRemoveGroup""" + input: CiJobTokenScopeRemoveGroupInput! + ): CiJobTokenScopeRemoveGroupPayload + ciJobTokenScopeRemoveProject( + """Parameters for CiJobTokenScopeRemoveProject""" + input: CiJobTokenScopeRemoveProjectInput! + ): CiJobTokenScopeRemoveProjectPayload + 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 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 + createAlertIssue( + """Parameters for CreateAlertIssue""" + input: CreateAlertIssueInput! + ): CreateAlertIssuePayload + createAnnotation( + """Parameters for CreateAnnotation""" + input: CreateAnnotationInput! + ): CreateAnnotationPayload @deprecated(reason: "Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.") + createBoard( + """Parameters for CreateBoard""" + input: CreateBoardInput! + ): CreateBoardPayload + createBranch( + """Parameters for CreateBranch""" + input: CreateBranchInput! + ): CreateBranchPayload + createClusterAgent( + """Parameters for CreateClusterAgent""" + input: CreateClusterAgentInput! + ): CreateClusterAgentPayload + + """ + Creates a protection rule to restrict access to a project's container + registry. Available only when feature flag + `container_registry_protected_containers` is enabled. Introduced in GitLab + 16.6: **Status**: Experiment. + """ + createContainerRegistryProtectionRule( + """Parameters for CreateContainerRegistryProtectionRule""" + input: CreateContainerRegistryProtectionRuleInput! + ): CreateContainerRegistryProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + createCustomEmoji( + """Parameters for CreateCustomEmoji""" + input: CreateCustomEmojiInput! + ): CreateCustomEmojiPayload + createDiffNote( + """Parameters for CreateDiffNote""" + input: CreateDiffNoteInput! + ): CreateDiffNotePayload + createDiscussion( + """Parameters for CreateDiscussion""" + input: CreateDiscussionInput! + ): CreateDiscussionPayload + createImageDiffNote( + """Parameters for CreateImageDiffNote""" + input: CreateImageDiffNoteInput! + ): CreateImageDiffNotePayload + createIssue( + """Parameters for CreateIssue""" + input: CreateIssueInput! + ): CreateIssuePayload + + """ + Creates a Note. + If the body of the Note contains only quick actions, + the Note will be destroyed during an update, and no Note will be + returned. + + """ + createNote( + """Parameters for CreateNote""" + input: CreateNoteInput! + ): CreateNotePayload + + """ + Creates a protection rule to restrict access to project packages. Available + only when feature flag `packages_protected_packages` is enabled. Introduced in + GitLab 16.5: **Status**: Experiment. + """ + createPackagesProtectionRule( + """Parameters for CreatePackagesProtectionRule""" + input: CreatePackagesProtectionRuleInput! + ): CreatePackagesProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + createSnippet( + """Parameters for CreateSnippet""" + input: CreateSnippetInput! + ): CreateSnippetPayload + 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 + deleteAnnotation( + """Parameters for DeleteAnnotation""" + input: DeleteAnnotationInput! + ): DeleteAnnotationPayload @deprecated(reason: "Underlying feature was removed in 16.0. Deprecated in GitLab 16.0.") + + """ + Deletes a container registry protection rule. Available only when feature flag + `container_registry_protected_containers` is enabled. Introduced in GitLab + 16.7: **Status**: Experiment. + """ + deleteContainerRegistryProtectionRule( + """Parameters for DeleteContainerRegistryProtectionRule""" + input: DeleteContainerRegistryProtectionRuleInput! + ): DeleteContainerRegistryProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """ + Deletes a protection rule for packages. Available only when feature flag + `packages_protected_packages` is enabled. Introduced in GitLab 16.6: + **Status**: Experiment. + """ + deletePackagesProtectionRule( + """Parameters for DeletePackagesProtectionRule""" + input: DeletePackagesProtectionRuleInput! + ): DeletePackagesProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """ + Deletes a Pages deployment. Introduced in GitLab 17.1: **Status**: Experiment. + """ + deletePagesDeployment( + """Parameters for DeletePagesDeployment""" + input: DeletePagesDeploymentInput! + ): DeletePagesDeploymentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + designManagementDelete( + """Parameters for DesignManagementDelete""" + input: DesignManagementDeleteInput! + ): DesignManagementDeletePayload + designManagementMove( + """Parameters for DesignManagementMove""" + input: DesignManagementMoveInput! + ): DesignManagementMovePayload + designManagementUpdate( + """Parameters for DesignManagementUpdate""" + input: DesignManagementUpdateInput! + ): DesignManagementUpdatePayload + designManagementUpload( + """Parameters for DesignManagementUpload""" + input: DesignManagementUploadInput! + ): DesignManagementUploadPayload + destroyBoard( + """Parameters for DestroyBoard""" + input: DestroyBoardInput! + ): DestroyBoardPayload + destroyBoardList( + """Parameters for DestroyBoardList""" + input: DestroyBoardListInput! + ): DestroyBoardListPayload + destroyContainerRepository( + """Parameters for DestroyContainerRepository""" + input: DestroyContainerRepositoryInput! + ): DestroyContainerRepositoryPayload + destroyContainerRepositoryTags( + """Parameters for DestroyContainerRepositoryTags""" + input: DestroyContainerRepositoryTagsInput! + ): DestroyContainerRepositoryTagsPayload + destroyCustomEmoji( + """Parameters for DestroyCustomEmoji""" + input: DestroyCustomEmojiInput! + ): DestroyCustomEmojiPayload + destroyNote( + """Parameters for DestroyNote""" + input: DestroyNoteInput! + ): DestroyNotePayload + destroyPackage( + """Parameters for DestroyPackage""" + input: DestroyPackageInput! + ): DestroyPackagePayload + destroyPackageFile( + """Parameters for DestroyPackageFile""" + input: DestroyPackageFileInput! + ): DestroyPackageFilePayload + destroyPackageFiles( + """Parameters for DestroyPackageFiles""" + input: DestroyPackageFilesInput! + ): DestroyPackageFilesPayload + destroyPackages( + """Parameters for DestroyPackages""" + input: DestroyPackagesInput! + ): DestroyPackagesPayload + destroySnippet( + """Parameters for DestroySnippet""" + input: DestroySnippetInput! + ): DestroySnippetPayload + + """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 + + """Create an environment.""" + environmentCreate( + """Parameters for EnvironmentCreate""" + input: EnvironmentCreateInput! + ): EnvironmentCreatePayload + + """Delete an environment.""" + environmentDelete( + """Parameters for EnvironmentDelete""" + input: EnvironmentDeleteInput! + ): EnvironmentDeletePayload + + """Stop an environment.""" + environmentStop( + """Parameters for EnvironmentStop""" + input: EnvironmentStopInput! + ): EnvironmentStopPayload + + """Update an environment.""" + environmentUpdate( + """Parameters for EnvironmentUpdate""" + input: EnvironmentUpdateInput! + ): EnvironmentUpdatePayload + + """ + **Deprecated** This endpoint is planned to be removed along with + certificate-based clusters. [See this + epic](https://gitlab.com/groups/gitlab-org/configure/-/epics/8) for more information. + """ + environmentsCanaryIngressUpdate( + """Parameters for EnvironmentsCanaryIngressUpdate""" + input: EnvironmentsCanaryIngressUpdateInput! + ): EnvironmentsCanaryIngressUpdatePayload + groupMemberBulkUpdate( + """Parameters for GroupMemberBulkUpdate""" + input: GroupMemberBulkUpdateInput! + ): GroupMemberBulkUpdatePayload + 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 + integrationExclusionCreate( + """Parameters for IntegrationExclusionCreate""" + input: IntegrationExclusionCreateInput! + ): IntegrationExclusionCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + integrationExclusionDelete( + """Parameters for IntegrationExclusionDelete""" + input: IntegrationExclusionDeleteInput! + ): IntegrationExclusionDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + issueLinkAlerts( + """Parameters for IssueLinkAlerts""" + input: IssueLinkAlertsInput! + ): IssueLinkAlertsPayload + issueMove( + """Parameters for IssueMove""" + input: IssueMoveInput! + ): IssueMovePayload + issueMoveList( + """Parameters for IssueMoveList""" + input: IssueMoveListInput! + ): IssueMoveListPayload + issueSetAssignees( + """Parameters for IssueSetAssignees""" + input: IssueSetAssigneesInput! + ): IssueSetAssigneesPayload + issueSetConfidential( + """Parameters for IssueSetConfidential""" + input: IssueSetConfidentialInput! + ): IssueSetConfidentialPayload + issueSetCrmContacts( + """Parameters for IssueSetCrmContacts""" + input: IssueSetCrmContactsInput! + ): IssueSetCrmContactsPayload + issueSetDueDate( + """Parameters for IssueSetDueDate""" + input: IssueSetDueDateInput! + ): IssueSetDueDatePayload + issueSetEscalationStatus( + """Parameters for IssueSetEscalationStatus""" + input: IssueSetEscalationStatusInput! + ): IssueSetEscalationStatusPayload + issueSetLocked( + """Parameters for IssueSetLocked""" + input: IssueSetLockedInput! + ): IssueSetLockedPayload + issueSetSeverity( + """Parameters for IssueSetSeverity""" + input: IssueSetSeverityInput! + ): IssueSetSeverityPayload + issueSetSubscription( + """Parameters for IssueSetSubscription""" + input: IssueSetSubscriptionInput! + ): IssueSetSubscriptionPayload + issueUnlinkAlert( + """Parameters for IssueUnlinkAlert""" + input: IssueUnlinkAlertInput! + ): IssueUnlinkAlertPayload + + """ + Allows updating several properties for a set of issues. Does nothing if the + `bulk_update_issues_mutation` feature flag is disabled. Introduced in GitLab + 15.9: **Status**: Experiment. + """ + issuesBulkUpdate( + """Parameters for IssuesBulkUpdate""" + input: IssuesBulkUpdateInput! + ): IssuesBulkUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + 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 scheduled to merge into the target branch, either + immediately if possible, or using one of the automatic merge strategies. + + [In GitLab 16.5](https://gitlab.com/gitlab-org/gitlab/-/issues/421510), the merging happens asynchronously. + This results in `mergeRequest` and `state` not updating after a mutation request, + because the merging may not have happened yet. + + """ + mergeRequestAccept( + """Parameters for MergeRequestAccept""" + input: MergeRequestAcceptInput! + ): MergeRequestAcceptPayload + 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 + mlModelCreate( + """Parameters for MlModelCreate""" + input: MlModelCreateInput! + ): MlModelCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.") + mlModelDelete( + """Parameters for MlModelDelete""" + input: MlModelDeleteInput! + ): MlModelDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + mlModelDestroy( + """Parameters for MlModelDestroy""" + input: MlModelDestroyInput! + ): MlModelDestroyPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.") + mlModelVersionCreate( + """Parameters for MlModelVersionCreate""" + input: MlModelVersionCreateInput! + ): MlModelVersionCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + mlModelVersionDelete( + """Parameters for MlModelVersionDelete""" + input: MlModelVersionDeleteInput! + ): MlModelVersionDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + organizationCreate( + """Parameters for OrganizationCreate""" + input: OrganizationCreateInput! + ): OrganizationCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + organizationUpdate( + """Parameters for OrganizationUpdate""" + input: OrganizationUpdateInput! + ): OrganizationUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + 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 + pipelineScheduleCreate( + """Parameters for PipelineScheduleCreate""" + input: PipelineScheduleCreateInput! + ): PipelineScheduleCreatePayload + pipelineScheduleDelete( + """Parameters for PipelineScheduleDelete""" + input: PipelineScheduleDeleteInput! + ): PipelineScheduleDeletePayload + pipelineSchedulePlay( + """Parameters for PipelineSchedulePlay""" + input: PipelineSchedulePlayInput! + ): PipelineSchedulePlayPayload + pipelineScheduleTakeOwnership( + """Parameters for PipelineScheduleTakeOwnership""" + input: PipelineScheduleTakeOwnershipInput! + ): PipelineScheduleTakeOwnershipPayload + pipelineScheduleUpdate( + """Parameters for PipelineScheduleUpdate""" + input: PipelineScheduleUpdateInput! + ): PipelineScheduleUpdatePayload + pipelineTriggerCreate( + """Parameters for PipelineTriggerCreate""" + input: PipelineTriggerCreateInput! + ): PipelineTriggerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + pipelineTriggerDelete( + """Parameters for PipelineTriggerDelete""" + input: PipelineTriggerDeleteInput! + ): PipelineTriggerDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + pipelineTriggerUpdate( + """Parameters for PipelineTriggerUpdate""" + input: PipelineTriggerUpdateInput! + ): PipelineTriggerUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + projectBlobsRemove( + """Parameters for projectBlobsRemove""" + input: projectBlobsRemoveInput! + ): projectBlobsRemovePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + projectCiCdSettingsUpdate( + """Parameters for ProjectCiCdSettingsUpdate""" + input: ProjectCiCdSettingsUpdateInput! + ): ProjectCiCdSettingsUpdatePayload + + """ + Updates multiple members of a project. To use this mutation, you must have at least the Maintainer role. + """ + projectMemberBulkUpdate( + """Parameters for ProjectMemberBulkUpdate""" + input: ProjectMemberBulkUpdateInput! + ): ProjectMemberBulkUpdatePayload + projectSyncFork( + """Parameters for ProjectSyncFork""" + input: ProjectSyncForkInput! + ): ProjectSyncForkPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + projectTextReplace( + """Parameters for projectTextReplace""" + input: projectTextReplaceInput! + ): projectTextReplacePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + prometheusIntegrationCreate( + """Parameters for PrometheusIntegrationCreate""" + input: PrometheusIntegrationCreateInput! + ): PrometheusIntegrationCreatePayload + prometheusIntegrationResetToken( + """Parameters for PrometheusIntegrationResetToken""" + input: PrometheusIntegrationResetTokenInput! + ): PrometheusIntegrationResetTokenPayload + prometheusIntegrationUpdate( + """Parameters for PrometheusIntegrationUpdate""" + input: PrometheusIntegrationUpdateInput! + ): PrometheusIntegrationUpdatePayload + 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 + + """ + Repositions a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`) + """ + repositionImageDiffNote( + """Parameters for RepositionImageDiffNote""" + input: RepositionImageDiffNoteInput! + ): RepositionImageDiffNotePayload + + """ + Restores a Pages deployment that has been scheduled for deletion. Introduced in GitLab 17.1: **Status**: Experiment. + """ + restorePagesDeployment( + """Parameters for RestorePagesDeployment""" + input: RestorePagesDeploymentInput! + ): RestorePagesDeploymentPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + runnerCacheClear( + """Parameters for RunnerCacheClear""" + input: RunnerCacheClearInput! + ): RunnerCacheClearPayload + runnerCreate( + """Parameters for RunnerCreate""" + input: RunnerCreateInput! + ): RunnerCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + runnerDelete( + """Parameters for RunnerDelete""" + input: RunnerDeleteInput! + ): RunnerDeletePayload + 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 + starProject( + """Parameters for StarProject""" + input: StarProjectInput! + ): StarProjectPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + terraformStateDelete( + """Parameters for TerraformStateDelete""" + input: TerraformStateDeleteInput! + ): TerraformStateDeletePayload + terraformStateLock( + """Parameters for TerraformStateLock""" + input: TerraformStateLockInput! + ): TerraformStateLockPayload + terraformStateUnlock( + """Parameters for TerraformStateUnlock""" + input: TerraformStateUnlockInput! + ): TerraformStateUnlockPayload + timelineEventCreate( + """Parameters for TimelineEventCreate""" + input: TimelineEventCreateInput! + ): TimelineEventCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.") + timelineEventDestroy( + """Parameters for TimelineEventDestroy""" + input: TimelineEventDestroyInput! + ): TimelineEventDestroyPayload + timelineEventPromoteFromNote( + """Parameters for TimelineEventPromoteFromNote""" + input: TimelineEventPromoteFromNoteInput! + ): TimelineEventPromoteFromNotePayload + timelineEventTagCreate( + """Parameters for TimelineEventTagCreate""" + input: TimelineEventTagCreateInput! + ): TimelineEventTagCreatePayload + timelineEventUpdate( + """Parameters for TimelineEventUpdate""" + input: TimelineEventUpdateInput! + ): TimelineEventUpdatePayload + timelogCreate( + """Parameters for TimelogCreate""" + input: TimelogCreateInput! + ): TimelogCreatePayload + timelogDelete( + """Parameters for TimelogDelete""" + input: TimelogDeleteInput! + ): TimelogDeletePayload + todoCreate( + """Parameters for TodoCreate""" + input: TodoCreateInput! + ): TodoCreatePayload + 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 + updateBoardList( + """Parameters for UpdateBoardList""" + input: UpdateBoardListInput! + ): UpdateBoardListPayload + updateContainerExpirationPolicy( + """Parameters for UpdateContainerExpirationPolicy""" + input: UpdateContainerExpirationPolicyInput! + ): UpdateContainerExpirationPolicyPayload + + """ + Updates a container registry protection rule to restrict access to project + containers. You can prevent users without certain roles from altering + containers. Available only when feature flag + `container_registry_protected_containers` is enabled. Introduced in GitLab + 16.7: **Status**: Experiment. + """ + updateContainerRegistryProtectionRule( + """Parameters for UpdateContainerRegistryProtectionRule""" + input: UpdateContainerRegistryProtectionRuleInput! + ): UpdateContainerRegistryProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """These settings can be adjusted only by the group Owner.""" + updateDependencyProxyImageTtlGroupPolicy( + """Parameters for UpdateDependencyProxyImageTtlGroupPolicy""" + input: UpdateDependencyProxyImageTtlGroupPolicyInput! + ): UpdateDependencyProxyImageTtlGroupPolicyPayload + + """These settings can be adjusted only by the group Owner.""" + updateDependencyProxySettings( + """Parameters for UpdateDependencyProxySettings""" + input: UpdateDependencyProxySettingsInput! + ): UpdateDependencyProxySettingsPayload + + """ + 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 + + """These settings can be adjusted only by the group Owner.""" + updateNamespacePackageSettings( + """Parameters for UpdateNamespacePackageSettings""" + input: UpdateNamespacePackageSettingsInput! + ): UpdateNamespacePackageSettingsPayload + + """ + Updates a Note. + If the body of the Note contains only quick actions, + the Note will be destroyed during an update, and no Note will be + returned. + + """ + updateNote( + """Parameters for UpdateNote""" + input: UpdateNoteInput! + ): UpdateNotePayload + updatePackagesCleanupPolicy( + """Parameters for UpdatePackagesCleanupPolicy""" + input: UpdatePackagesCleanupPolicyInput! + ): UpdatePackagesCleanupPolicyPayload + + """ + Updates a package protection rule to restrict access to project packages. You + can prevent users without certain permissions from altering packages. + Available only when feature flag `packages_protected_packages` is enabled. + Introduced in GitLab 16.6: **Status**: Experiment. + """ + updatePackagesProtectionRule( + """Parameters for UpdatePackagesProtectionRule""" + input: UpdatePackagesProtectionRuleInput! + ): UpdatePackagesProtectionRulePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + updateSnippet( + """Parameters for UpdateSnippet""" + input: UpdateSnippetInput! + ): UpdateSnippetPayload + + """Deletes an upload.""" + uploadDelete( + """Parameters for UploadDelete""" + input: UploadDeleteInput! + ): UploadDeletePayload + userAchievementPrioritiesUpdate( + """Parameters for UserAchievementPrioritiesUpdate""" + input: UserAchievementPrioritiesUpdateInput! + ): UserAchievementPrioritiesUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + userAchievementsDelete( + """Parameters for UserAchievementsDelete""" + input: UserAchievementsDeleteInput! + ): UserAchievementsDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.") + userCalloutCreate( + """Parameters for UserCalloutCreate""" + input: UserCalloutCreateInput! + ): UserCalloutCreatePayload + userPreferencesUpdate( + """Parameters for UserPreferencesUpdate""" + input: UserPreferencesUpdateInput! + ): UserPreferencesUpdatePayload + userSetNamespaceCommitEmail( + """Parameters for UserSetNamespaceCommitEmail""" + input: UserSetNamespaceCommitEmailInput! + ): UserSetNamespaceCommitEmailPayload + + """ + Adds a closing merge request to a work item Introduced in GitLab 17.1: **Status**: Experiment. + """ + workItemAddClosingMergeRequest( + """Parameters for WorkItemAddClosingMergeRequest""" + input: WorkItemAddClosingMergeRequestInput! + ): WorkItemAddClosingMergeRequestPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + + """ + Add linked items to the work item. Introduced in GitLab 16.3: **Status**: Experiment. + """ + workItemAddLinkedItems( + """Parameters for WorkItemAddLinkedItems""" + input: WorkItemAddLinkedItemsInput! + ): WorkItemAddLinkedItemsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """ + Converts the work item to a new type Introduced in GitLab 15.11: **Status**: Experiment. + """ + workItemConvert( + """Parameters for WorkItemConvert""" + input: WorkItemConvertInput! + ): WorkItemConvertPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + + """ + Creates a work item. Introduced in GitLab 15.1: **Status**: Experiment. + """ + workItemCreate( + """Parameters for WorkItemCreate""" + input: WorkItemCreateInput! + ): WorkItemCreatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") + + """ + Creates a work item from a task in another work item's description. Introduced in GitLab 15.1: **Status**: Experiment. + """ + workItemCreateFromTask( + """Parameters for WorkItemCreateFromTask""" + input: WorkItemCreateFromTaskInput! + ): WorkItemCreateFromTaskPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") + + """ + Deletes a work item. Introduced in GitLab 15.1: **Status**: Experiment. + """ + workItemDelete( + """Parameters for WorkItemDelete""" + input: WorkItemDeleteInput! + ): WorkItemDeletePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") + workItemExport( + """Parameters for WorkItemExport""" + input: WorkItemExportInput! + ): WorkItemExportPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """ + Remove items linked to the work item. Introduced in GitLab 16.3: **Status**: Experiment. + """ + workItemRemoveLinkedItems( + """Parameters for WorkItemRemoveLinkedItems""" + input: WorkItemRemoveLinkedItemsInput! + ): WorkItemRemoveLinkedItemsPayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + workItemSubscribe( + """Parameters for WorkItemSubscribe""" + input: WorkItemSubscribeInput! + ): WorkItemSubscribePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """ + Updates a work item by Global ID. Introduced in GitLab 15.1: **Status**: Experiment. + """ + workItemUpdate( + """Parameters for WorkItemUpdate""" + input: WorkItemUpdateInput! + ): WorkItemUpdatePayload @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") +} + +"""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 { + """ + Achievements for the namespace. Returns `null` if the `achievements` feature + flag is disabled. Introduced in GitLab 15.8: **Status**: Experiment. + """ + achievements( + """Filter achievements by IDs.""" + ids: [AchievementsAchievementID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.8.") + + """ + Path for the namespace's achievements. Returns `null` if the namespace is not + a group, or the `achievements` feature flag is disabled. Introduced in GitLab + 17.0: **Status**: Experiment. + """ + achievementsPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """ + Indicates if the cross_project_pipeline feature is available for the namespace. + """ + crossProjectPipelineAvailable: Boolean! + + """Description of the namespace.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Full name of the namespace.""" + fullName: String! + + """Full path of the namespace.""" + fullPath: ID! + + """ID of the namespace.""" + id: ID! + + """Indicates if Large File Storage (LFS) is enabled for namespace.""" + lfsEnabled: Boolean + + """Name of the namespace.""" + name: String! + + """Package settings for the namespace.""" + packageSettings: PackageSettings + + """List of the namespaces's Pages Deployments.""" + pagesDeployments( + """Filter by active or inactive state.""" + active: Boolean + + """Sort results.""" + sort: Sort + + """ + Filter deployments that are + versioned or unversioned. + """ + versioned: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PagesDeploymentConnection + + """Path of the namespace.""" + path: String! + + """Projects within this namespace.""" + projects( + """Include also subgroup projects.""" + includeSubgroups: Boolean = false + + """Include also archived projects.""" + includeArchived: Boolean = true + + """Include projects that are not aimed for deletion.""" + notAimedForDeletion: Boolean = false + + """Search project with most similar names or paths.""" + search: String = null + + """Sort projects by the criteria.""" + sort: NamespaceProjectSort = null + + """Filter projects by IDs.""" + ids: [ID!] = null + + """Return only projects with issues enabled.""" + withIssuesEnabled: Boolean + + """Return only projects with merge requests enabled.""" + withMergeRequestsEnabled: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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! + + """Indicates if users can request access to namespace.""" + requestAccessEnabled: Boolean + + """ + Aggregated storage statistics of the namespace. Only available for root namespaces. + """ + rootStorageStatistics: RootStorageStatistics + + """Shared runners availability for the namespace and its descendants.""" + sharedRunnersSetting: SharedRunnersSetting + + """ + Timelog categories for the namespace. Introduced in GitLab 15.3: **Status**: Experiment. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.") + + """Visibility of the namespace.""" + visibility: String + + """ + Find a work item by IID directly associated with the namespace(project or + group). Returns `null` for group level work items if the + `namespace_level_work_items` feature flag is disabled. Introduced in GitLab + 16.10: **Status**: Experiment. + """ + workItem( + """IID of the work item.""" + iid: String! + ): WorkItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.") +} + +type NamespaceCommitEmail { + """Timestamp the namespace commit email was created.""" + createdAt: Time! + + """Email.""" + email: Email! + + """Internal ID of the namespace commit email.""" + id: ID! + + """Namespace.""" + namespace: Namespace! + + """Timestamp the namespace commit email was last updated.""" + updatedAt: Time! +} + +"""The connection type for NamespaceCommitEmail.""" +type NamespaceCommitEmailConnection { + """A list of edges.""" + edges: [NamespaceCommitEmailEdge] + + """A list of nodes.""" + nodes: [NamespaceCommitEmail] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type NamespaceCommitEmailEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: NamespaceCommitEmail +} + +"""The connection type for Namespace.""" +type NamespaceConnection { + """A list of edges.""" + edges: [NamespaceEdge] + + """A list of nodes.""" + nodes: [Namespace] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""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 + +"""Values for sorting projects""" +enum NamespaceProjectSort { + """Most similar to the search query.""" + SIMILARITY + + """Sort by latest activity, descending order.""" + ACTIVITY_DESC + + """Sort by total storage size, ascending order.""" + STORAGE_SIZE_ASC + + """Sort by total storage size, descending order.""" + STORAGE_SIZE_DESC +} + +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 +} + +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!] +} + +"""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 +} + +"""Describes where code is deployed for a project organized by folder.""" +type NestedEnvironment { + """Latest environment in the folder.""" + environment: Environment + + """Human-readable name of the environment.""" + name: String! + + """Number of environments nested in the folder.""" + size: Int! +} + +"""The connection type for NestedEnvironment.""" +type NestedEnvironmentConnection { + """A list of edges.""" + edges: [NestedEnvironmentEdge] + + """A list of nodes.""" + nodes: [NestedEnvironment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type NestedEnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: NestedEnvironment +} + +type Note implements ResolvableInterface { + """User who wrote the note.""" + author: UserCore + + """Indicates whether the note author is a contributor.""" + authorIsContributor: Boolean + + """List of emoji reactions associated with the note.""" + awardEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AwardEmojiConnection + + """Content of the note.""" + body: String! + + """First line of the note content.""" + bodyFirstLineHtml: String! + + """GitLab Flavored Markdown rendering of the content of the note.""" + bodyHtml: String + + """Timestamp of the note creation.""" + createdAt: Time! + + """Discussion the note is a part of.""" + discussion: Discussion + + """ID of the note.""" + id: NoteID! + + """Indicates whether the note was imported.""" + imported: Boolean + + """Indicates if the note is internal.""" + internal: Boolean + + """Timestamp when note was last edited.""" + lastEditedAt: Time + + """User who last edited the note.""" + lastEditedBy: UserCore + + """Max access level of the note author in the project.""" + maxAccessLevelOfAuthor: String + + """Position of the note on a diff.""" + position: DiffPosition + + """Project associated with the note.""" + project: Project + + """Indicates if the object can be resolved.""" + resolvable: Boolean! + + """Indicates if the object is resolved.""" + resolved: Boolean! + + """Timestamp of when the object was resolved.""" + resolvedAt: Time + + """User who resolved the object.""" + resolvedBy: UserCore + + """Indicates whether the note was created by the system or by a user.""" + system: Boolean! + + """Name of the icon corresponding to a system note.""" + systemNoteIconName: String + + """Metadata for the given note if it is a system note.""" + systemNoteMetadata: SystemNoteMetadata + + """Timestamp of the note's last activity.""" + updatedAt: Time! + + """URL to view the note in the Web UI.""" + url: String + + """Permissions for the current user on the resource""" + userPermissions: NotePermissions! +} + +""" +A `NoteableID` is a global ID. It is encoded as a string. + +An example `NoteableID` is: `"gid://gitlab/Noteable/1"`. +""" +scalar NoteableID + +interface NoteableInterface { + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """All discussions on 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( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! +} + +"""Represents an object that supports notes.""" +union NoteableType = Design | Issue | MergeRequest + +"""The connection type for Note.""" +type NoteConnection { + """Total count of collection.""" + count: Int! + + """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 { + """If `true`, the user can perform `admin_note` on this resource""" + adminNote: Boolean! + + """If `true`, the user can perform `award_emoji` on this resource""" + awardEmoji: Boolean! + + """If `true`, the user can perform `create_note` on this resource""" + createNote: Boolean! + + """If `true`, the user can perform `read_note` on this resource""" + readNote: Boolean! + + """If `true`, the user can perform `reposition_note` on this resource""" + repositionNote: Boolean! + + """If `true`, the user can perform `resolve_note` on this resource""" + resolveNote: Boolean! +} + +"""Work item notes collection type.""" +enum NotesFilterType { + """Show all activity""" + ALL_NOTES + + """Show comments only""" + ONLY_COMMENTS + + """Show history only""" + ONLY_ACTIVITY +} + +"""Nuget dependency link metadata""" +type NugetDependencyLinkMetadata { + """ID of the metadatum.""" + id: PackagesNugetDependencyLinkMetadatumID! + + """Target framework of the dependency link package.""" + targetFramework: String! +} + +"""Nuget metadata""" +type NugetMetadata { + """Icon URL of the Nuget package.""" + iconUrl: String + + """ID of the metadatum.""" + id: PackagesNugetMetadatumID! + + """License URL of the Nuget package.""" + licenseUrl: String + + """Project URL of the Nuget package.""" + projectUrl: String +} + +type Organization { + """ + Avatar URL of the organization. Introduced in GitLab 16.7: **Status**: Experiment. + """ + avatarUrl: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """ + Description of the organization. Introduced in GitLab 16.7: **Status**: Experiment. + """ + description: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """ + GitLab Flavored Markdown rendering of `description` Introduced in GitLab 16.7: **Status**: Experiment. + """ + descriptionHtml: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """ + Groups within this organization that the user has access to. Introduced in GitLab 16.4: **Status**: Experiment. + """ + groups( + """Search query for group name or group full path.""" + search: String + + """ + Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc` + """ + sort: String = "name_asc" + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + ID of the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Name of the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + name: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Users with access to the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + organizationUsers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationUserConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Path of the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + path: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Projects within this organization that the user has access to. Introduced in GitLab 16.8: **Status**: Experiment. + """ + projects( + """Return only projects that the current user is a member of.""" + membership: Boolean + + """ + Search query, which can be for the project name, a path, or a description. + """ + search: String + + """Include namespace in project search.""" + searchNamespaces: Boolean + + """Filter projects by topics.""" + topics: [String!] + + """Return only personal projects.""" + personal: Boolean + + """ + Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc` + """ + sort: String = "id_desc" + + """Filter projects by IDs.""" + ids: [ID!] + + """ + Filter projects by full paths. You cannot provide more than 50 full paths. + """ + fullPaths: [String!] + + """Return only projects with issues enabled.""" + withIssuesEnabled: Boolean + + """Return only projects with merge requests enabled.""" + withMergeRequestsEnabled: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.") + + """ + Web URL of the organization. Introduced in GitLab 16.6: **Status**: Experiment. + """ + webUrl: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") +} + +"""The connection type for Organization.""" +type OrganizationConnection { + """A list of edges.""" + edges: [OrganizationEdge] + + """A list of nodes.""" + nodes: [Organization] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of OrganizationCreate""" +input OrganizationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Description of the organization.""" + description: String + + """Avatar for the organization.""" + avatar: Upload + + """Name for the organization.""" + name: String! + + """Path for the organization.""" + path: String! +} + +"""Autogenerated return type of OrganizationCreate.""" +type OrganizationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Organization after mutation.""" + organization: Organization +} + +"""An edge in a connection.""" +type OrganizationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Organization +} + +""" +A `OrganizationsOrganizationID` is a global ID. It is encoded as a string. + +An example `OrganizationsOrganizationID` is: `"gid://gitlab/Organizations::Organization/1"`. +""" +scalar OrganizationsOrganizationID + +"""Values for sorting organizations""" +enum OrganizationSort { + """Name in ascending order.""" + NAME_ASC + + """Name in descending order.""" + NAME_DESC + + """Description in ascending order.""" + DESCRIPTION_ASC + + """Description in descending order.""" + DESCRIPTION_DESC + + """Default Rate in ascending order.""" + DEFAULT_RATE_ASC + + """Default Rate in descending order.""" + DEFAULT_RATE_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +""" +Represents the total number of organizations for the represented states. +""" +type OrganizationStateCounts { + """Number of organizations with state `ACTIVE`""" + active: Int + + """Number of organizations with state `ALL`""" + all: Int + + """Number of organizations with state `INACTIVE`""" + inactive: Int +} + +"""Autogenerated input type of OrganizationUpdate""" +input OrganizationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Description of the organization.""" + description: String + + """Avatar for the organization.""" + avatar: Upload + + """ID of the organization to mutate.""" + id: OrganizationsOrganizationID! + + """Name for the organization.""" + name: String + + """Path for the organization.""" + path: String +} + +"""Autogenerated return type of OrganizationUpdate.""" +type OrganizationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Organization after mutation.""" + organization: Organization +} + +"""A user with access to the organization.""" +type OrganizationUser { + """ + Access level of the user in the organization. Introduced in GitLab 16.11: **Status**: Experiment. + """ + accessLevel: OrganizationUserAccess! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """ + Badges describing the user within the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + badges: [OrganizationUserBadge!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + ID of the organization user. Introduced in GitLab 16.4: **Status**: Experiment. + """ + id: ID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """ + Whether the user is the last owner of the organization. Introduced in GitLab 16.11: **Status**: Experiment. + """ + isLastOwner: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """ + User that is associated with the organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + user: UserCore! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """Permissions for the current user on the resource""" + userPermissions: OrganizationUserPermissions! +} + +""" +Represents the access level of a relationship between a User and Organization that it is related to +""" +type OrganizationUserAccess { + """ + Integer representation of access level. Introduced in GitLab 16.11: **Status**: Experiment. + """ + integerValue: Int @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """ + String representation of access level. Introduced in GitLab 16.11: **Status**: Experiment. + """ + stringValue: OrganizationUserAccessLevel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") +} + +"""Access level of an organization user""" +enum OrganizationUserAccessLevel { + """Guest access. Introduced in GitLab 16.11: **Status**: Experiment.""" + DEFAULT @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """Owner access. Introduced in GitLab 16.11: **Status**: Experiment.""" + OWNER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") +} + +"""An organization user badge.""" +type OrganizationUserBadge { + """Badge text.""" + text: String! + + """Badge variant.""" + variant: String! +} + +"""The connection type for OrganizationUser.""" +type OrganizationUserConnection { + """A list of edges.""" + edges: [OrganizationUserEdge] + + """A list of nodes.""" + nodes: [OrganizationUser] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type OrganizationUserEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: OrganizationUser +} + +type OrganizationUserPermissions { + """If `true`, the user can perform `delete_user` on this resource""" + deleteUser: Boolean! + + """If `true`, the user can perform `remove_user` on this resource""" + removeUser: Boolean! +} + +"""Represents a package with pipelines in the Package Registry""" +type Package { + """Map of links to perform actions on the package.""" + _links: PackageLinks! + + """Date of creation.""" + createdAt: Time! + + """ID of the package.""" + id: PackagesPackageID! + + """Package metadata.""" + metadata: PackageMetadata + + """Name of the package.""" + name: String! + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Deprecated in GitLab 17.0: Use `protectionRuleExists`. + """ + packageProtectionRuleExists: Boolean! @deprecated(reason: "Use `protectionRuleExists`. Deprecated in GitLab 17.0.") + + """Package type.""" + packageType: PackageTypeEnum! + + """ + Pipelines that built the package. Max page size 20. + + """ + pipelines( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Project where the package is stored.""" + project: Project! + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Introduced in GitLab 17.0: **Status**: Experiment. + """ + protectionRuleExists: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Package status.""" + status: PackageStatus! + + """Status message.""" + statusMessage: String + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: PackagePermissions! + + """Version string.""" + version: String +} + +"""Represents a package in the Package Registry""" +type PackageBase { + """Map of links to perform actions on the package.""" + _links: PackageLinks! + + """Date of creation.""" + createdAt: Time! + + """ID of the package.""" + id: PackagesPackageID! + + """Package metadata.""" + metadata: PackageMetadata + + """Name of the package.""" + name: String! + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Deprecated in GitLab 17.0: Use `protectionRuleExists`. + """ + packageProtectionRuleExists: Boolean! @deprecated(reason: "Use `protectionRuleExists`. Deprecated in GitLab 17.0.") + + """Package type.""" + packageType: PackageTypeEnum! + + """Project where the package is stored.""" + project: Project! + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Introduced in GitLab 17.0: **Status**: Experiment. + """ + protectionRuleExists: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Package status.""" + status: PackageStatus! + + """Status message.""" + statusMessage: String + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: PackagePermissions! + + """Version string.""" + version: String +} + +"""The connection type for PackageBase.""" +type PackageBaseConnection { + """Total count of collection.""" + 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 { + """Map of links to perform actions on the package.""" + _links: PackageLinks! + + """Url of the Composer setup endpoint.""" + composerConfigRepositoryUrl: String + + """Url of the Composer endpoint.""" + composerUrl: String + + """Url of the Conan project endpoint.""" + conanUrl: String + + """Date of creation.""" + createdAt: Time! + + """Dependency link.""" + dependencyLinks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageDependencyLinkConnection + + """ID of the package.""" + id: PackagesPackageID! + + """Last time that a file of 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 + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Deprecated in GitLab 17.0: Use `protectionRuleExists`. + """ + packageProtectionRuleExists: Boolean! @deprecated(reason: "Use `protectionRuleExists`. Deprecated in GitLab 17.0.") + + """Package type.""" + packageType: PackageTypeEnum! + + """ + Pipelines that built the package. Max page size 20. + + """ + pipelines( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Project where the package is stored.""" + project: Project! + + """ + Whether any matching package protection rule exists for this package. + Available only when feature flag `packages_protected_packages` is enabled. + Introduced in GitLab 17.0: **Status**: Experiment. + """ + protectionRuleExists: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Indicates if there is public access to the package.""" + publicPackage: Boolean + + """Url of the PyPi project setup endpoint.""" + pypiSetupUrl: String + + """Url of the PyPi project endpoint.""" + pypiUrl: String + + """Package status.""" + status: PackageStatus! + + """Status message.""" + statusMessage: String + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: PackagePermissions! + + """Version string.""" + version: String + + """Other versions of the package.""" + versions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageBaseConnection +} + +"""An edge in a connection.""" +type PackageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Package +} + +"""Represents a package file""" +type PackageFile { + """Created date.""" + createdAt: Time! + + """Download path of the package file.""" + downloadPath: String! + + """Md5 of the package file.""" + fileMd5: String + + """File metadata.""" + fileMetadata: PackageFileMetadata + + """Name of the package file.""" + fileName: String! + + """Sha1 of the package file.""" + fileSha1: String + + """Sha256 of the package file.""" + fileSha256: String + + """ID of the file.""" + id: PackagesPackageFileID! + + """Size of the package file.""" + size: String! + + """Updated date.""" + updatedAt: Time! +} + +"""The connection type for PackageFile.""" +type PackageFileConnection { + """A list of edges.""" + edges: [PackageFileEdge] + + """A list of nodes.""" + nodes: [PackageFile] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageFileEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageFile +} + +"""Represents metadata associated with a Package file""" +interface PackageFileMetadata { + """Date of creation.""" + createdAt: Time! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Values for sorting group packages""" +enum PackageGroupSort { + """Ordered by project path in descending order.""" + PROJECT_PATH_DESC + + """Ordered by project path in ascending order.""" + PROJECT_PATH_ASC + + """Ordered by created_at in descending order.""" + CREATED_DESC + + """Ordered by created_at in ascending order.""" + CREATED_ASC + + """Ordered by name in descending order.""" + NAME_DESC + + """Ordered by name in ascending order.""" + NAME_ASC + + """Ordered by version in descending order.""" + VERSION_DESC + + """Ordered by version in ascending order.""" + VERSION_ASC + + """Ordered by type in descending order.""" + TYPE_DESC + + """Ordered by type in ascending order.""" + TYPE_ASC +} + +"""Represents a Helm dependency""" +type PackageHelmDependencyType { + """Alias of the dependency.""" + alias: String + + """Condition of the dependency.""" + condition: String + + """Indicates the dependency is enabled.""" + enabled: Boolean + + """Import-values of the dependency.""" + importValues: [JSON!] + + """Name of the dependency.""" + name: String + + """Repository of the dependency.""" + repository: String + + """Tags of the dependency.""" + tags: [String!] + + """Version of the dependency.""" + version: String +} + +"""Represents a Helm maintainer""" +type PackageHelmMaintainerType { + """Email of the maintainer.""" + email: String + + """Name of the maintainer.""" + name: String + + """URL of the maintainer.""" + url: String +} + +"""Represents the contents of a Helm Chart.yml file""" +type PackageHelmMetadataType { + """Annotations for the chart.""" + annotations: JSON + + """API version of the chart.""" + apiVersion: String! + + """App version of the chart.""" + appVersion: String + + """Condition for the chart.""" + condition: String + + """Dependencies of the chart.""" + dependencies: [PackageHelmDependencyType!] + + """Indicates if the chart is deprecated.""" + deprecated: Boolean + + """Description of the chart.""" + description: String + + """URL of the home page.""" + home: String + + """URL to an SVG or PNG image for the chart.""" + icon: String + + """Keywords for the chart.""" + keywords: [String!] + + """Kubernetes versions for the chart.""" + kubeVersion: String + + """Maintainers of the chart.""" + maintainers: [PackageHelmMaintainerType!] + + """Name of the chart.""" + name: String! + + """URLs of the source code for the chart.""" + sources: [String!] + + """Tags for the chart.""" + tags: String + + """Type of the chart.""" + type: String + + """Version of the chart.""" + version: String! +} + +"""Represents links to perform actions on the package""" +type PackageLinks { + """Path to the package details page.""" + webPath: String +} + +"""Represents metadata associated with a Package""" +union PackageMetadata = ComposerMetadata | ConanMetadata | MavenMetadata | NugetMetadata | PypiMetadata + +type PackagePermissions { + """If `true`, the user can perform `destroy_package` on this resource""" + destroyPackage: Boolean! +} + +enum PackagesCleanupKeepDuplicatedPackageFilesEnum { + """Value to keep all package files""" + ALL_PACKAGE_FILES + + """Value to keep 1 package files""" + ONE_PACKAGE_FILE + + """Value to keep 10 package files""" + TEN_PACKAGE_FILES + + """Value to keep 20 package files""" + TWENTY_PACKAGE_FILES + + """Value to keep 30 package files""" + THIRTY_PACKAGE_FILES + + """Value to keep 40 package files""" + FORTY_PACKAGE_FILES + + """Value to keep 50 package files""" + FIFTY_PACKAGE_FILES +} + +""" +A packages cleanup policy designed to keep only packages and packages assets that matter most +""" +type PackagesCleanupPolicy { + """Number of duplicated package files to retain.""" + keepNDuplicatedPackageFiles: PackagesCleanupKeepDuplicatedPackageFilesEnum! + + """Next time that 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! + + """ + Indicates whether Maven package forwarding is locked for all descendent namespaces. + """ + lockMavenPackageRequestsForwarding: Boolean! + + """ + Indicates whether npm package forwarding is locked for all descendent namespaces. + """ + lockNpmPackageRequestsForwarding: Boolean! + + """ + Indicates whether PyPI package forwarding is locked for all descendent namespaces. + """ + lockPypiPackageRequestsForwarding: Boolean! + + """ + When maven_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + mavenDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Maven packages are allowed for this namespace. + """ + mavenDuplicatesAllowed: Boolean! + + """ + Indicates whether Maven package forwarding is allowed for this namespace. + """ + mavenPackageRequestsForwarding: Boolean + + """ + Indicates whether Maven package forwarding settings are locked by a parent namespace. + """ + mavenPackageRequestsForwardingLocked: Boolean! + + """ + Indicates whether npm package forwarding is allowed for this namespace. + """ + npmPackageRequestsForwarding: Boolean + + """ + Indicates whether npm package forwarding settings are locked by a parent namespace. + """ + npmPackageRequestsForwardingLocked: Boolean! + + """ + When nuget_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + nugetDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate NuGet packages are allowed for this namespace. + """ + nugetDuplicatesAllowed: Boolean! + + """ + Indicates wheather the NuGet symbol server is enabled for this namespace. + """ + nugetSymbolServerEnabled: Boolean! + + """ + Indicates whether PyPI package forwarding is allowed for this namespace. + """ + pypiPackageRequestsForwarding: Boolean + + """ + Indicates whether PyPI package forwarding settings are locked by a parent namespace. + """ + pypiPackageRequestsForwardingLocked: Boolean! + + """ + When terraform_module_duplicates_allowed is false, you can publish duplicate + packages with names that match this regex. Otherwise, this setting has no effect. + """ + terraformModuleDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Terraform packages are allowed for this namespace. + """ + terraformModuleDuplicatesAllowed: 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 packages protection rule designed to protect packages from being pushed by users with a certain access level. +""" +type PackagesProtectionRule { + """ + ID of the package protection rule. Introduced in GitLab 16.5: **Status**: Experiment. + """ + id: PackagesProtectionRuleID! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """ + Minimum GitLab access required to push packages to the package registry. For + example, `MAINTAINER`, `OWNER`, or `ADMIN`. Introduced in GitLab 16.5: + **Status**: Experiment. + """ + minimumAccessLevelForPush: PackagesProtectionRuleAccessLevel! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """ + Package name protected by the protection rule. For example + `@my-scope/my-package-*`. Wildcard character `*` allowed. Introduced in GitLab + 16.5: **Status**: Experiment. + """ + packageNamePattern: String! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """ + Package type protected by the protection rule. For example `NPM`. Introduced in GitLab 16.5: **Status**: Experiment. + """ + packageType: PackagesProtectionRulePackageType! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") +} + +"""Access level of a package protection rule resource""" +enum PackagesProtectionRuleAccessLevel { + """Maintainer access. Introduced in GitLab 16.5: **Status**: Experiment.""" + MAINTAINER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """Owner access. Introduced in GitLab 16.5: **Status**: Experiment.""" + OWNER @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """Admin access. Introduced in GitLab 16.5: **Status**: Experiment.""" + ADMIN @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") +} + +"""The connection type for PackagesProtectionRule.""" +type PackagesProtectionRuleConnection { + """A list of edges.""" + edges: [PackagesProtectionRuleEdge] + + """A list of nodes.""" + nodes: [PackagesProtectionRule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackagesProtectionRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackagesProtectionRule +} + +""" +A `PackagesProtectionRuleID` is a global ID. It is encoded as a string. + +An example `PackagesProtectionRuleID` is: `"gid://gitlab/Packages::Protection::Rule/1"`. +""" +scalar PackagesProtectionRuleID + +"""Package type of a package protection rule resource""" +enum PackagesProtectionRulePackageType { + """ + Packages of the npm format Introduced in GitLab 16.5: **Status**: Experiment. + """ + NPM @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") +} + +""" +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 + + """Packages from the Ml_model package manager""" + ML_MODEL +} + +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +"""Represents a pages deployment.""" +type PagesDeployment { + """Whether the deployment is currently active.""" + active: Boolean! + + """ID of the CI build that created the deployment.""" + ciBuildId: ID + + """Time the deployment was created.""" + createdAt: ISO8601DateTime! + + """Time the deployment was deleted.""" + deletedAt: ISO8601DateTime + + """Number of files that were published with the deployment.""" + fileCount: Int + + """ID of the Pages Deployment.""" + id: ID! + + """URL path Prefix that points to the deployment.""" + pathPrefix: String + + """Project the deployment belongs to.""" + project: Project! + + """ + Path within the build assets that functions as the root directory for Pages sites. + """ + rootDirectory: String + + """Size of the storage used.""" + size: Int + + """Time the deployment was last updated.""" + updatedAt: ISO8601DateTime! + + """Publicly accessible URL of the deployment.""" + url: String! +} + +"""The connection type for PagesDeployment.""" +type PagesDeploymentConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PagesDeploymentEdge] + + """A list of nodes.""" + nodes: [PagesDeployment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PagesDeploymentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PagesDeployment +} + +""" +A `PagesDeploymentID` is a global ID. It is encoded as a string. + +An example `PagesDeploymentID` is: `"gid://gitlab/PagesDeployment/1"`. +""" +scalar PagesDeploymentID + +"""Autogenerated input type of PagesMarkOnboardingComplete""" +input PagesMarkOnboardingCompleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! +} + +"""Autogenerated return type of PagesMarkOnboardingComplete.""" +type PagesMarkOnboardingCompletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Indicates the new onboarding_complete state of the project's Pages metadata. + """ + onboardingComplete: Boolean! +} + +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! + + """If the pipeline is a child or not""" + child: Boolean! + + """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, + SECURITY_POLICIES_DEFAULT_SOURCE, PIPELINE_EXECUTION_POLICY_FORCED) + """ + configSource: PipelineConfigSourceEnum + + """Coverage percentage.""" + coverage: Float + + """Timestamp of the pipeline's creation.""" + createdAt: Time! + + """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 + + """The reason why the pipeline failed""" + failureReason: String + + """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 + + """Filter jobs by when they are executed.""" + whenExecuted: [String!] + + """Filter jobs by kind.""" + jobKind: CiJobKind + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """If the pipeline is the latest one or not""" + latest: Boolean! + + """The MR which the Pipeline is attached to""" + mergeRequest: MergeRequest + + """Event type of the pipeline associated with a merge request.""" + mergeRequestEventType: PipelineMergeRequestEventType + + """Name of the pipeline.""" + name: String + + """Relative path to the pipeline's page.""" + path: String + + """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 + + """The reference text from the presenter""" + refText: String! + + """Specifies if a pipeline's jobs can be retried.""" + retryable: Boolean! + + """SHA of the pipeline's commit.""" + sha( + """Format of the SHA.""" + format: ShaFormat + ): String + + """The source of the pipeline""" + source: String + + """Job where pipeline was triggered from.""" + sourceJob: CiJob + + """Stages of the pipeline.""" + stages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiStageConnection + + """Timestamp when the pipeline was started.""" + startedAt: Time + + """ + Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, + WAITING_FOR_CALLBACK, PENDING, RUNNING, FAILED, SUCCESS, CANCELED, CANCELING, + SKIPPED, MANUAL, SCHEDULED) + """ + status: PipelineStatusEnum! + + """If the pipeline is stuck.""" + stuck: Boolean! + + """Summary of the test report generated by the pipeline.""" + testReportSummary: TestReportSummary! + + """A specific test suite in a pipeline test report.""" + testSuite( + """IDs of the builds used to run the test suite.""" + buildIds: [ID!]! + ): TestSuite + + """The total number of jobs in the pipeline""" + totalJobs: Int! + + """If the pipeline was created by a Trigger request.""" + trigger: Boolean! + + """The path that triggered this pipeline""" + triggeredByPath: String + + """Timestamp of the pipeline's last activity.""" + updatedAt: Time! + + """Pipeline that triggered the pipeline.""" + upstream: Pipeline + + """Pipeline user.""" + user: UserCore + + """Permissions for the current user on the resource""" + userPermissions: PipelinePermissions! + + """Indicates if the pipeline has jobs with `needs` dependencies.""" + usesNeeds: Boolean + + """Pipeline warning messages.""" + warningMessages: [PipelineMessage!] + + """Indicates if a pipeline has warnings.""" + warnings: Boolean! + + """The pipeline YAML errors.""" + yamlErrorMessages: String + + """If the pipeline has YAML errors.""" + yamlErrors: 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!] +} + +"""Autogenerated input type of PipelineCancel""" +input PipelineCancelInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline to mutate.""" + id: CiPipelineID! +} + +"""Autogenerated return type of PipelineCancel.""" +type PipelineCancelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 + + """Security policies default source.""" + SECURITY_POLICIES_DEFAULT_SOURCE + + """Pipeline execution policy forced.""" + PIPELINE_EXECUTION_POLICY_FORCED +} + +"""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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline to mutate.""" + id: CiPipelineID! +} + +"""Autogenerated return type of PipelineDestroy.""" +type PipelineDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 +} + +type PipelineMessage { + """Content of the pipeline message.""" + content: String! + + """ID of the pipeline message.""" + id: ID! +} + +type PipelinePermissions { + """If `true`, the user can perform `admin_pipeline` on this resource""" + adminPipeline: Boolean! + + """If `true`, the user can perform `cancel_pipeline` on this resource""" + cancelPipeline: Boolean! + + """If `true`, the user can perform `destroy_pipeline` on this resource""" + destroyPipeline: Boolean! + + """If `true`, the user can perform `update_pipeline` on this resource""" + updatePipeline: Boolean! +} + +"""Autogenerated input type of PipelineRetry""" +input PipelineRetryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline to mutate.""" + id: CiPipelineID! +} + +"""Autogenerated return type of PipelineRetry.""" +type PipelineRetryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Pipeline after mutation.""" + pipeline: Pipeline +} + +"""Represents a pipeline schedule""" +type PipelineSchedule { + """Indicates if the pipeline schedule is active.""" + active: Boolean! + + """Timestamp of when the pipeline schedule was created.""" + createdAt: Time! + + """Cron notation for the schedule.""" + cron: String! + + """Timezone for the pipeline schedule.""" + cronTimezone: String! + + """Description of the pipeline schedule.""" + description: String + + """Edit path of the pipeline schedule.""" + editPath: String + + """Indicates if a pipelines schedule belongs to a tag.""" + forTag: Boolean! + + """ID of the pipeline schedule.""" + id: ID! + + """Last pipeline object.""" + lastPipeline: Pipeline + + """Time when the next pipeline will run.""" + nextRunAt: Time + + """Owner of the pipeline schedule.""" + owner: UserCore + + """Project of the pipeline schedule.""" + project: Project + + """Time when the next pipeline will run.""" + realNextRun: Time + + """Ref of the pipeline schedule.""" + ref: String + + """Git ref for the pipeline schedule.""" + refForDisplay: String + + """Path to the ref that triggered the pipeline.""" + refPath: String + + """Timestamp of when the pipeline schedule was last updated.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: PipelineSchedulePermissions! + + """Pipeline schedule variables.""" + variables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineScheduleVariableConnection +} + +"""The connection type for PipelineSchedule.""" +type PipelineScheduleConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PipelineScheduleEdge] + + """A list of nodes.""" + nodes: [PipelineSchedule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of PipelineScheduleCreate""" +input PipelineScheduleCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project the pipeline schedule is associated with.""" + projectPath: ID! + + """Description of the pipeline schedule.""" + description: String! + + """Cron expression of the pipeline schedule.""" + cron: String! + + """ + Cron time zone supported by ActiveSupport::TimeZone. + For example: "Pacific Time (US & Canada)" (default: "UTC"). + + """ + cronTimezone: String + + """Ref of the pipeline schedule.""" + ref: String! + + """Indicates if the pipeline schedule should be active or not.""" + active: Boolean + + """Variables for the pipeline schedule.""" + variables: [PipelineScheduleVariableInput!] +} + +"""Autogenerated return type of PipelineScheduleCreate.""" +type PipelineScheduleCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created pipeline schedule.""" + pipelineSchedule: PipelineSchedule +} + +"""Autogenerated input type of PipelineScheduleDelete""" +input PipelineScheduleDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline schedule to mutate.""" + id: CiPipelineScheduleID! +} + +"""Autogenerated return type of PipelineScheduleDelete.""" +type PipelineScheduleDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type PipelineScheduleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineSchedule +} + +type PipelineSchedulePermissions { + """ + If `true`, the user can perform `admin_pipeline_schedule` on this resource + """ + adminPipelineSchedule: Boolean! + + """ + If `true`, the user can perform `play_pipeline_schedule` on this resource + """ + playPipelineSchedule: Boolean! + + """ + If `true`, the user can perform `take_ownership_pipeline_schedule` on this + resource Deprecated in GitLab 15.9: Use admin_pipeline_schedule permission to + determine if the user can take ownership of a pipeline schedule. + """ + takeOwnershipPipelineSchedule: Boolean! @deprecated(reason: "Use admin_pipeline_schedule permission to determine if the user can take ownership of a pipeline schedule. Deprecated in GitLab 15.9.") + + """ + If `true`, the user can perform `update_pipeline_schedule` on this resource + """ + updatePipelineSchedule: Boolean! +} + +"""Autogenerated input type of PipelineSchedulePlay""" +input PipelineSchedulePlayInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline schedule to mutate.""" + id: CiPipelineScheduleID! +} + +"""Autogenerated return type of PipelineSchedulePlay.""" +type PipelineSchedulePlayPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Pipeline schedule after mutation.""" + pipelineSchedule: PipelineSchedule +} + +"""Values for sorting pipeline schedules.""" +enum PipelineScheduleSort { + """Sort pipeline schedules by ID in descending order.""" + ID_DESC + + """Sort pipeline schedules by ID in ascending order.""" + ID_ASC + + """Sort pipeline schedules by description in descending order.""" + DESCRIPTION_DESC + + """Sort pipeline schedules by description in ascending order.""" + DESCRIPTION_ASC + + """Sort pipeline schedules by target in descending order.""" + REF_DESC + + """Sort pipeline schedules by target in ascending order.""" + REF_ASC + + """Sort pipeline schedules by next run in descending order.""" + NEXT_RUN_AT_DESC + + """Sort pipeline schedules by next run in ascending order.""" + NEXT_RUN_AT_ASC + + """Sort pipeline schedules by created date in descending order.""" + CREATED_AT_DESC + + """Sort pipeline schedules by created date in ascending order.""" + CREATED_AT_ASC + + """Sort pipeline schedules by updated date in descending order.""" + UPDATED_AT_DESC + + """Sort pipeline schedules by updated date in ascending order.""" + UPDATED_AT_ASC +} + +enum PipelineScheduleStatus { + """Active pipeline schedules.""" + ACTIVE + + """Inactive pipeline schedules.""" + INACTIVE +} + +"""Autogenerated input type of PipelineScheduleTakeOwnership""" +input PipelineScheduleTakeOwnershipInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline schedule to mutate.""" + id: CiPipelineScheduleID! +} + +"""Autogenerated return type of PipelineScheduleTakeOwnership.""" +type PipelineScheduleTakeOwnershipPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated pipeline schedule ownership.""" + pipelineSchedule: PipelineSchedule +} + +"""Autogenerated input type of PipelineScheduleUpdate""" +input PipelineScheduleUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline schedule to mutate.""" + id: CiPipelineScheduleID! + + """Description of the pipeline schedule.""" + description: String + + """Cron expression of the pipeline schedule.""" + cron: String + + """ + Cron time zone supported by ActiveSupport::TimeZone. + For example: "Pacific Time (US & Canada)" (default: "UTC"). + + """ + cronTimezone: String + + """Ref of the pipeline schedule.""" + ref: String + + """Indicates if the pipeline schedule should be active or not.""" + active: Boolean + + """Variables for the pipeline schedule.""" + variables: [PipelineScheduleVariableInput!] +} + +"""Autogenerated return type of PipelineScheduleUpdate.""" +type PipelineScheduleUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated pipeline schedule.""" + pipelineSchedule: PipelineSchedule +} + +type PipelineScheduleVariable implements CiVariable { + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for PipelineScheduleVariable.""" +type PipelineScheduleVariableConnection { + """A list of edges.""" + edges: [PipelineScheduleVariableEdge] + + """A list of nodes.""" + nodes: [PipelineScheduleVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PipelineScheduleVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineScheduleVariable +} + +"""Attributes for the pipeline schedule variable.""" +input PipelineScheduleVariableInput { + """ID of the variable to mutate.""" + id: CiPipelineScheduleVariableID + + """Name of the variable.""" + key: String! + + """Value of the variable.""" + value: String! + + """Type of the variable.""" + variableType: CiVariableType! + + """Boolean option to destroy the variable.""" + destroy: Boolean +} + +enum PipelineScopeEnum { + """Pipeline is running.""" + RUNNING + + """Pipeline has not started running yet.""" + PENDING + + """Pipeline has completed.""" + FINISHED + + """Branches.""" + BRANCHES + + """Tags.""" + TAGS +} + +enum PipelineStatusEnum { + """Pipeline has been created.""" + CREATED + + """ + A resource (for example, a runner) that the pipeline requires to run is unavailable. + """ + WAITING_FOR_RESOURCE + + """Pipeline is preparing to run.""" + PREPARING + + """Pipeline is waiting for an external action.""" + WAITING_FOR_CALLBACK + + """Pipeline has not started running yet.""" + PENDING + + """Pipeline is running.""" + RUNNING + + """At least one stage of the pipeline failed.""" + FAILED + + """Pipeline completed successfully.""" + SUCCESS + + """Pipeline is in the process of canceling.""" + CANCELING + + """Pipeline was canceled before completion.""" + CANCELED + + """Pipeline was skipped.""" + SKIPPED + + """Pipeline needs to be manually started.""" + MANUAL + + """Pipeline is scheduled to run.""" + SCHEDULED +} + +type PipelineTrigger { + """Indicates if the pipeline trigger token has access to the project.""" + canAccessProject: Boolean! + + """Description of the pipeline trigger token.""" + description: String + + """Indicates if the token is exposed.""" + hasTokenExposed: Boolean! + + """ID of the pipeline trigger token.""" + id: ID! + + """Timestamp of the last usage of the pipeline trigger token.""" + lastUsed: Time + + """Owner of the pipeline trigger token.""" + owner: UserCore! + + """Value of the pipeline trigger token.""" + token: String! +} + +"""The connection type for PipelineTrigger.""" +type PipelineTriggerConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PipelineTriggerEdge] + + """A list of nodes.""" + nodes: [PipelineTrigger] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of PipelineTriggerCreate""" +input PipelineTriggerCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Full path of the project that the pipeline trigger token to mutate is in. + """ + projectPath: ID! + + """Description of the pipeline trigger token.""" + description: String! +} + +"""Autogenerated return type of PipelineTriggerCreate.""" +type PipelineTriggerCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Mutated pipeline trigger token.""" + pipelineTrigger: PipelineTrigger +} + +"""Autogenerated input type of PipelineTriggerDelete""" +input PipelineTriggerDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline trigger token to delete.""" + id: CiTriggerID! +} + +"""Autogenerated return type of PipelineTriggerDelete.""" +type PipelineTriggerDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type PipelineTriggerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineTrigger +} + +"""Autogenerated input type of PipelineTriggerUpdate""" +input PipelineTriggerUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the pipeline trigger token to update.""" + id: CiTriggerID! + + """Description of the pipeline trigger token.""" + description: String! +} + +"""Autogenerated return type of PipelineTriggerUpdate.""" +type PipelineTriggerUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Mutated pipeline trigger token.""" + pipelineTrigger: PipelineTrigger +} + +type Project { + """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 the criteria.""" + sort: AlertManagementAlertSort + + """Filter query for given domain.""" + domain: AlertManagementDomainFilter! = operations + + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + ): AlertManagementAlert + + """Counts of alerts by status for the project.""" + alertManagementAlertStatusCounts( + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + ): AlertManagementAlertStatusCountsType + + """Alert Management alerts of the project.""" + alertManagementAlerts( + """IID of the alert. For example, "1".""" + iid: String + + """Alerts with the specified statues. For example, `[TRIGGERED]`.""" + statuses: [AlertManagementStatus!] + + """Sort alerts by the criteria.""" + sort: AlertManagementAlertSort + + """Filter query for given domain.""" + domain: AlertManagementDomainFilter! = operations + + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AlertManagementAlertConnection + + """HTTP Integrations which can receive alerts for the project.""" + alertManagementHttpIntegrations( + """ID of the integration.""" + id: AlertManagementHttpIntegrationID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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 + + """ + If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge + requests of the project can also be merged with skipped jobs. + """ + allowMergeOnSkippedPipeline: Boolean + + """Project allows assigning multiple users to a merge request.""" + allowsMultipleMergeRequestAssignees: Boolean! + + """Project allows assigning multiple reviewers to a merge request.""" + allowsMultipleMergeRequestReviewers: Boolean! + + """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 + + """Search users for autocompletion""" + autocompleteUsers( + """Query to search users by name, username, or public email.""" + search: String + ): [AutocompletedUser!] + + """List of available deploy keys""" + availableDeployKeys( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """Term by which to search deploy key titles""" + titleQuery: String + ): AccessLevelDeployKeyConnection + + """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 + + """Authorized cluster agents for the project through ci_access keyword.""" + ciAccessAuthorizedAgents( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentAuthorizationCiAccessConnection + + """CI/CD settings for the project.""" + ciCdSettings: ProjectCiCdSetting + + """Path of the CI configuration file.""" + ciConfigPathOrDefault: String! + + """ + CI/CD config variable. Introduced in GitLab 15.3: **Status**: Experiment. + """ + ciConfigVariables( + """Ref.""" + ref: String! + ): [CiConfigVariable!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 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( + """Sort order of results.""" + sort: CiVariableSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiProjectVariableConnection + + """Find a single cluster agent by name.""" + clusterAgent( + """Name of the cluster agent.""" + name: String! + ): ClusterAgent + + """Cluster agents associated with the project.""" + clusterAgents( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentConnection + + """ + Get tag names containing a given commit. Introduced in GitLab 16.0: **Status**: Experiment. + """ + commitReferences( + """ + Project commit SHA identifier. For example, `287774414568010855642518513f085491644061`. + """ + commitSha: String! + ): CommitReferences @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.0.") + + """Container expiration policy of the project.""" + containerExpirationPolicy: ContainerExpirationPolicy + + """Indicates if Container Registry is enabled for the current user""" + containerRegistryEnabled: Boolean + + """ + Container protection rules for the project. Introduced in GitLab 16.10: **Status**: Experiment. + """ + containerRegistryProtectionRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRegistryProtectionRuleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.10.") + + """Container repositories of the project.""" + containerRepositories( + """Filter the container repositories by their name.""" + name: String + + """Sort container repositories by the criteria.""" + sort: ContainerRepositorySort = created_desc + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryConnection + + """Number of container repositories in the project.""" + containerRepositoriesCount: Int! + + """Timestamp of the project creation.""" + createdAt: Time + + """ + Data transfer data point for a specific period. This is mocked data under a development feature flag. + """ + dataTransfer( + """ + Retain egress data for one year. Data for the current month will increase dynamically as egress occurs. + """ + from: Date + + """End date for the data.""" + to: Date + ): ProjectDataTransfer + + """Details of the deployment of the project.""" + deployment( + """Project-level internal ID of the Deployment.""" + iid: ID! + ): Deployment + + """Short description of the project.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Detailed import status of the project.""" + detailedImportStatus: DetailedImportStatus + + """A single environment of the project.""" + environment( + """Name of the environment.""" + name: String + + """Search query for environment name.""" + search: String + + """States of environments that should be included in result.""" + states: [String!] + + """Search query for environment type.""" + type: String + ): Environment + + """ + Environments of the project. This field can only be resolved for one project in any single request. + """ + environments( + """Name of the environment.""" + name: String + + """Search query for environment name.""" + search: String + + """States of environments that should be included in result.""" + states: [String!] + + """Search query for environment type.""" + type: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EnvironmentConnection + + """ + Flow metrics for value stream analytics. Introduced in GitLab 15.10: **Status**: Experiment. + """ + flowMetrics: ProjectValueStreamAnalyticsFlowMetrics @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """ + Details of the fork project compared to its upstream project. Introduced in GitLab 15.7: **Status**: Experiment. + """ + forkDetails( + """Ref of the fork. Default value is HEAD.""" + ref: String + ): ForkDetails @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.7.") + + """Namespaces in which the current user can fork the project into.""" + forkTargets( + """Search query for path or name.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceConnection + + """Access level required for forking access.""" + forkingAccessLevel: ProjectFeatureAccess + + """Number of times the project has been forked.""" + forksCount: Int! + + """Full path of the project.""" + fullPath: ID! + + """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 Timeline event associated with the incident.""" + incidentManagementTimelineEvent( + """ID of the incident.""" + incidentId: IssueID! + + """ID of the timeline event.""" + id: IncidentManagementTimelineEventID! + ): TimelineEventType + + """Timeline event tags for the project.""" + incidentManagementTimelineEventTags: [TimelineEventTagType!] + + """Incident Management Timeline events associated with the incident.""" + incidentManagementTimelineEvents( + """ID of the incident.""" + incidentId: IssueID! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelineEventTypeConnection + + """ + List of CI/CD variables the project inherited from its parent group and ancestors. + """ + inheritedCiVariables( + """Sort variables by the criteria.""" + sort: CiGroupVariablesSort = CREATED_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): InheritedCiVariableConnection + + """ + Indicates if a project is a catalog resource. Introduced in GitLab 15.11: **Status**: Experiment. + """ + isCatalogResource: Boolean @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + + """Project is forked.""" + isForked: Boolean! + + """A single issue of the project.""" + issue( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author of the issue.""" + authorUsername: String + + """Issues closed after the date.""" + closedAfter: Time + + """Issues closed before the date.""" + closedBefore: Time + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Issues created after the date.""" + createdAfter: Time + + """Issues created before the date.""" + createdBefore: Time + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to the issue.""" + labelName: [String] + + """Milestone applied to the issue.""" + milestoneTitle: [String] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Issues updated after the date.""" + updatedAfter: Time + + """Issues updated before the date.""" + updatedBefore: Time + + """Sort issues by the criteria.""" + sort: IssueSort = created_desc + + """Current state of the issue.""" + state: IssuableState + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + ): Issue + + """Counts of issues by status for the project.""" + issueStatusCounts( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author of the issue.""" + authorUsername: String + + """Issues closed after the date.""" + closedAfter: Time + + """Issues closed before the date.""" + closedBefore: Time + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Issues created after the date.""" + createdAfter: Time + + """Issues created before the date.""" + createdBefore: Time + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to the issue.""" + labelName: [String] + + """Milestone applied to the issue.""" + milestoneTitle: [String] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Issues updated after the date.""" + updatedAfter: Time + + """Issues updated before the date.""" + updatedBefore: Time + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + ): IssueStatusCountsType + + """Issues of the project.""" + issues( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author of the issue.""" + authorUsername: String + + """Issues closed after the date.""" + closedAfter: Time + + """Issues closed before the date.""" + closedBefore: Time + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Issues created after the date.""" + createdAfter: Time + + """Issues created before the date.""" + createdBefore: Time + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to the issue.""" + labelName: [String] + + """Milestone applied to the issue.""" + milestoneTitle: [String] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Issues updated after the date.""" + updatedAfter: Time + + """Issues updated before the date.""" + updatedBefore: Time + + """Sort issues by the criteria.""" + sort: IssueSort = created_desc + + """Current state of the issue.""" + state: IssuableState + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Access level required for issues access.""" + issuesAccessLevel: ProjectFeatureAccess + + """Indicates if Issues are enabled for the current user""" + issuesEnabled: Boolean + + """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!] + + """Filter by artifacts presence.""" + withArtifacts: 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 + + """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 + + """Specify which fields to search in.""" + searchIn: [LabelSearchFieldList!]! = [TITLE, DESCRIPTION] + + """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 + + """Programming languages used in the project.""" + languages: [RepositoryLanguage!] + + """Timestamp of the project last activity.""" + lastActivityAt: Time + + """Indicates if the project has Large File Storage (LFS) enabled.""" + lfsEnabled: Boolean + + """The maximum access level of the current user in the project.""" + maxAccessLevel: AccessLevel! + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the 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 + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Access level required for merge requests access.""" + mergeRequestsAccessLevel: ProjectFeatureAccess + + """Indicates 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 the criteria.""" + sort: MilestoneSort = DUE_DATE_ASC + + """ + Also return milestones in the project's parent group and its ancestors. + """ + includeAncestors: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MilestoneConnection + + """ + Finds machine learning models Introduced in GitLab 16.8: **Status**: Experiment. + """ + mlModels( + """Search for names that include the string.""" + name: String + + """Ordering column. Default is created_at.""" + orderBy: MlModelsOrderBy + + """Ordering column. Default is desc.""" + sort: SortDirectionEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MlModelConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.") + + """Name of the project (without namespace).""" + name: String! + + """Full name of the project with its namespace.""" + nameWithNamespace: String! + + """Namespace of the project.""" + namespace: Namespace + + """ + Environments for this project with nested folders, can only be resolved for one project in any single request + """ + nestedEnvironments( + """Name of the environment.""" + name: String + + """Search query for environment name.""" + search: String + + """States of environments that should be included in result.""" + states: [String!] + + """Search query for environment type.""" + type: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NestedEnvironmentConnection + + """ + 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 + + """Number of open merge requests for the project.""" + openMergeRequestsCount: Int + + """ + Path for editing project at the organization level. Introduced in GitLab 16.11: **Status**: Experiment. + """ + organizationEditPath: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.11.") + + """Packages of the project.""" + packages( + """Sort packages by the criteria.""" + sort: PackageSort = CREATED_DESC + + """Search a package by name.""" + packageName: String = null + + """Filter a package by type.""" + packageType: PackageTypeEnum = null + + """ + Filter a package by version. If used in combination with `include_versionless`, + then no versionless packages are returned. + """ + packageVersion: String = null + + """Filter a package by status.""" + status: PackageStatus = null + + """Include versionless packages.""" + includeVersionless: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageConnection + + """Packages cleanup policy for the project.""" + packagesCleanupPolicy: PackagesCleanupPolicy + + """ + Packages protection rules for the project. Introduced in GitLab 16.6: **Status**: Experiment. + """ + packagesProtectionRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackagesProtectionRuleConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """List of the project's Pages Deployments.""" + pagesDeployments( + """Filter by active or inactive state.""" + active: Boolean + + """Sort results.""" + sort: Sort + + """ + Filter deployments that are + versioned or unversioned. + """ + versioned: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PagesDeploymentConnection + + """Path of the project.""" + path: String! + + """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 + + """Filter pipeline schedules by IDs.""" + ids: [ID!] = null + + """List pipeline schedules by sort order. Default is `id_desc`.""" + sort: PipelineScheduleSort = ID_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineScheduleConnection + + """ + List of pipeline trigger tokens. Introduced in GitLab 16.3: **Status**: Experiment. + """ + pipelineTriggers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineTriggerConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """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 the date.""" + updatedAfter: Time + + """Pipelines updated before the date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """ + Indicates 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 + + """ + Plan limits for the current project. Introduced in GitLab 16.9: **Status**: Experiment. + """ + projectPlanLimits: ProjectPlanLimits @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.") + + """ + List of unprotected branches, ignoring any wildcard branch rules Introduced in GitLab 16.9: **Status**: Experiment. + """ + protectableBranches: [String!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.9.") + + """ + Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts. + """ + publicJobs: Boolean + + """List of recently visited boards of the project. Maximum size is 4.""" + recentIssueBoards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """A single release of the project.""" + release( + """Name of the tag associated to the release.""" + tagName: String! + ): Release + + """Releases of the project.""" + releases( + """Sort releases by given criteria.""" + sort: ReleaseSort = RELEASED_AT_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseConnection + + """ + Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project. + """ + removeSourceBranchAfterMerge: Boolean + + """Git repository of the project.""" + repository: Repository + + """Indicates if users can request member access to the project.""" + requestAccessEnabled: Boolean + + """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 + + """Filter runners by creator ID.""" + creatorId: UserID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiRunnerConnection + + """SAST CI configuration for the project.""" + sastCiConfiguration: SastCiConfiguration + + """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. Deprecated in GitLab 15.9: A `Project.integrations` field is + proposed instead in [issue + 389904](https://gitlab.com/gitlab-org/gitlab/-/issues/389904). + """ + 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 @deprecated(reason: "A `Project.integrations` field is proposed instead in [issue 389904](https://gitlab.com/gitlab-org/gitlab/-/issues/389904). Deprecated in GitLab 15.9.") + + """Indicates if shared runners are enabled for the project.""" + sharedRunnersEnabled: Boolean + + """Snippets of the project.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Indicates if Snippets are enabled for the current user""" + snippetsEnabled: Boolean + + """Template used to create squash commit message in merge requests.""" + squashCommitTemplate: String + + """Indicates if `squashReadOnly` is enabled.""" + squashReadOnly: Boolean! + + """URL to connect to the project via SSH.""" + sshUrlToRepo: String + + """Number of times the project has been starred.""" + starCount: Int! + + """Statistics of the project.""" + statistics: ProjectStatistics + + """Redirects for Statistics of the project.""" + statisticsDetailsPaths: ProjectStatisticsRedirect + + """Commit message used to apply merge request suggestions.""" + suggestionCommitMessage: String + + """ + List of project topics (not Git tags). Deprecated in GitLab 13.12: Use `topics`. + """ + tagList: String @deprecated(reason: "Use `topics`. Deprecated in GitLab 13.12.") + + """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 GitLab 15.3: **Status**: Experiment. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.") + + """Time logged on issues and merge requests in the project.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """List of project topics.""" + topics: [String!] + + """Timestamp of when the project was last updated.""" + updatedAt: Time + + """Authorized cluster agents for the project through user_access keyword.""" + userAccessAuthorizedAgents( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentAuthorizationUserAccessConnection + + """Permissions for the current user on the resource""" + userPermissions: ProjectPermissions! + + """Value streams available to the project.""" + valueStreams( + """Value stream id.""" + id: ID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ValueStreamConnection + + """Visibility of the project.""" + visibility: String + + """ + Visible forks of the project. Introduced in GitLab 15.10: **Status**: Experiment. + """ + visibleForks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """Minimum access level.""" + minimumAccessLevel: AccessLevelEnum + ): ProjectConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """Web URL of the project.""" + webUrl: String + + """Indicates if Wikis are enabled for the current user""" + wikiEnabled: Boolean + + """ + Counts of work items by state for the project. Introduced in GitLab 16.7: **Status**: Experiment. + """ + workItemStateCounts( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Current state of the work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """IID of the work item. For example, "1".""" + iid: String + + """Sort work items by criteria.""" + sort: WorkItemSort = created_desc + ): WorkItemStateCountsType @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """Work item types available to the project.""" + workItemTypes( + """Filter work item types by the given name.""" + name: 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 + ): WorkItemTypeConnection + + """ + Work items of the project. Introduced in GitLab 15.1: **Status**: Experiment. + """ + workItems( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Current state of the work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """IID of the work item. For example, "1".""" + iid: String + + """Sort work items by criteria.""" + sort: WorkItemSort = created_desc + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") +} + +"""Autogenerated input type of projectBlobsRemove""" +input projectBlobsRemoveInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project to replace.""" + projectPath: ID! + + """List of blob oids.""" + blobOids: [String!]! +} + +"""Autogenerated return type of projectBlobsRemove.""" +type projectBlobsRemovePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type ProjectCiCdSetting { + """ + Indicates CI/CD job tokens generated in other projects have restricted access to this project. + """ + inboundJobTokenScopeEnabled: Boolean + + """ + Indicates CI/CD job tokens generated in this project have restricted access to other projects. + """ + jobTokenScopeEnabled: Boolean + + """Whether to keep the latest builds artifacts.""" + keepLatestArtifact: Boolean + + """Whether merged results pipelines are enabled.""" + mergePipelinesEnabled: 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 the project.""" + keepLatestArtifact: Boolean + + """ + Indicates CI/CD job tokens generated in other projects have restricted access to this project. + """ + inboundJobTokenScopeEnabled: 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! +} + +type ProjectDataTransfer { + """Data nodes.""" + egressNodes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EgressNodeConnection + + """Total egress for that project in that period of time.""" + totalEgress: BigInt +} + +"""An edge in a connection.""" +type ProjectEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Project +} + +""" +Represents the access level required by the user to access a project feature +""" +type ProjectFeatureAccess { + """Integer representation of access level.""" + integerValue: Int + + """String representation of access level.""" + stringValue: ProjectFeatureAccessLevel +} + +"""Access level of a project feature""" +enum ProjectFeatureAccessLevel { + """Not enabled for anyone.""" + DISABLED + + """Enabled only for team members.""" + PRIVATE + + """Enabled for everyone able to access the project.""" + ENABLED +} + +""" +A `ProjectID` is a global ID. It is encoded as a string. + +An example `ProjectID` is: `"gid://gitlab/Project/1"`. +""" +scalar ProjectID + +""" +A `ProjectImportStateID` is a global ID. It is encoded as a string. + +An example `ProjectImportStateID` is: `"gid://gitlab/ProjectImportState/1"`. +""" +scalar ProjectImportStateID + +"""Represents a Project Membership""" +type ProjectMember implements MemberInterface { + """GitLab::Access level.""" + accessLevel: AccessLevel + + """Date and time the membership was created.""" + createdAt: Time + + """User that authorized membership.""" + createdBy: UserCore + + """Date and time the membership expires.""" + expiresAt: Time + + """ID of the member.""" + id: ID! + + """Find a merge request.""" + mergeRequestInteraction( + """Global ID of the merge request.""" + id: MergeRequestID! + ): UserMergeRequestInteraction + + """Project that User is a member of.""" + project: Project + + """Date and time the membership was last updated.""" + updatedAt: Time + + """User that is associated with the member object.""" + user: UserCore + + """Permissions for the current user on the resource""" + userPermissions: ProjectPermissions! +} + +"""Autogenerated input type of ProjectMemberBulkUpdate""" +input ProjectMemberBulkUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global IDs of the members.""" + userIds: [UserID!]! + + """Access level to update the members to.""" + accessLevel: MemberAccessLevel! + + """Date and time the membership expires.""" + expiresAt: Time + + """Global ID of the project.""" + projectId: ProjectID! +} + +"""Autogenerated return type of ProjectMemberBulkUpdate.""" +type ProjectMemberBulkUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project members after mutation.""" + projectMembers: [ProjectMember!] +} + +"""The connection type for ProjectMember.""" +type ProjectMemberConnection { + """A list of edges.""" + edges: [ProjectMemberEdge] + + """A list of nodes.""" + nodes: [ProjectMember] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProjectMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ProjectMember +} + +"""Project member relation""" +enum ProjectMemberRelation { + """Direct members""" + DIRECT + + """Inherited members""" + INHERITED + + """Descendants members""" + DESCENDANTS + + """Invited Groups members""" + INVITED_GROUPS + + """Shared Into Ancestors members""" + SHARED_INTO_ANCESTORS +} + +type ProjectPermissions { + """If `true`, the user can perform `admin_operations` on this resource""" + adminOperations: Boolean! + + """If `true`, the user can perform `admin_project` on this resource""" + adminProject: Boolean! + + """If `true`, the user can perform `admin_remote_mirror` on this resource""" + adminRemoteMirror: Boolean! + + """If `true`, the user can perform `admin_wiki` on this resource""" + adminWiki: Boolean! + + """If `true`, the user can perform `archive_project` on this resource""" + archiveProject: Boolean! + + """If `true`, the user can perform `change_namespace` on this resource""" + changeNamespace: Boolean! + + """ + If `true`, the user can perform `change_visibility_level` on this resource + """ + changeVisibilityLevel: Boolean! + + """If `true`, the user can perform `create_deployment` on this resource""" + createDeployment: Boolean! + + """If `true`, the user can perform `create_design` on this resource""" + createDesign: Boolean! + + """If `true`, the user can perform `create_issue` on this resource""" + createIssue: Boolean! + + """If `true`, the user can perform `create_label` on this resource""" + createLabel: Boolean! + + """ + If `true`, the user can perform `create_merge_request_from` on this resource + """ + createMergeRequestFrom: Boolean! + + """ + If `true`, the user can perform `create_merge_request_in` on this resource + """ + createMergeRequestIn: Boolean! + + """If `true`, the user can perform `create_pages` on this resource""" + createPages: Boolean! + + """If `true`, the user can perform `create_pipeline` on this resource""" + createPipeline: Boolean! + + """ + If `true`, the user can perform `create_pipeline_schedule` on this resource + """ + createPipelineSchedule: Boolean! + + """If `true`, the user can perform `create_snippet` on this resource""" + createSnippet: Boolean! + + """If `true`, the user can perform `create_wiki` on this resource""" + createWiki: Boolean! + + """If `true`, the user can perform `destroy_design` on this resource""" + destroyDesign: Boolean! + + """If `true`, the user can perform `destroy_pages` on this resource""" + destroyPages: Boolean! + + """If `true`, the user can perform `destroy_wiki` on this resource""" + destroyWiki: Boolean! + + """If `true`, the user can perform `download_code` on this resource""" + downloadCode: Boolean! + + """If `true`, the user can perform `download_wiki_code` on this resource""" + downloadWikiCode: Boolean! + + """If `true`, the user can perform `fork_project` on this resource""" + forkProject: Boolean! + + """If `true`, the user can perform `push_code` on this resource""" + pushCode: Boolean! + + """ + If `true`, the user can perform `push_to_delete_protected_branch` on this resource + """ + pushToDeleteProtectedBranch: Boolean! + + """If `true`, the user can perform `read_commit_status` on this resource""" + readCommitStatus: Boolean! + + """ + If `true`, the user can perform `read_cycle_analytics` on this resource + """ + readCycleAnalytics: Boolean! + + """If `true`, the user can perform `read_design` on this resource""" + readDesign: Boolean! + + """If `true`, the user can perform `read_environment` on this resource""" + readEnvironment: Boolean! + + """If `true`, the user can perform `read_merge_request` on this resource""" + readMergeRequest: Boolean! + + """If `true`, the user can perform `read_pages_content` on this resource""" + readPagesContent: Boolean! + + """If `true`, the user can perform `read_project` on this resource""" + readProject: Boolean! + + """If `true`, the user can perform `read_project_member` on this resource""" + readProjectMember: Boolean! + + """If `true`, the user can perform `read_wiki` on this resource""" + readWiki: Boolean! + + """If `true`, the user can perform `remove_fork_project` on this resource""" + removeForkProject: Boolean! + + """If `true`, the user can perform `remove_pages` on this resource""" + removePages: Boolean! + + """If `true`, the user can perform `remove_project` on this resource""" + removeProject: Boolean! + + """If `true`, the user can perform `rename_project` on this resource""" + renameProject: Boolean! + + """If `true`, the user can perform `request_access` on this resource""" + requestAccess: Boolean! + + """If `true`, the user can perform `update_pages` on this resource""" + updatePages: Boolean! + + """If `true`, the user can perform `update_wiki` on this resource""" + updateWiki: Boolean! + + """If `true`, the user can perform `upload_file` on this resource""" + uploadFile: Boolean! + + """If `true`, the user can perform `view_edit_page` on this resource""" + viewEditPage: Boolean! +} + +"""Plan limits for the current project.""" +type ProjectPlanLimits { + """Maximum number of pipeline schedules allowed per project.""" + ciPipelineSchedules: Int +} + +""" +A `ProjectsBranchRuleID` is a global ID. It is encoded as a string. + +An example `ProjectsBranchRuleID` is: `"gid://gitlab/Projects::BranchRule/1"`. +""" +scalar ProjectsBranchRuleID + +"""Values for sorting projects""" +enum ProjectSort { + """ID by ascending order.""" + ID_ASC + + """ID by descending order.""" + ID_DESC + + """Latest activity by ascending order.""" + LATEST_ACTIVITY_ASC + + """Latest activity by descending order.""" + LATEST_ACTIVITY_DESC + + """Name by ascending order.""" + NAME_ASC + + """Name by descending order.""" + NAME_DESC + + """Path by ascending order.""" + PATH_ASC + + """Path by descending order.""" + PATH_DESC + + """Stars by ascending order.""" + STARS_ASC + + """Stars by descending order.""" + STARS_DESC + + """Storage size by ascending order.""" + STORAGE_SIZE_ASC + + """Storage size by descending order.""" + STORAGE_SIZE_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +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 +} + +type ProjectStatisticsRedirect { + """Redirection Route for job_artifacts.""" + buildArtifacts: String! + + """Redirection Route for container_registry.""" + containerRegistry: String! + + """Redirection Route for packages.""" + packages: String! + + """Redirection Route for repository.""" + repository: String! + + """Redirection Route for snippets.""" + snippets: String! + + """Redirection Route for wiki.""" + wiki: String! +} + +"""Autogenerated input type of ProjectSyncFork""" +input ProjectSyncForkInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project to initialize.""" + projectPath: ID! + + """Ref of the fork to fetch into.""" + targetBranch: String! +} + +"""Autogenerated return type of ProjectSyncFork.""" +type ProjectSyncForkPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Updated fork details.""" + details: ForkDetails + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of projectTextReplace""" +input projectTextReplaceInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project to replace.""" + projectPath: ID! + + """List of text patterns to replace project-wide.""" + replacements: [String!]! +} + +"""Autogenerated return type of projectTextReplace.""" +type projectTextReplacePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Exposes aggregated value stream flow metrics""" +type ProjectValueStreamAnalyticsFlowMetrics { + """Number of production deployments in the given period.""" + deploymentCount( + """Timestamp marking the start date and time.""" + from: Time! + + """Timestamp marking the end date and time.""" + to: Time! + ): ValueStreamAnalyticsMetric + + """Number of issues opened in the given period.""" + issueCount( + """Timestamp marking the start date and time.""" + from: Time! + + """Timestamp marking the end date and time.""" + to: Time! + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """Username of the author of the issue.""" + authorUsername: String + + """Milestone applied to the issue.""" + milestoneTitle: String + + """Labels applied to the issue.""" + labelNames: [String!] + ): ValueStreamAnalyticsMetric +} + +"""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 +} + +""" +Defines which user roles, users, or groups can push to a protected branch. +""" +type PushAccessLevel { + """GitLab::Access level.""" + accessLevel: Int! + + """Human readable representation for this access level.""" + accessLevelDescription: String! + + """Deploy key assigned to the access level.""" + deployKey: AccessLevelDeployKey +} + +"""The connection type for PushAccessLevel.""" +type PushAccessLevelConnection { + """A list of edges.""" + edges: [PushAccessLevelEdge] + + """A list of nodes.""" + nodes: [PushAccessLevel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PushAccessLevelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PushAccessLevel +} + +""" +Defines which user roles, users, deploy keys, or groups can push to a protected branch. +""" +input PushAccessLevelInput { + """Access level allowed to perform action.""" + accessLevel: Int + + """Deploy key assigned to the access level.""" + deployKeyId: DeployKeyID +} + +"""Pypi metadata""" +type PypiMetadata { + """Author email address(es) in RFC-822 format.""" + authorEmail: String + + """Longer description that can run to several paragraphs.""" + description: String + + """Markup syntax used in the description field.""" + descriptionContentType: String + + """ID of the metadatum.""" + id: PackagesPypiMetadatumID! + + """List of keywords, separated by commas.""" + keywords: String + + """Metadata version.""" + metadataVersion: String + + """Required Python version of the Pypi package.""" + requiredPython: String + + """One-line summary of the description.""" + summary: String +} + +type Query { + """ + Find an abuse report. Introduced in GitLab 16.3: **Status**: Experiment. + """ + abuseReport( + """ID of the abuse report.""" + id: AbuseReportID! + ): AbuseReport @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """ + Abuse report labels. Introduced in GitLab 16.3: **Status**: Experiment. + """ + abuseReportLabels( + """Search term to find labels with.""" + searchTerm: 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 + ): LabelConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """Definitions for all audit events available on the instance.""" + auditEventDefinitions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AuditEventDefinitionConnection! + + """Find an issue board list.""" + boardList( + """Global ID of the list.""" + id: ListID! + + """Filters applied when getting issue metadata in the board list.""" + issueFilters: BoardIssueInput + ): BoardList + + """CI related settings that apply to the entire instance.""" + ciApplicationSettings: CiApplicationSettings + + """ + A single CI/CD Catalog resource visible to an authorized user Introduced in GitLab 16.1: **Status**: Experiment. + """ + ciCatalogResource( + """CI/CD Catalog resource global ID.""" + id: CiCatalogResourceID + + """CI/CD Catalog resource full path.""" + fullPath: ID + ): CiCatalogResource @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.1.") + + """ + All CI/CD Catalog resources under a common namespace, visible to an authorized + user Introduced in GitLab 15.11: **Status**: Experiment. + """ + ciCatalogResources( + """Scope of the returned catalog resources.""" + scope: CiCatalogResourceScope = ALL + + """Search term to filter the catalog resources by name or description.""" + search: String + + """Sort catalog resources by given criteria.""" + sort: CiCatalogResourceSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiCatalogResourceConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.11.") + + """ + Linted and processed contents of a CI config. + Should not be requested more than once per request. + + """ + 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 + + """Stage belonging to a CI pipeline.""" + ciPipelineStage( + """Global ID of the CI stage.""" + id: CiStageID! + ): CiStage + + """List of the instance's CI/CD variables.""" + ciVariables( + """Sort order of results.""" + sort: CiVariableSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiInstanceVariableConnection + + """Find a container repository.""" + containerRepository( + """Global ID of the container repository.""" + id: ContainerRepositoryID! + ): ContainerRepositoryDetails + + """Get information about current user.""" + currentUser: CurrentUser + + """Fields related to design management.""" + designManagement: DesignManagement! + + """Testing endpoint to validate the API with""" + echo( + """Text to echo back.""" + text: String! + ): String! + + """ + Check if a feature flag is enabled Introduced in GitLab 17.1: **Status**: Experiment. + """ + featureFlagEnabled( + """Name of the feature flag.""" + name: String! + ): Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + + """A user's frecently visited groups""" + frecentGroups: [Group!] + + """A user's frecently visited projects""" + frecentProjects: [Project!] + + """Whether Gitpod is enabled in application settings.""" + gitpodEnabled: Boolean + + """Find a group.""" + group( + """Full path of the group. For example, `gitlab-org/gitlab-foss`.""" + fullPath: ID! + ): Group + + """Find groups.""" + groups( + """Search query for group name or group full path.""" + search: String + + """ + Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc` + """ + sort: String = "name_asc" + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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 + integrationExclusions( + """Type of integration.""" + integrationName: IntegrationType! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IntegrationExclusionConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Find an issue.""" + issue( + """Global ID of the issue.""" + id: IssueID! + ): Issue + + """ + Find issues visible to the current user. At least one filter must be provided. + Introduced in GitLab 15.6: **Status**: Experiment. + """ + issues( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the author of the issue.""" + authorUsername: String + + """Issues closed after the date.""" + closedAfter: Time + + """Issues closed before the date.""" + closedBefore: Time + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Issues created after the date.""" + createdAfter: Time + + """Issues created before the date.""" + createdBefore: Time + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to the issue.""" + labelName: [String] + + """Milestone applied to the issue.""" + milestoneTitle: [String] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """List of arguments with inclusive OR.""" + or: UnionedIssueFilterInput + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Issues updated after the date.""" + updatedAfter: Time + + """Issues updated before the date.""" + updatedBefore: Time + + """Sort issues by the criteria.""" + sort: IssueSort = created_desc + + """Whether to include issues from archived projects. Defaults to `false`.""" + includeArchived: Boolean = false + + """Current state of the issue.""" + state: IssuableState + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.") + + """ + All jobs on this GitLab instance. Returns an empty result for users without administrator access. + """ + 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 + + """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 machine learning models. Introduced in GitLab 16.7: **Status**: Experiment. + """ + mlModel( + """ID of the model.""" + id: MlModelID! + ): MlModel @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """Find a namespace.""" + namespace( + """Full path of the namespace. For example, `gitlab-org/gitlab-foss`.""" + fullPath: ID! + ): Namespace + + """Find a note. Introduced in GitLab 15.9: **Status**: Experiment.""" + note( + """Global ID of the note.""" + id: NoteID! + ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """ + Find an organization. Introduced in GitLab 16.4: **Status**: Experiment. + """ + organization( + """ID of the organization.""" + id: OrganizationsOrganizationID! + ): Organization @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.4.") + + """List organizations. Introduced in GitLab 16.8: **Status**: Experiment.""" + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.8.") + + """ + Find a package. This field can only be resolved for one query in any single + request. Returns `null` if a package has no `default` status. + """ + package( + """Global ID of the package.""" + id: PackagesPackageID! + ): PackageDetailsType + + """Find a project.""" + project( + """Full path of the project. 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!] + + """Return only personal projects.""" + personal: Boolean + + """ + Sort order of results. Format: `<field_name>_<sort_direction>`, for example: `id_desc` or `name_asc` + """ + sort: String = "id_desc" + + """Filter projects by IDs.""" + ids: [ID!] + + """ + Filter projects by full paths. You cannot provide more than 50 full paths. + """ + fullPaths: [String!] + + """Return only projects with issues enabled.""" + withIssuesEnabled: Boolean + + """Return only projects with merge requests enabled.""" + withMergeRequestsEnabled: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """Information about the complexity of the GraphQL query.""" + queryComplexity: QueryComplexity + + """Find a runner.""" + runner( + """Runner ID.""" + id: CiRunnerID! + ): CiRunner + + """ + Supported runner platforms. Deprecated in GitLab 15.9: No longer used, use + gitlab-runner documentation to learn about supported platforms. + """ + runnerPlatforms( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RunnerPlatformConnection @deprecated(reason: "No longer used, use gitlab-runner documentation to learn about supported platforms. Deprecated in GitLab 15.9.") + + """ + Runner setup instructions. Deprecated in GitLab 15.9: No longer used, use + gitlab-runner documentation to learn about runner registration commands. + """ + runnerSetup( + """Platform to generate the instructions for.""" + platform: String! + + """Architecture to generate the instructions for.""" + architecture: String! + ): RunnerSetup @deprecated(reason: "No longer used, use gitlab-runner documentation to learn about runner registration commands. Deprecated in GitLab 15.9.") + + """ + Get all runners in the GitLab instance (project and shared). Access is restricted to users with administrator access. + """ + 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 + + """Filter runners by creator ID.""" + creatorId: UserID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): 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 + + """ + Find a synthetic note Introduced in GitLab 15.9: **Status**: Experiment. + """ + syntheticNote( + """Global ID of the note.""" + sha: String! + + """Global ID of the resource to search synthetic note on.""" + noteableId: NoteableID! + ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """Find timelogs visible to the current user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """Retrieve a single to-do item""" + todo( + """ID of the to-do item.""" + id: TodoID! + ): Todo + + """Find project topics.""" + topics( + """Search query for topic name.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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 the date.""" + recordedAfter: Time + + """Measurement recorded before the date.""" + recordedBefore: Time + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UsageTrendsMeasurementConnection + + """Find a user.""" + user( + """ID of the User.""" + id: UserID + + """Username of the User.""" + username: String + ): UserCore + + """Find users.""" + users( + """List of user Global IDs.""" + ids: [ID!] + + """List of usernames.""" + usernames: [String!] + + """Sort users by the criteria.""" + sort: Sort = created_desc + + """Query to search users by name, username, or primary email.""" + search: String + + """Return only admin users.""" + admins: Boolean = false + + """Return users member of a given group.""" + groupId: GroupID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Find a work item. Introduced in GitLab 15.1: **Status**: Experiment.""" + workItem( + """Global ID of the work item.""" + id: WorkItemID! + ): WorkItem @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.1.") + + """ + Find work items by their reference. Introduced in GitLab 16.7: **Status**: Experiment. + """ + workItemsByReference( + """Full path of the context namespace (project or group).""" + contextNamespacePath: ID + + """Work item references. Can be either a short reference or URL.""" + refs: [String!]! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") +} + +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 +} + +"""Type of ref""" +enum RefType { + """Ref type for branches.""" + HEADS + + """Ref type for tags.""" + TAGS +} + +"""The position to which the object should be moved""" +enum RelativePositionType { + """Object is moved before an adjacent object.""" + BEFORE + + """Object is moved after an adjacent object.""" + AFTER +} + +"""Represents a release""" +type Release { + """Assets of the release.""" + assets: ReleaseAssets + + """User that created the release.""" + author: UserCore + + """Commit associated with the release.""" + commit: Commit + + """Timestamp of when the release was created.""" + createdAt: Time + + """Description (also known as "release notes") of the release.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Evidence for the release.""" + evidences( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseEvidenceConnection + + """Indicates the release is 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 + + """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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project the release is associated with.""" + projectPath: ID! + + """Name of the tag to associate with the release.""" + tagName: String! + + """Message to use if creating a new annotated tag.""" + tagMessage: String + + """Commit SHA or branch name to use if creating a new tag.""" + ref: String + + """Name of the release.""" + name: String + + """Description (also known as "release notes") of the release.""" + description: String + + """ + Date and time for the release. Defaults to the current time. Expected in ISO + 8601 format (`2019-03-15T08:00:00Z`). Only provide this field if creating an + upcoming or historical release. + """ + releasedAt: Time + + """ + Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. + """ + milestones: [String!] + + """Assets associated to the release.""" + assets: ReleaseAssetsInput +} + +"""Autogenerated return type of ReleaseCreate.""" +type ReleaseCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Release after mutation.""" + release: Release +} + +"""Autogenerated input type of ReleaseDelete""" +input ReleaseDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project the release is associated with.""" + projectPath: ID! + + """Name of the tag associated with the release to delete.""" + tagName: String! +} + +"""Autogenerated return type of ReleaseDelete.""" +type ReleaseDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project the release is associated with.""" + projectPath: ID! + + """Name of the tag associated with the release.""" + tagName: String! + + """Name of the release.""" + name: String + + """Description (release notes) of the release.""" + description: String + + """Release date.""" + releasedAt: Time + + """ + Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. + """ + milestones: [String!] +} + +"""Autogenerated return type of ReleaseUpdate.""" +type ReleaseUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Release after mutation.""" + release: Release +} + +"""Autogenerated input type of RepositionImageDiffNote""" +input RepositionImageDiffNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the DiffNote to update.""" + id: DiffNoteID! + + """Position of the note on a diff.""" + position: UpdateDiffImagePositionInput! +} + +"""Autogenerated return type of RepositionImageDiffNote.""" +type RepositionImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 + + """Type of ref.""" + refType: RefType = null + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RepositoryBlobConnection + + """ + Names of branches available in this repository that match the search pattern. + """ + branchNames( + """Pattern to search for branch names by.""" + searchPattern: String! + + """Number of branch names to skip.""" + offset: Int! + + """Number of branch names to return.""" + limit: Int! + ): [String!] + + """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 + + """Type of ref.""" + refType: RefType + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TreeConnection + + """Default branch of the repository.""" + rootRef: String + + """Tree of the repository.""" + tree( + """Path to get the tree for. Default value is the root of the repository.""" + path: String = "" + + """Used to get a recursive tree. Default is false.""" + recursive: Boolean = false + + """Commit ref to get the tree for. Default value is HEAD.""" + ref: String + + """Type of ref.""" + refType: RefType + ): Tree +} + +type RepositoryBlob { + """Whether the current project is archived.""" + archived: Boolean + + """ + Content of blob is encoded base64. Returns `null` if the + `unicode_escaped_data` feature flag is disabled. Introduced in GitLab 17.1: + **Status**: Experiment. + """ + base64EncodedBlob: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.1.") + + """Blob blame. Introduced in GitLab 16.3: **Status**: Experiment.""" + blame( + """ + Range starting from the line. Cannot be less than 1 or greater than `to_line`. + """ + fromLine: Int = 1 + + """ + Range ending on the line. Cannot be smaller than `from_line` or greater than `from_line` + 100. + """ + toLine: Int = 1 + ): Blame @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """Web path to blob blame page.""" + blamePath: String + + """Whether the current user can push to the branch.""" + canCurrentUserPushToBranch: Boolean + + """Whether the current user can modify the blob.""" + canModifyBlob: Boolean + + """Web path for code navigation.""" + codeNavigationPath: String + + """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: BigInt + + """Raw content of the blob, if the blob is text data.""" + rawTextBlob: String + + """Web path to replace the blob content.""" + replacePath: String + + """Blob content rich viewer.""" + richViewer: BlobViewer + + """Blob content simple viewer.""" + simpleViewer: BlobViewer! + + """Size (in bytes) of the blob.""" + size: BigInt + + """ + Whether the blob's content is stored externally (for instance, in LFS). + """ + storedExternally: Boolean + + """Web path of the blob.""" + webPath: String +} + +"""The connection type for RepositoryBlob.""" +type RepositoryBlobConnection { + """A list of edges.""" + edges: [RepositoryBlobEdge] + + """A list of nodes.""" + nodes: [RepositoryBlob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RepositoryBlobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: RepositoryBlob +} + +type RepositoryLanguage { + """Color to visualize the repository language.""" + color: Color + + """Name of the repository language.""" + name: String! + + """Percentage of the repository's languages.""" + share: Float +} + +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 +} + +"""Autogenerated input type of RestorePagesDeployment""" +input RestorePagesDeploymentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the Pages Deployment.""" + id: PagesDeploymentID! +} + +"""Autogenerated return type of RestorePagesDeployment.""" +type RestorePagesDeploymentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Restored Pages Deployment.""" + pagesDeployment: PagesDeployment! +} + +"""Reviewer ID wildcard values""" +enum ReviewerWildcardId { + """No reviewer is assigned.""" + NONE + + """Any reviewer is assigned.""" + ANY +} + +type RootStorageStatistics { + """CI artifacts size in bytes.""" + buildArtifactsSize: Float! + + """Container Registry size in bytes.""" + containerRegistrySize: Float! + + """ + Indicates whether the deduplicated Container Registry size for the namespace is an estimated value or not. + """ + containerRegistrySizeIsEstimated: Boolean! + + """Dependency Proxy sizes in bytes.""" + dependencyProxySize: Float! + + """LFS objects size in bytes.""" + lfsObjectsSize: Float! + + """Packages size in bytes.""" + packagesSize: Float! + + """CI pipeline artifacts size in bytes.""" + pipelineArtifactsSize: Float! + + """ + Indicates whether the deduplicated Container Registry size for the namespace + is an estimated value or not. Deprecated in GitLab 16.2: Use + `container_registry_size_is_estimated`. + """ + registrySizeEstimated: Boolean! @deprecated(reason: "Use `container_registry_size_is_estimated`. Deprecated in GitLab 16.2.") + + """Git repository size in bytes.""" + repositorySize: Float! + + """Snippets size in bytes.""" + snippetsSize: Float! + + """Total storage in bytes.""" + storageSize: Float! + + """Uploads size in bytes.""" + uploadsSize: Float! + + """Wiki size in bytes.""" + wikiSize: Float! +} + +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 RunnerCacheClear""" +input RunnerCacheClearInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the project that will have its runner cache cleared.""" + projectId: ProjectID! +} + +"""Autogenerated return type of RunnerCacheClear.""" +type RunnerCacheClearPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of RunnerCreate""" +input RunnerCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Description of the runner.""" + description: String + + """Runner's maintenance notes.""" + maintenanceNote: String + + """Maximum timeout (in seconds) for jobs processed by the runner.""" + maximumTimeout: Int + + """Access level of the runner.""" + accessLevel: CiRunnerAccessLevel + + """Indicates the runner is not allowed to receive jobs.""" + paused: Boolean + + """Indicates the runner is locked.""" + locked: Boolean + + """Indicates the runner is able to run untagged jobs.""" + runUntagged: Boolean + + """Tags associated with the runner.""" + tagList: [String!] + + """Type of the runner to create.""" + runnerType: CiRunnerType! + + """ + Global ID of the group that the runner is created in (valid only for group runner). + """ + groupId: GroupID + + """ + Global ID of the project that the runner is created in (valid only for project runner). + """ + projectId: ProjectID +} + +"""Autogenerated return type of RunnerCreate.""" +type RunnerCreatePayload { + """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 +} + +"""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 { + """If `true`, the user can perform `assign_runner` on this resource""" + assignRunner: Boolean! + + """If `true`, the user can perform `delete_runner` on this resource""" + deleteRunner: Boolean! + + """If `true`, the user can perform `read_runner` on this resource""" + readRunner: Boolean! + + """If `true`, the user can perform `update_runner` on this resource""" + updateRunner: Boolean! +} + +type RunnerPlatform { + """Runner architectures supported for the platform.""" + architectures( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RunnerArchitectureConnection + + """Human readable name of the runner platform.""" + humanReadableName: String! + + """Name slug of the runner platform.""" + name: String! +} + +"""The connection type for RunnerPlatform.""" +type RunnerPlatformConnection { + """A list of edges.""" + edges: [RunnerPlatformEdge] + + """A list of nodes.""" + nodes: [RunnerPlatform] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RunnerPlatformEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: RunnerPlatform +} + +type RunnerSetup { + """Instructions for installing the runner on the specified architecture.""" + installInstructions: String! + + """ + Instructions for registering the runner. The actual registration tokens are + not included in the commands. Instead, a placeholder `$REGISTRATION_TOKEN` is shown. + """ + registerInstructions: String +} + +"""Autogenerated input type of 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 + + """Description of the runner.""" + description: String + + """Runner's maintenance notes.""" + maintenanceNote: String + + """Maximum timeout (in seconds) for jobs processed by the runner.""" + maximumTimeout: Int + + """Access level of the runner.""" + accessLevel: CiRunnerAccessLevel + + """Indicates the runner is not allowed to receive jobs.""" + paused: Boolean + + """Indicates the runner is locked.""" + locked: Boolean + + """Indicates the runner is able to run untagged jobs.""" + runUntagged: Boolean + + """Tags associated with the runner.""" + tagList: [String!] + + """ID of the runner to update.""" + id: CiRunnerID! + + """ + Projects associated with the runner. Available only for project runners. + """ + associatedProjects: [ProjectID!] +} + +"""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 user saved reply.""" + id: UsersSavedReplyID! + + """Name of the saved reply.""" + name: String! +} + +"""The connection type for SavedReply.""" +type SavedReplyConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [SavedReplyEdge] + + """A list of nodes.""" + nodes: [SavedReply] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of SavedReplyCreate""" +input SavedReplyCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the saved reply.""" + name: String! + + """Content of the saved reply.""" + content: String! +} + +"""Autogenerated return type of SavedReplyCreate.""" +type SavedReplyCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 user saved reply.""" + id: UsersSavedReplyID! +} + +"""Autogenerated return type of SavedReplyDestroy.""" +type SavedReplyDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 + + """Name of the saved reply.""" + name: String! + + """Content of the saved reply.""" + content: String! + + """Global ID of the user saved reply.""" + id: UsersSavedReplyID! +} + +"""Autogenerated return type of SavedReplyUpdate.""" +type SavedReplyUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Saved reply after mutation.""" + savedReply: SavedReply +} + +enum SecurityReportTypeEnum { + """SAST scan report""" + SAST + + """SAST ADVANCED scan report""" + SAST_ADVANCED + + """SAST IAC scan report""" + SAST_IAC + + """BREACH AND ATTACK SIMULATION scan report""" + BREACH_AND_ATTACK_SIMULATION + + """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 +} + +"""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 { + """AppleAppStoreService type""" + APPLE_APP_STORE_SERVICE + + """AsanaService type""" + ASANA_SERVICE + + """AssemblaService type""" + ASSEMBLA_SERVICE + + """BambooService type""" + BAMBOO_SERVICE + + """BugzillaService type""" + BUGZILLA_SERVICE + + """BuildkiteService type""" + BUILDKITE_SERVICE + + """CampfireService type""" + CAMPFIRE_SERVICE + + """ClickupService type""" + CLICKUP_SERVICE + + """ConfluenceService type""" + CONFLUENCE_SERVICE + + """CustomIssueTrackerService type""" + CUSTOM_ISSUE_TRACKER_SERVICE + + """DatadogService type""" + DATADOG_SERVICE + + """DiffblueCoverService type""" + DIFFBLUE_COVER_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 + + """GooglePlayService type""" + GOOGLE_PLAY_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 + + """PhorgeService type""" + PHORGE_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 + + """SlackService type""" + SLACK_SERVICE + + """SlackSlashCommandsService type""" + SLACK_SLASH_COMMANDS_SERVICE + + """SquashTmService type""" + SQUASH_TM_SERVICE + + """TeamcityService type""" + TEAMCITY_SERVICE + + """TelegramService type""" + TELEGRAM_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 and overridable.""" + DISABLED_AND_OVERRIDABLE + + """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 + + """All commenters on this noteable.""" + commenters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection! + + """Timestamp this snippet was created.""" + createdAt: Time! + + """Description of the snippet.""" + description: String + + """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 + + """Indicates the snippet is hidden because the author has been banned.""" + hidden: Boolean! + + """HTTP URL to the snippet repository.""" + httpUrlToRepo: String + + """ID of the snippet.""" + id: SnippetID! + + """Indicates whether the snippet was imported.""" + imported: Boolean! + + """Import source of the snippet.""" + importedFrom: ImportSource! + + """All notes on this noteable.""" + notes( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Project the snippet is associated with.""" + project: Project + + """Raw URL of the snippet.""" + rawUrl: String! + + """SSH URL to the snippet repository.""" + sshUrlToRepo: String + + """Title of the snippet.""" + title: String! + + """Timestamp 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 { + """If `true`, the user can perform `admin_snippet` on this resource""" + adminSnippet: Boolean! + + """If `true`, the user can perform `award_emoji` on this resource""" + awardEmoji: Boolean! + + """If `true`, the user can perform `create_note` on this resource""" + createNote: Boolean! + + """If `true`, the user can perform `read_snippet` on this resource""" + readSnippet: Boolean! + + """If `true`, the user can perform `report_snippet` on this resource""" + reportSnippet: Boolean! + + """If `true`, the user can perform `update_snippet` on this resource""" + updateSnippet: Boolean! +} + +"""Common sort values""" +enum Sort { + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Values for sort direction""" +enum SortDirectionEnum { + """Ascending order.""" + ASC + + """Descending order.""" + DESC +} + +"""SSH signature for a signed commit""" +type SshSignature implements CommitSignature { + """SHA of the associated commit.""" + commitSha: String + + """SSH key used for the signature.""" + key: Key + + """Fingerprint of the key.""" + keyFingerprintSha256: String + + """Project of the associated commit.""" + project: Project + + """User associated with the key.""" + user: UserCore + + """Indicates verification status of the associated key or certificate.""" + verificationStatus: VerificationStatus +} + +"""Autogenerated input type of StarProject""" +input StarProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project to star or unstar.""" + projectId: ProjectID! + + """Indicates whether to star or unstar the project.""" + starred: Boolean! +} + +"""Autogenerated return type of StarProject.""" +type StarProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Number of stars for the project.""" + count: String! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type StatusAction { + """Title for the button, for example: Retry this job.""" + buttonTitle: String + + """ + Custom confirmation message for a manual job. Introduced in GitLab 17.0: **Status**: Experiment. + """ + confirmationMessage: String @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 17.0.") + + """Icon used in the action button.""" + icon: String + + """ID for a status action.""" + id: String! + + """Method for the action, for example: :post.""" + method: String + + """Path for the action.""" + path: String + + """Title for the action, for example: Retry.""" + title: String +} + +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 labels of an issuable are updated.""" + issuableLabelsUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the milestone of an issuable is updated.""" + issuableMilestoneUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the title of an issuable is updated.""" + issuableTitleUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the crm contacts of an issuable are updated.""" + issueCrmContactsUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when approval state of a merge request is updated.""" + mergeRequestApprovalStateUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when a merge request diff is generated.""" + mergeRequestDiffGenerated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the merge status of a merge request is updated.""" + mergeRequestMergeStatusUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the reviewers of a merge request are updated.""" + mergeRequestReviewersUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """ + Triggered when a note is created. Introduced in GitLab 15.9: **Status**: Experiment. + """ + workItemNoteCreated( + """ID of the noteable.""" + noteableId: NoteableID + ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """ + Triggered when a note is deleted. Introduced in GitLab 15.9: **Status**: Experiment. + """ + workItemNoteDeleted( + """ID of the noteable.""" + noteableId: NoteableID + ): DeletedNote @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """ + Triggered when a note is updated. Introduced in GitLab 15.9: **Status**: Experiment. + """ + workItemNoteUpdated( + """ID of the noteable.""" + noteableId: NoteableID + ): Note @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """Triggered when a work item is updated.""" + workItemUpdated( + """ID of the work item.""" + workItemId: WorkItemID! + ): WorkItem +} + +type SystemNoteMetadata { + """System note metadata action.""" + action: String + + """Version of the changed description.""" + descriptionVersion: DescriptionVersion + + """Global ID of the specific system note metadata.""" + id: SystemNoteMetadataID! +} + +""" +A `SystemNoteMetadataID` is a global ID. It is encoded as a string. + +An example `SystemNoteMetadataID` is: `"gid://gitlab/SystemNoteMetadata/1"`. +""" +scalar SystemNoteMetadataID + +"""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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the Terraform state.""" + id: TerraformStateID! +} + +"""Autogenerated return type of TerraformStateDelete.""" +type TerraformStateDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the Terraform state.""" + id: TerraformStateID! +} + +"""Autogenerated return type of TerraformStateLock.""" +type TerraformStateLockPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of TerraformStateUnlock""" +input TerraformStateUnlockInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the Terraform state.""" + id: TerraformStateID! +} + +"""Autogenerated return type of TerraformStateUnlock.""" +type TerraformStateUnlockPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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! +} + +"""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 +} + +"""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 + +"""A time-frame defined as a closed inclusive range of two dates""" +input Timeframe { + """Start of the range.""" + start: Date! + + """End of the range.""" + end: Date! +} + +"""Autogenerated input type of TimelineEventCreate""" +input TimelineEventCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Incident ID of the timeline event.""" + incidentId: IssueID! + + """Text note of the timeline event.""" + note: String! + + """Timestamp of when the event occurred.""" + occurredAt: Time! + + """Tags for the incident timeline event.""" + timelineEventTagNames: [String!] +} + +"""Autogenerated return type of TimelineEventCreate.""" +type TimelineEventCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 +} + +"""Autogenerated input type of TimelineEventTagCreate""" +input TimelineEventTagCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the timeline event tag in.""" + projectPath: ID! + + """Name of the tag.""" + name: String! +} + +"""Autogenerated return type of TimelineEventTagCreate.""" +type TimelineEventTagCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timeline event tag.""" + timelineEventTag: TimelineEventTagType +} + +"""Describes a tag on an incident management timeline event.""" +type TimelineEventTagType { + """ID of the timeline event tag.""" + id: IncidentManagementTimelineEventTagID! + + """Name of the timeline event tag.""" + name: String! +} + +"""The connection type for TimelineEventTagType.""" +type TimelineEventTagTypeConnection { + """A list of edges.""" + edges: [TimelineEventTagTypeEdge] + + """A list of nodes.""" + nodes: [TimelineEventTagType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TimelineEventTagTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TimelineEventTagType +} + +"""Describes an incident management timeline event""" +type TimelineEventType { + """Indicates the timeline event icon.""" + action: String! + + """User that created the timeline event.""" + author: UserCore + + """Timestamp when the event created.""" + createdAt: Time! + + """Indicates the timeline event is editable.""" + editable: Boolean! + + """ID of the timeline event.""" + id: IncidentManagementTimelineEventID! + + """Incident of the timeline event.""" + incident: Issue! + + """Text note of the timeline event.""" + note: String + + """HTML note of the timeline event.""" + noteHtml: String + + """Timestamp when the event occurred.""" + occurredAt: Time! + + """Note from which the timeline event was created.""" + promotedFromNote: Note + + """Tags for the incident timeline event.""" + timelineEventTags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelineEventTagTypeConnection + + """Timestamp when the event updated.""" + updatedAt: Time! + + """User that updated the timeline event.""" + updatedByUser: UserCore +} + +"""The connection type for TimelineEventType.""" +type TimelineEventTypeConnection { + """A list of edges.""" + edges: [TimelineEventTypeEdge] + + """A list of nodes.""" + nodes: [TimelineEventType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TimelineEventTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TimelineEventType +} + +"""Autogenerated input type of TimelineEventUpdate""" +input TimelineEventUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the timeline event to update.""" + id: IncidentManagementTimelineEventID! + + """Text note of the timeline event.""" + note: String + + """Timestamp when the event occurred.""" + occurredAt: Time + + """Tags for the incident timeline event.""" + timelineEventTagNames: [String!] +} + +"""Autogenerated return type of TimelineEventUpdate.""" +type TimelineEventUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 + + """Target project of the timelog merge request or issue.""" + project: Project! + + """Timestamp of when the time tracked was spent at.""" + spentAt: Time + + """Summary of how the time was spent.""" + summary: String + + """Time spent displayed in seconds.""" + timeSpent: Int! + + """User that logged the time.""" + user: UserCore! + + """Permissions for the current user on the resource""" + userPermissions: TimelogPermissions! +} + +"""The connection type for Timelog.""" +type TimelogConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [TimelogEdge] + + """A list of nodes.""" + nodes: [Timelog] + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """Total time spent in seconds.""" + totalSpentTime: BigInt! +} + +"""Autogenerated input type of TimelogCreate""" +input TimelogCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Amount of time spent.""" + timeSpent: String! + + """ + Timestamp of when the time was spent. If empty, defaults to current time. + """ + spentAt: Time + + """Summary of time spent.""" + summary: String! + + """Global ID of the issuable (Issue, WorkItem or MergeRequest).""" + issuableId: IssuableID! +} + +"""Autogenerated return type of TimelogCreate.""" +type TimelogCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 { + """If `true`, the user can perform `admin_timelog` on this resource""" + adminTimelog: Boolean! +} + +"""Values for sorting timelogs""" +enum TimelogSort { + """Spent at ascending order.""" + SPENT_AT_ASC + + """Spent at descending order.""" + SPENT_AT_DESC + + """Time spent ascending order.""" + TIME_SPENT_ASC + + """Time spent descending order.""" + TIME_SPENT_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +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 to-do item.""" + 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 + + """Group or project access requested from the user.""" + member_access_requested + + """Merge request authored by the user received a review.""" + review_submitted + + """An OKR assigned to the user requires an update.""" + okr_checkin_requested + + """User was added as an approver.""" + added_approver +} + +"""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!]! +} + +"""Sort options for todos.""" +enum TodoSort { + """By label priority in ascending order.""" + LABEL_PRIORITY_ASC + + """By label priority in descending order.""" + LABEL_PRIORITY_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +enum TodoStateEnum { + """State of the todo is pending.""" + pending + + """State of the todo is done.""" + done +} + +enum TodoTargetEnum { + """Commit.""" + COMMIT + + """Issue.""" + ISSUE + + """Work item.""" + WORKITEM + + """Merge request.""" + MERGEREQUEST + + """Design.""" + DESIGN + + """Alert.""" + ALERT +} + +type Topic { + """URL to avatar image file of the topic.""" + avatarUrl: String + + """Description of the topic.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ID of the topic.""" + id: ID! + + """Name of the topic.""" + name: String! + + """Title of the topic.""" + title: String! +} + +"""The connection type for Topic.""" +type TopicConnection { + """A list of edges.""" + edges: [TopicEdge] + + """A list of nodes.""" + nodes: [Topic] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TopicEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Topic +} + +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 +} + +input UnionedIssueFilterInput { + """Filters issues that are assigned to at least one of the given users.""" + assigneeUsernames: [String!] + + """Filters issues that are authored by one of the given users.""" + authorUsernames: [String!] + + """Filters issues that have at least one of the given labels.""" + labelNames: [String!] +} + +"""A regexp containing patterns sourced from user input""" +scalar UntrustedRegexp + +"""Autogenerated input type of UpdateAlertStatus""" +input UpdateAlertStatusInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """Status to set the alert.""" + status: AlertManagementStatus! +} + +"""Autogenerated return type of UpdateAlertStatus.""" +type UpdateAlertStatusPayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +"""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! +} + +"""Autogenerated input type of UpdateBoardList""" +input UpdateBoardListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Position of list within the board.""" + position: Int + + """Indicates if the list is collapsed for the user.""" + collapsed: Boolean + + """Global ID of the list.""" + listId: ListID! +} + +"""Autogenerated return type of UpdateBoardList.""" +type UpdateBoardListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 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 UpdateContainerRegistryProtectionRule""" +input UpdateContainerRegistryProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the container registry protection rule to be updated.""" + id: ContainerRegistryProtectionRuleID! +} + +"""Autogenerated return type of UpdateContainerRegistryProtectionRule.""" +type UpdateContainerRegistryProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Container registry protection rule after mutation. Introduced in GitLab 16.7: **Status**: Experiment. + """ + containerRegistryProtectionRule: ContainerRegistryProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") + + """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 UpdateImageDiffNote""" +input UpdateImageDiffNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the note to update.""" + id: NoteID! + + """Content of the note.""" + body: String + + """Position of the note on a diff.""" + position: UpdateDiffImagePositionInput +} + +"""Autogenerated return type of UpdateImageDiffNote.""" +type UpdateImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of UpdateIssue""" +input UpdateIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """Description of the issue.""" + description: String + + """Due date of the issue.""" + dueDate: ISO8601Date + + """Indicates the issue is confidential.""" + confidential: Boolean + + """Indicates discussion is locked on the issue.""" + locked: Boolean + + """Type of the issue.""" + type: IssueType + + """Title of the issue.""" + title: String + + """ + ID of the milestone to assign to the issue. On update milestone will be removed if set to null. + """ + milestoneId: ID + + """IDs of labels to be added to the issue.""" + addLabelIds: [ID!] + + """IDs of labels to be removed from the issue.""" + removeLabelIds: [ID!] + + """IDs of labels to be set. Replaces existing issue labels.""" + labelIds: [ID!] + + """Close or reopen an issue.""" + stateEvent: IssueStateEvent + + """ + Estimated time to complete the issue. Use `null` or `0` to remove the current estimate. + """ + timeEstimate: String +} + +"""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 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 + + """ + Indicates whether duplicate NuGet packages are allowed for this namespace. + """ + nugetDuplicatesAllowed: Boolean + + """ + When nuget_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + nugetDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Terraform packages are allowed for this namespace. + """ + terraformModuleDuplicatesAllowed: Boolean + + """ + When terraform_module_duplicates_allowed is false, you can publish duplicate + packages with names that match this regex. Otherwise, this setting has no effect. + """ + terraformModuleDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether Maven package forwarding is allowed for this namespace. + """ + mavenPackageRequestsForwarding: Boolean + + """ + Indicates whether npm package forwarding is allowed for this namespace. + """ + npmPackageRequestsForwarding: Boolean + + """ + Indicates whether PyPI package forwarding is allowed for this namespace. + """ + pypiPackageRequestsForwarding: Boolean + + """ + Indicates whether Maven package forwarding is locked for all descendent namespaces. + """ + lockMavenPackageRequestsForwarding: Boolean + + """ + Indicates whether npm package forwarding is locked for all descendent namespaces. + """ + lockNpmPackageRequestsForwarding: Boolean + + """ + Indicates whether PyPI package forwarding is locked for all descendent namespaces. + """ + lockPypiPackageRequestsForwarding: Boolean + + """ + Indicates wheather the NuGet symbol server is enabled for this namespace. + """ + nugetSymbolServerEnabled: Boolean +} + +"""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 { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the note to update.""" + id: NoteID! + + """Content of the note.""" + body: String +} + +"""Autogenerated return type of UpdateNote.""" +type UpdateNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 UpdatePackagesProtectionRule""" +input UpdatePackagesProtectionRuleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the package protection rule to be updated.""" + id: PackagesProtectionRuleID! +} + +"""Autogenerated return type of UpdatePackagesProtectionRule.""" +type UpdatePackagesProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Packages protection rule after mutation. Introduced in GitLab 16.6: **Status**: Experiment. + """ + packageProtectionRule: PackagesProtectionRule @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") +} + +"""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 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 UserAchievement { + """Achievement awarded.""" + achievement: Achievement! + + """Awarded by.""" + awardedByUser: UserCore! + + """Timestamp the achievement was created.""" + createdAt: Time! + + """ID of the user achievement.""" + id: AchievementsUserAchievementID! + + """Priority of the user achievement.""" + priority: Int + + """Timestamp the achievement was revoked.""" + revokedAt: Time + + """Revoked by.""" + revokedByUser: UserCore + + """Timestamp the achievement was last updated.""" + updatedAt: Time! + + """Achievement recipient.""" + user: UserCore! +} + +"""The connection type for UserAchievement.""" +type UserAchievementConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [UserAchievementEdge] + + """A list of nodes.""" + nodes: [UserAchievement] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UserAchievementEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UserAchievement +} + +"""Autogenerated input type of UserAchievementPrioritiesUpdate""" +input UserAchievementPrioritiesUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global IDs of the user achievements being prioritized, ordered from highest to lowest priority. + """ + userAchievementIds: [AchievementsUserAchievementID!]! +} + +"""Autogenerated return type of UserAchievementPrioritiesUpdate.""" +type UserAchievementPrioritiesUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated user achievements.""" + userAchievements: [UserAchievement!]! +} + +"""Autogenerated input type of UserAchievementsDelete""" +input UserAchievementsDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the user achievement being deleted.""" + userAchievementId: AchievementsUserAchievementID! +} + +"""Autogenerated return type of UserAchievementsDelete.""" +type UserAchievementsDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted user achievement.""" + userAchievement: UserAchievement +} + +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 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 namespace_storage_pre_enforcement_banner.""" + NAMESPACE_STORAGE_PRE_ENFORCEMENT_BANNER + + """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_alert_warning_threshold. + """ + NAMESPACE_STORAGE_LIMIT_ALERT_WARNING_THRESHOLD + + """ + Callout feature name for namespace_storage_limit_alert_alert_threshold. + """ + NAMESPACE_STORAGE_LIMIT_ALERT_ALERT_THRESHOLD + + """ + Callout feature name for namespace_storage_limit_alert_error_threshold. + """ + NAMESPACE_STORAGE_LIMIT_ALERT_ERROR_THRESHOLD + + """Callout feature name for project_quality_summary_feedback.""" + PROJECT_QUALITY_SUMMARY_FEEDBACK + + """Callout feature name for new_top_level_group_alert.""" + NEW_TOP_LEVEL_GROUP_ALERT + + """Callout feature name for branch_rules_info_callout.""" + BRANCH_RULES_INFO_CALLOUT + + """ + Callout feature name for project_repository_limit_alert_warning_threshold. + """ + PROJECT_REPOSITORY_LIMIT_ALERT_WARNING_THRESHOLD + + """ + Callout feature name for project_repository_limit_alert_alert_threshold. + """ + PROJECT_REPOSITORY_LIMIT_ALERT_ALERT_THRESHOLD + + """ + Callout feature name for project_repository_limit_alert_error_threshold. + """ + PROJECT_REPOSITORY_LIMIT_ALERT_ERROR_THRESHOLD + + """Callout feature name for namespace_over_storage_users_combined_alert.""" + NAMESPACE_OVER_STORAGE_USERS_COMBINED_ALERT + + """Callout feature name for vsd_feedback_banner.""" + VSD_FEEDBACK_BANNER + + """ + Callout feature name for security_policy_protected_branch_modification. + """ + SECURITY_POLICY_PROTECTED_BRANCH_MODIFICATION + + """Callout feature name for vulnerability_report_grouping.""" + VULNERABILITY_REPORT_GROUPING + + """Callout feature name for new_nav_for_everyone_callout.""" + NEW_NAV_FOR_EVERYONE_CALLOUT + + """Callout feature name for duo_chat_callout.""" + DUO_CHAT_CALLOUT + + """Callout feature name for product_analytics_dashboard_feedback.""" + PRODUCT_ANALYTICS_DASHBOARD_FEEDBACK + + """Callout feature name for joining_a_project_alert.""" + JOINING_A_PROJECT_ALERT + + """Callout feature name for transition_to_jihu_callout.""" + TRANSITION_TO_JIHU_CALLOUT + + """Callout feature name for summarize_code_changes.""" + SUMMARIZE_CODE_CHANGES + + """Callout feature name for deployment_details_feedback.""" + DEPLOYMENT_DETAILS_FEEDBACK + + """Callout feature name for deployment_approvals_empty_state.""" + DEPLOYMENT_APPROVALS_EMPTY_STATE + + """Callout feature name for period_in_terraform_state_name_alert.""" + PERIOD_IN_TERRAFORM_STATE_NAME_ALERT +} + +"""Core representation 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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Username of the reviewer.""" + reviewerUsername: String + + """Filter by reviewer presence. Incompatible with reviewerUsername.""" + reviewerWildcardId: ReviewerWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Bio of the user.""" + bio: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User's default commit email.""" + commitEmail: String + + """Projects the user has contributed to.""" + contributedProjects( + """Sort contributed projects.""" + sort: ProjectSort = LATEST_ACTIVITY_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 + ): ProjectConnection + + """Timestamp of when the user was created.""" + createdAt: Time + + """Discord ID of the user.""" + discord: String + + """User email. Deprecated in GitLab 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in GitLab 13.7.") + + """User's email addresses.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EmailConnection + + """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! + + """IDE settings.""" + ide: Ide + + """Job title of the user.""" + jobTitle: String + + """Date the user last performed any actions.""" + lastActivityOn: Date + + """LinkedIn profile name of the user.""" + linkedin: String + + """Location of the user.""" + location: String + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """User's custom namespace commit emails.""" + namespaceCommitEmails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceCommitEmailConnection + + """Who the user represents or works for.""" + organization: String + + """ + Organizations where the user has access. Introduced in GitLab 16.6: **Status**: Experiment. + """ + organizations( + """Search query, which can be for the organization name or a path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.6.") + + """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 + + """Pronouns of the user.""" + pronouns: String + + """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 the state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """ + Limit results to approved merge requests. + Available only when the feature flag `mr_approved_filter` is enabled. + + """ + approved: Boolean + + """Merge requests created after the timestamp.""" + createdAfter: Time + + """Merge requests created before the timestamp.""" + createdBefore: Time + + """Merge requests deployed after the timestamp.""" + deployedAfter: Time + + """Merge requests deployed before the timestamp.""" + deployedBefore: Time + + """ID of the deployment.""" + deploymentId: String + + """Merge requests updated after the timestamp.""" + updatedAfter: Time + + """Merge requests updated before the timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after the date.""" + mergedAfter: Time + + """Merge requests merged before the date.""" + mergedBefore: Time + + """Title of the milestone. Incompatible with milestoneWildcardId.""" + milestoneTitle: String + + """ + Filter issues by milestone ID wildcard. Incompatible with milestoneTitle. + """ + milestoneWildcardId: MilestoneWildcardId + + """Sort merge requests by the criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The global ID of the group the authored merge requests should be in. + Merge requests in subgroups are included. + + """ + groupId: GroupID + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """ + Filter by assignee presence. Incompatible with assigneeUsernames and assigneeUsername. + """ + assigneeWildcardId: AssigneeWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Saved replies authored by the user.""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Saved reply authored by the user.""" + savedReply( + """ID of a saved reply.""" + id: UsersSavedReplyID! + ): SavedReply + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """List timelogs in a particular order.""" + sort: TimelogSort = SPENT_AT_ASC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Sort todos by given criteria.""" + sort: TodoSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """X (formerly Twitter) username of the user.""" + twitter: String + + """ + Achievements for the user. Only returns for namespaces where the + `achievements` feature flag is enabled. Introduced in GitLab 15.10: + **Status**: Experiment. + """ + userAchievements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserAchievementConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """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 { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [UserCoreEdge] + + """A list of nodes.""" + nodes: [UserCore] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UserCoreEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UserCore +} + +""" +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 { + """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 { + """If `true`, the user can perform `create_snippet` on this resource""" + createSnippet: Boolean! +} + +type UserPreferences { + """Status of the Web IDE Extension Marketplace opt-in for the user.""" + extensionsMarketplaceOptInStatus: ExtensionsMarketplaceOptInStatus! + + """Sort order for issue lists.""" + issuesSort: IssueSort + + """ + Whether Web IDE Extension Marketplace is enabled for the user. Deprecated in + GitLab 16.11: Use `extensions_marketplace_opt_in_status` instead. + """ + useWebIdeExtensionMarketplace: Boolean! @deprecated(reason: "Use `extensions_marketplace_opt_in_status` instead. Deprecated in GitLab 16.11.") + + """Determines whether the pipeline list shows ID or IID.""" + visibilityPipelineIdType: VisibilityPipelineIdType +} + +"""Autogenerated input type of UserPreferencesUpdate""" +input UserPreferencesUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Status of the Web IDE Extension Marketplace opt-in for the user.""" + extensionsMarketplaceOptInStatus: ExtensionsMarketplaceOptInStatus + + """Sort order for issue lists.""" + issuesSort: IssueSort + + """Whether Web IDE Extension Marketplace is enabled for the user.""" + useWebIdeExtensionMarketplace: Boolean + + """Determines whether the pipeline list shows ID or IID.""" + visibilityPipelineIdType: VisibilityPipelineIdType +} + +"""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 +} + +"""Autogenerated input type of UserSetNamespaceCommitEmail""" +input UserSetNamespaceCommitEmailInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the namespace to set the namespace commit email for.""" + namespaceId: NamespaceID! + + """ID of the email to set.""" + emailId: EmailID +} + +"""Autogenerated return type of UserSetNamespaceCommitEmail.""" +type UserSetNamespaceCommitEmailPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """User namespace commit email after mutation.""" + namespaceCommitEmail: NamespaceCommitEmail +} + +""" +A `UsersSavedReplyID` is a global ID. It is encoded as a string. + +An example `UsersSavedReplyID` is: `"gid://gitlab/Users::SavedReply/1"`. +""" +scalar UsersSavedReplyID + +"""Possible states of a user""" +enum UserState { + """User is active and can use the system.""" + active + + """User has been blocked by an administrator and cannot use the system.""" + blocked + + """User is no longer active and cannot use the system.""" + deactivated + + """User is blocked, and their contributions are hidden.""" + banned + + """User has been blocked by the system.""" + ldap_blocked + + """User is blocked and pending approval.""" + blocked_pending_approval +} + +type UserStatus { + """User availability status.""" + availability: AvailabilityEnum! + + """String representation of emoji.""" + emoji: String + + """User status message.""" + message: String + + """HTML of the user status message""" + messageHtml: String +} + +type ValueStream { + """ID of the value stream.""" + id: AnalyticsCycleAnalyticsValueStreamID! + + """Name of the value stream.""" + name: String! + + """Namespace the value stream belongs to.""" + namespace: Namespace! + + """ + Project the value stream belongs to, returns empty if it belongs to a group. + Introduced in GitLab 15.6: **Status**: Experiment. + """ + project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.6.") + + """Value Stream stages.""" + stages( + """Value stream stage id.""" + id: ID + ): [ValueStreamStage!] +} + +type ValueStreamAnalyticsMetric { + """Identifier for the metric.""" + identifier: String! + + """Optional links for drilling down.""" + links: [ValueStreamMetricLinkType!]! + + """Title for the metric.""" + title: String! + + """Unit of measurement.""" + unit: String + + """Value for the metric.""" + value: Float +} + +"""The connection type for ValueStream.""" +type ValueStreamConnection { + """A list of edges.""" + edges: [ValueStreamEdge] + + """A list of nodes.""" + nodes: [ValueStream] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ValueStreamEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ValueStream +} + +type ValueStreamMetricLinkType { + """Link to the metric documentation.""" + docsLink: Boolean + + """Label for the link.""" + label: String! + + """Name of the link group.""" + name: String! + + """Drill-down URL.""" + url: String! +} + +type ValueStreamStage { + """Whether the stage is customized.""" + custom: Boolean! + + """HTML description of the end event.""" + endEventHtmlDescription: String! + + """End event identifier.""" + endEventIdentifier: ValueStreamStageEvent! + + """Whether the stage is hidden.""" + hidden: Boolean! + + """ID of the value stream.""" + id: AnalyticsCycleAnalyticsStageID! + + """Aggregated metrics for the given stage""" + metrics( + """ + Aggregation timeframe. Filters the issue or the merge request creation time + for FOSS projects, and the end event timestamp for licensed projects or groups. + """ + timeframe: Timeframe! + + """Usernames of users assigned to the issue or the merge request.""" + assigneeUsernames: [String!] + + """Username of the author of the issue or the merge request.""" + authorUsername: String + + """Milestone applied to the issue or the merge request.""" + milestoneTitle: String + + """Labels applied to the issue or the merge request.""" + labelNames: [String!] + ): ValueStreamStageMetrics! + + """Name of the stage.""" + name: String! + + """HTML description of the start event.""" + startEventHtmlDescription: String! + + """Start event identifier.""" + startEventIdentifier: ValueStreamStageEvent! +} + +"""Stage event identifiers""" +enum ValueStreamStageEvent { + """Issue created event.""" + ISSUE_CREATED + + """Issue first mentioned in commit event.""" + ISSUE_FIRST_MENTIONED_IN_COMMIT + + """Issue deployed to production event.""" + ISSUE_DEPLOYED_TO_PRODUCTION + + """Merge request created event.""" + MERGE_REQUEST_CREATED + + """Merge request first deployed to production event.""" + MERGE_REQUEST_FIRST_DEPLOYED_TO_PRODUCTION + + """Merge request last build finished event.""" + MERGE_REQUEST_LAST_BUILD_FINISHED + + """Merge request last build started event.""" + MERGE_REQUEST_LAST_BUILD_STARTED + + """Merge request merged event.""" + MERGE_REQUEST_MERGED + + """Code stage start event.""" + CODE_STAGE_START + + """Issue stage end event.""" + ISSUE_STAGE_END + + """Plan stage start event.""" + PLAN_STAGE_START +} + +type ValueStreamStageMetrics { + """Average duration in seconds.""" + average: ValueStreamAnalyticsMetric + + """ + Limited item count. The backend counts maximum 1000 items, for free projects, + and maximum 10,000 items for licensed projects or licensed groups. + """ + count: ValueStreamAnalyticsMetric + + """Median duration in seconds.""" + median: ValueStreamAnalyticsMetric +} + +"""Verification status of a GPG, X.509 or SSH signature for a commit.""" +enum VerificationStatus { + """unverified verification status.""" + UNVERIFIED + + """verified verification status.""" + VERIFIED + + """same_user_different_email verification status.""" + SAME_USER_DIFFERENT_EMAIL + + """other_user verification status.""" + OTHER_USER + + """unverified_key verification status.""" + UNVERIFIED_KEY + + """unknown_key verification status.""" + UNKNOWN_KEY + + """multiple_signatures verification status.""" + MULTIPLE_SIGNATURES + + """revoked_key verification status.""" + REVOKED_KEY + + """verified_system verification status.""" + VERIFIED_SYSTEM +} + +enum VisibilityLevelsEnum { + """Private visibility level.""" + private + + """Internal visibility level.""" + internal + + """Public visibility level.""" + public +} + +"""Determines whether the pipeline list shows ID or IID""" +enum VisibilityPipelineIdType { + """Display pipeline ID.""" + ID + + """Display pipeline IID.""" + IID +} + +enum VisibilityScopesEnum { + """Snippet is visible only to the snippet creator.""" + private + + """Snippet is visible for any logged in user except external users.""" + internal + + """Snippet can be accessed without any authentication.""" + public +} + +type WorkItem implements Todoable { + """ + Whether the work item belongs to an archived project. Always false for group + level work items. Introduced in GitLab 16.5: **Status**: Experiment. + """ + archived: Boolean! @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.5.") + + """ + User that created the work item. Introduced in GitLab 15.9: **Status**: Experiment. + """ + author: UserCore @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.9.") + + """Timestamp of when the work item was closed.""" + closedAt: Time + + """Indicates the work item is confidential.""" + confidential: Boolean! + + """User specific email address for the work item.""" + createNoteEmail: String + + """Timestamp of when the work item was created.""" + createdAt: Time! + + """Description of the work item.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Internal ID of the work item.""" + iid: String! + + """ + Lock version of the work item. Incremented each time the work item is updated. + """ + lockVersion: Int! + + """ + Namespace the work item belongs to. Introduced in GitLab 15.10: **Status**: Experiment. + """ + namespace: Namespace @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.10.") + + """ + Project the work item belongs to. Introduced in GitLab 15.3: **Status**: Experiment. + """ + project: Project @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 15.3.") + + """ + Internal reference of the work item. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """State of the work item.""" + state: WorkItemState! + + """Title of the work item.""" + title: String! + + """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! +} + +"""Autogenerated input type of WorkItemAddClosingMergeRequest""" +input WorkItemAddClosingMergeRequestInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Full path of the context namespace (project or group). Only project full paths + are used to find a merge request using a short reference syntax like `!1`. + Ignored for full references and URLs. Defaults to the namespace of the work + item if not provided. + """ + contextNamespacePath: ID + + """Global ID of the work item.""" + id: WorkItemID! + + """ + Merge request reference (short, full or URL). Example: `!1`, + `project_full_path!1` or + `https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1`. + """ + mergeRequestReference: String! +} + +"""Autogenerated return type of WorkItemAddClosingMergeRequest.""" +type WorkItemAddClosingMergeRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Closing merge request added to the work item.""" + closingMergeRequest: WorkItemClosingMergeRequest + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Work item with new closing merge requests.""" + workItem: WorkItem +} + +"""Autogenerated input type of WorkItemAddLinkedItems""" +input WorkItemAddLinkedItemsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Type of link. Defaults to `RELATED`.""" + linkType: WorkItemRelatedLinkType + + """ + Global IDs of the items to link. Maximum number of IDs you can provide: 10. + """ + workItemsIds: [WorkItemID!]! +} + +"""Autogenerated return type of WorkItemAddLinkedItems.""" +type WorkItemAddLinkedItemsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Linked items update result message.""" + message: String + + """Updated work item.""" + workItem: WorkItem +} + +"""Values for work item award emoji update enum""" +enum WorkItemAwardEmojiUpdateAction { + """Adds the emoji.""" + ADD + + """Removes the emoji.""" + REMOVE + + """Toggles the status of the emoji.""" + TOGGLE +} + +type WorkItemClosingMergeRequest { + """ + Whether this merge request link was created by referencing the work item on + the merge request description, using the closing pattern. + """ + fromMrDescription: Boolean! + + """Global ID of the closing merge request association.""" + id: MergeRequestsClosingIssuesID! + + """Related merge request.""" + mergeRequest: MergeRequest +} + +"""The connection type for WorkItemClosingMergeRequest.""" +type WorkItemClosingMergeRequestConnection { + """A list of edges.""" + edges: [WorkItemClosingMergeRequestEdge] + + """A list of nodes.""" + nodes: [WorkItemClosingMergeRequest] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type WorkItemClosingMergeRequestEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: WorkItemClosingMergeRequest +} + +"""The connection type for WorkItem.""" +type WorkItemConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [WorkItemEdge] + + """A list of nodes.""" + nodes: [WorkItem] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of WorkItemConvert""" +input WorkItemConvertInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Global ID of the new work item type.""" + workItemTypeId: WorkItemsTypeID! +} + +"""Autogenerated return type of WorkItemConvert.""" +type WorkItemConvertPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated work item.""" + workItem: WorkItem +} + +input WorkItemConvertTaskInput { + """Last line in the Markdown source that defines the list item task.""" + lineNumberEnd: Int! + + """First line in the Markdown source that defines the list item task.""" + lineNumberStart: Int! + + """ + Current lock version of the work item containing the task in the description. + """ + lockVersion: Int! + + """ + Full string of the task to be replaced. New title for the created work item. + """ + title: String! + + """Global ID of the work item type used to create the new work item.""" + workItemTypeId: WorkItemsTypeID! +} + +"""Autogenerated input type of WorkItemCreateFromTask""" +input WorkItemCreateFromTaskInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Arguments necessary to convert a task into a work item.""" + workItemData: WorkItemConvertTaskInput! +} + +"""Autogenerated return type of WorkItemCreateFromTask.""" +type WorkItemCreateFromTaskPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during 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 + + """Input for assignees widget.""" + assigneesWidget: WorkItemWidgetAssigneesInput + + """Sets the work item confidentiality.""" + confidential: Boolean + + """Input for description widget.""" + descriptionWidget: WorkItemWidgetDescriptionInput + + """Input for hierarchy widget.""" + hierarchyWidget: WorkItemWidgetHierarchyCreateInput + + """Input for labels widget.""" + labelsWidget: WorkItemWidgetLabelsCreateInput + + """Input for milestone widget.""" + milestoneWidget: WorkItemWidgetMilestoneInput + + """ + Full path of the namespace(project or group) the work item is created in. + """ + namespacePath: 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 +} + +"""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!]! + + """Namespace the deleted work item belonged to.""" + namespace: Namespace + + """ + Project the deleted work item belonged to. Deprecated in GitLab 16.9: Use `namespace`. + """ + project: Project @deprecated(reason: "Use `namespace`. Deprecated in GitLab 16.9.") +} + +"""An edge in a connection.""" +type WorkItemEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: WorkItem +} + +"""Autogenerated input type of WorkItemExport""" +input WorkItemExportInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Current state of the work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """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!] + + """Full project path.""" + projectPath: ID! + + """ + List of selected fields to be exported. Omit to export all available fields. + """ + selectedFields: [AvailableExportFields!] +} + +"""Autogenerated return type of WorkItemExport.""" +type WorkItemExportPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Export request result message.""" + message: String +} + +""" +A `WorkItemID` is a global ID. It is encoded as a string. + +An example `WorkItemID` is: `"gid://gitlab/WorkItem/1"`. + +While we transition from Issues into Work Items this type will temporarily support +`IssueID` like: `"gid://gitlab/Issue/1"`. This behavior will be removed without notice in the future. + +""" +scalar WorkItemID + +"""Check permissions for the current user on a work item""" +type WorkItemPermissions { + """If `true`, the user can perform `admin_parent_link` on this resource""" + adminParentLink: Boolean! + + """If `true`, the user can perform `admin_work_item` on this resource""" + adminWorkItem: Boolean! + + """ + If `true`, the user can perform `admin_work_item_link` on this resource + """ + adminWorkItemLink: Boolean! + + """If `true`, the user can perform `create_note` on this resource""" + createNote: Boolean! + + """If `true`, the user can perform `delete_work_item` on this resource""" + deleteWorkItem: Boolean! + + """If `true`, the user can perform `read_work_item` on this resource""" + readWorkItem: Boolean! + + """ + If `true`, the user can perform `set_work_item_metadata` on this resource + """ + setWorkItemMetadata: Boolean! + + """If `true`, the user can perform `update_work_item` on this resource""" + updateWorkItem: Boolean! +} + +"""Values for work item link types""" +enum WorkItemRelatedLinkType { + """Related type.""" + RELATED +} + +"""Autogenerated input type of WorkItemRemoveLinkedItems""" +input WorkItemRemoveLinkedItemsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """ + Global IDs of the items to unlink. Maximum number of IDs you can provide: 10. + """ + workItemsIds: [WorkItemID!]! +} + +"""Autogenerated return type of WorkItemRemoveLinkedItems.""" +type WorkItemRemoveLinkedItemsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Linked items update result message.""" + message: String + + """Updated work item.""" + workItem: WorkItem +} + +"""Values for sorting work items""" +enum WorkItemSort { + """Title by ascending order.""" + TITLE_ASC + + """Title by descending order.""" + TITLE_DESC + + """ + Updated at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Updated at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in GitLab 13.5.") + + """ + Created at descending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in GitLab 13.5.") + + """ + Created at ascending order. Deprecated in GitLab 13.5: This was renamed. + """ + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in GitLab 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +""" +A `WorkItemsRelatedWorkItemLinkID` is a global ID. It is encoded as a string. + +An example `WorkItemsRelatedWorkItemLinkID` is: `"gid://gitlab/WorkItems::RelatedWorkItemLink/1"`. +""" +scalar WorkItemsRelatedWorkItemLinkID + +"""State of a GitLab work item""" +enum WorkItemState { + """In open state.""" + OPEN + + """In closed state.""" + CLOSED +} + +"""Represents total number of work items for the represented states""" +type WorkItemStateCountsType { + """Number of work items for the project or group.""" + all: Int + + """Number of work items with state CLOSED for the project or group.""" + closed: Int + + """Number of work items with state OPENED for the project or group.""" + opened: Int +} + +"""Values for work item state events""" +enum WorkItemStateEvent { + """Reopens the work item.""" + REOPEN + + """Closes the work item.""" + CLOSE +} + +""" +A `WorkItemsTypeID` is a global ID. It is encoded as a string. + +An example `WorkItemsTypeID` is: `"gid://gitlab/WorkItems::Type/1"`. +""" +scalar WorkItemsTypeID + +"""Autogenerated input type of WorkItemSubscribe""" +input WorkItemSubscribeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Desired state of the subscription.""" + subscribed: Boolean! +} + +"""Autogenerated return type of WorkItemSubscribe.""" +type WorkItemSubscribePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Work item after mutation.""" + workItem: WorkItem +} + +type WorkItemTimelog { + """Internal ID of the timelog.""" + id: ID! + + """Note where the quick action was executed to add the logged time.""" + note: Note + + """Timestamp of when the time tracked was spent at.""" + spentAt: Time + + """Summary of how the time was spent.""" + summary: String + + """Time spent displayed in seconds.""" + timeSpent: Int! + + """User that logged the time.""" + user: UserCore! + + """Permissions for the current user on the resource""" + userPermissions: TimelogPermissions! +} + +"""The connection type for WorkItemTimelog.""" +type WorkItemTimelogConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [WorkItemTimelogEdge] + + """A list of nodes.""" + nodes: [WorkItemTimelog] + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """Total time spent in seconds.""" + totalSpentTime: BigInt! +} + +"""An edge in a connection.""" +type WorkItemTimelogEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: WorkItemTimelog +} + +"""Values for work item to-do update enum""" +enum WorkItemTodoUpdateAction { + """Marks the to-do as done.""" + MARK_AS_DONE + + """Adds the to-do.""" + ADD +} + +type WorkItemType { + """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! + + """ + Available widgets for the work item type. Introduced in GitLab 16.7: **Status**: Experiment. + """ + widgetDefinitions: [WorkItemWidgetDefinition!] @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.7.") +} + +"""The connection type for WorkItemType.""" +type WorkItemTypeConnection { + """A list of edges.""" + edges: [WorkItemTypeEdge] + + """A list of nodes.""" + nodes: [WorkItemType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""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 +} + +"""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 labels widget.""" + labelsWidget: WorkItemWidgetLabelsUpdateInput + + """Input for milestone widget.""" + milestoneWidget: WorkItemWidgetMilestoneInput + + """Input for notifications widget.""" + notificationsWidget: WorkItemWidgetNotificationsUpdateInput + + """Input for to-dos widget.""" + currentUserTodosWidget: WorkItemWidgetCurrentUserTodosInput + + """Input for emoji reactions widget.""" + awardEmojiWidget: WorkItemWidgetAwardEmojiUpdateInput + + """Input for notes widget.""" + notesWidget: WorkItemWidgetNotesInput + + """Input for time tracking widget.""" + timeTrackingWidget: WorkItemWidgetTimeTrackingInput +} + +"""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 +} + +interface WorkItemWidget { + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents an assignees widget""" +type WorkItemWidgetAssignees implements WorkItemWidget { + """ + Indicates whether multiple assignees are allowed. Deprecated in GitLab 16.7: + Field moved to workItemType widget definition interface. + """ + allowsMultipleAssignees: Boolean @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `workitemWidgetDefinitionAssignees.allowsMultipleAssignees`. Deprecated in GitLab 16.7.") + + """Assignees of the work item.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ + Indicates whether the current user can invite members to the work item's + project. Deprecated in GitLab 16.7: Field moved to workItemType widget + definition interface. + """ + canInviteMembers: Boolean! @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `workitemWidgetDefinitionAssignees.canInviteMembers`. Deprecated in GitLab 16.7.") + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetAssigneesInput { + """Global IDs of assignees.""" + assigneeIds: [UserID!]! +} + +"""Represents the emoji reactions widget""" +type WorkItemWidgetAwardEmoji implements WorkItemWidget { + """Emoji reactions on the work item.""" + awardEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AwardEmojiConnection + + """Number of downvotes the work item has received.""" + downvotes: Int! + + """Widget type.""" + type: WorkItemWidgetType + + """Number of upvotes the work item has received.""" + upvotes: Int! +} + +input WorkItemWidgetAwardEmojiUpdateInput { + """Action for the update.""" + action: WorkItemAwardEmojiUpdateAction! + + """Emoji name.""" + name: String! +} + +"""Represents a todos widget""" +type WorkItemWidgetCurrentUserTodos implements CurrentUserTodos & WorkItemWidget { + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetCurrentUserTodosInput { + """Action for the update.""" + action: WorkItemTodoUpdateAction! + + """ + Global ID of the to-do. If not present, all to-dos of the work item will be updated. + """ + todoId: TodoID +} + +interface WorkItemWidgetDefinition { + """Widget type.""" + type: WorkItemWidgetType! +} + +"""Represents an assignees widget definition""" +type WorkItemWidgetDefinitionAssignees implements WorkItemWidgetDefinition { + """ + Indicates whether the current user can invite members to the work item's parent. + """ + canInviteMembers: Boolean! + + """Widget type.""" + type: WorkItemWidgetType! +} + +"""Represents a generic widget definition""" +type WorkItemWidgetDefinitionGeneric implements WorkItemWidgetDefinition { + """Widget type.""" + type: WorkItemWidgetType! +} + +"""Represents a hierarchy widget definition""" +type WorkItemWidgetDefinitionHierarchy implements WorkItemWidgetDefinition { + """Allowed child types for the work item type.""" + allowedChildTypes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemTypeConnection + + """Allowed parent types for the work item type.""" + allowedParentTypes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemTypeConnection + + """Widget type.""" + type: WorkItemWidgetType! +} + +"""Represents a description widget""" +type WorkItemWidgetDescription implements WorkItemWidget { + """Description of the work item.""" + description: String + + """GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ + Whether the description has been edited since the work item was created. + """ + edited: Boolean! + + """Timestamp of when the work item's description was last edited.""" + lastEditedAt: Time + + """User that made the last edit to the work item's description.""" + lastEditedBy: UserCore + + """Task completion status of the work item.""" + taskCompletionStatus: TaskCompletionStatus! + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetDescriptionInput { + """Description of the work item.""" + description: String! +} + +"""Represents designs widget""" +type WorkItemWidgetDesigns implements WorkItemWidget { + """Collection of design images associated with the issue.""" + designCollection: DesignCollection + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents a development widget""" +type WorkItemWidgetDevelopment implements WorkItemWidget { + """Merge requests that will close the work item when merged.""" + closingMergeRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemClosingMergeRequestConnection + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents a hierarchy widget""" +type WorkItemWidgetHierarchy implements WorkItemWidget { + """Ancestors (parents) of the work item.""" + ancestors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemConnection + + """Child work items.""" + children( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the 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 + + """Indicates if the work item has children.""" + hasChildren: Boolean! + + """Parent work item.""" + parent: WorkItem + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetHierarchyCreateInput { + """Global ID of the parent work item.""" + parentId: WorkItemID +} + +input WorkItemWidgetHierarchyUpdateInput { + """ID of the work item to be switched with.""" + adjacentWorkItemId: WorkItemID + + """Global IDs of children work items.""" + childrenIds: [WorkItemID!] + + """ + Global ID of the parent work item. Use `null` to remove the association. + """ + parentId: WorkItemID + + """Type of switch. Valid values are `BEFORE` or `AFTER`.""" + relativePosition: RelativePositionType +} + +"""Represents the labels widget""" +type WorkItemWidgetLabels implements WorkItemWidget { + """ + Indicates whether a scoped label is allowed. Deprecated in GitLab 16.7: Field + moved to workItemType widget definition interface. + """ + allowsScopedLabels: Boolean @deprecated(reason: "Field moved to workItemType widget definition interface. Please use `WorkItemWidgetDefinitionLabels.allowsScopedLabels`. Deprecated in GitLab 16.7.") + + """Labels assigned to the work item.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetLabelsCreateInput { + """IDs of labels to be added to the work item.""" + labelIds: [LabelID!]! +} + +input WorkItemWidgetLabelsUpdateInput { + """Global IDs of labels to be added to the work item.""" + addLabelIds: [LabelID!] + + """Global IDs of labels to be removed from the work item.""" + removeLabelIds: [LabelID!] +} + +"""Represents the linked items widget""" +type WorkItemWidgetLinkedItems implements WorkItemWidget { + """ + Linked items for the work item. Introduced in GitLab 16.3: **Status**: Experiment. + """ + linkedItems( + """ + Filter by link type. Supported values: RELATED. Returns all types if omitted. + """ + filter: WorkItemRelatedLinkType + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LinkedWorkItemTypeConnection @deprecated(reason: "**Status**: Experiment. Introduced in GitLab 16.3.") + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents a milestone widget""" +type WorkItemWidgetMilestone implements WorkItemWidget { + """Milestone of the work item.""" + milestone: Milestone + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetMilestoneInput { + """Milestone to assign to the work item.""" + milestoneId: MilestoneID +} + +"""Represents a notes widget""" +type WorkItemWidgetNotes implements WorkItemWidget { + """Discussion lock attribute of the work item.""" + discussionLocked: Boolean + + """Notes on this work item.""" + discussions( + """Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.""" + filter: NotesFilterType = ALL_NOTES + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """Returns the first _n_ elements from the list.""" + first: Int + ): DiscussionConnection + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetNotesInput { + """Discussion lock attribute for notes widget of the work item.""" + discussionLocked: Boolean! +} + +"""Represents the notifications widget""" +type WorkItemWidgetNotifications implements WorkItemWidget { + """ + Whether the current user is subscribed to notifications on the work item. + """ + subscribed: Boolean! + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetNotificationsUpdateInput { + """Desired state of the subscription.""" + subscribed: Boolean! +} + +"""Represents a participants widget""" +type WorkItemWidgetParticipants implements WorkItemWidget { + """Participants in the work item.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents a 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 time tracking widget""" +type WorkItemWidgetTimeTracking implements WorkItemWidget { + """Time estimate of the work item.""" + timeEstimate: Int + + """Timelogs on the work item.""" + timelogs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemTimelogConnection + + """Total time (in seconds) reported as spent on the work item.""" + totalTimeSpent: Int + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetTimeTrackingInput { + """ + Time estimate for the work item in human readable format. For example: 1h 30m. + """ + timeEstimate: String + + """Timelog data for time spent on the work item.""" + timelog: WorkItemWidgetTimeTrackingTimelogInput +} + +input WorkItemWidgetTimeTrackingTimelogInput { + """Amount of time spent in human readable format. For example: 1h 30m.""" + timeSpent: String! + + """ + Timestamp of when the time tracked was spent at, if not provided would be set to current timestamp. + """ + spentAt: Time + + """Summary of how the time was spent.""" + summary: String +} + +"""Type of a work item widget""" +enum WorkItemWidgetType { + """Assignees widget.""" + ASSIGNEES + + """Description widget.""" + DESCRIPTION + + """Hierarchy widget.""" + HIERARCHY + + """Labels widget.""" + LABELS + + """Milestone widget.""" + MILESTONE + + """Notes widget.""" + NOTES + + """Start And Due Date widget.""" + START_AND_DUE_DATE + + """Notifications widget.""" + NOTIFICATIONS + + """Current User Todos widget.""" + CURRENT_USER_TODOS + + """Award Emoji widget.""" + AWARD_EMOJI + + """Linked Items widget.""" + LINKED_ITEMS + + """Participants widget.""" + PARTICIPANTS + + """Time Tracking widget.""" + TIME_TRACKING + + """Designs widget.""" + DESIGNS + + """Development widget.""" + DEVELOPMENT +} + +"""Represents an X.509 certificate.""" +type X509Certificate { + """Indicates if the certificate is good or revoked.""" + certificateStatus: String! + + """Timestamp of when the certificate was saved.""" + createdAt: Time! + + """Email associated with the cerificate.""" + email: String! + + """ID of the certificate.""" + id: ID! + + """Serial number of the certificate.""" + serialNumber: String! + + """Subject of the certificate.""" + subject: String! + + """Subject key identifier of the certificate.""" + subjectKeyIdentifier: String! + + """Timestamp of when the certificate was last updated.""" + updatedAt: Time! + + """Issuer of the certificate.""" + x509Issuer: X509Issuer! +} + +"""Issuer of an X.509 certificate.""" +type X509Issuer { + """Timestamp of when the issuer was created.""" + createdAt: Time + + """Certificate revokation list of the issuer.""" + crlUrl: String + + """ID of the issuer.""" + id: ID + + """Subject of the issuer.""" + subject: String + + """Subject key identifier of the issuer.""" + subjectKeyIdentifier: String + + """Timestamp of when the issuer was last updated.""" + updatedAt: Time +} + +"""X.509 signature for a signed commit""" +type X509Signature implements CommitSignature { + """SHA of the associated commit.""" + commitSha: String + + """Project of the associated commit.""" + project: Project + + """User associated with the key.""" + user: UserCore + + """Indicates verification status of the associated key or certificate.""" + verificationStatus: VerificationStatus + + """Certificate used for the signature.""" + x509Certificate: X509Certificate +} +