diff --git a/build.yaml b/build.yaml index 057007e..c525868 100644 --- a/build.yaml +++ b/build.yaml @@ -1,5 +1,11 @@ targets: $default: + builders: + json_serializable: + options: + github: + sources: + - lib/gql_github/* builders: ferry_generator|graphql_builder: enabled: true @@ -19,3 +25,15 @@ targets: custom_serializers: - import: package:git_touch/utils/date_time_serializer.dart name: DateTimeSerializer + gitlab: + sources: + - lib/gql_gitlab/* + builders: + ferry_generator|graphql_builder: + enabled: true + options: + schema: git_touch|lib/gql_gitlab/schema.graphql + ferry_generator|serializer_builder: + enabled: true + options: + schema: git_touch|lib/gql_gitlab/schema.graphql diff --git a/lib/app.dart b/lib/app.dart index 192ba89..c82d080 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -62,6 +62,9 @@ class MyApp extends StatelessWidget { theme: CupertinoThemeData( brightness: theme.brightness, primaryColor: antTheme.colorPrimary, + scaffoldBackgroundColor: theme.brightness == Brightness.dark + ? const Color(0x00ff2629) + : const Color(0xfffafbfc), textTheme: CupertinoTextThemeData( textStyle: TextStyle( fontSize: antTheme.fontSizeMain, diff --git a/lib/gql_gitlab/project.graphql b/lib/gql_gitlab/project.graphql new file mode 100644 index 0000000..7c30537 --- /dev/null +++ b/lib/gql_gitlab/project.graphql @@ -0,0 +1,5 @@ +query Project($fullPath: String!) { + project(fullPath: $fullPath) { + name + } +} diff --git a/lib/gql_gitlab/schema.graphql b/lib/gql_gitlab/schema.graphql new file mode 100644 index 0000000..1fa79d0 --- /dev/null +++ b/lib/gql_gitlab/schema.graphql @@ -0,0 +1,36947 @@ +""" +Represents the access level of a relationship between a User and object that it is related to +""" +type AccessLevel { + """Integer representation of access level.""" + integerValue: Int + + """String representation of access level.""" + stringValue: AccessLevelEnum +} + +"""Access level to a resource""" +enum AccessLevelEnum { + """No access.""" + NO_ACCESS + + """Minimal access.""" + MINIMAL_ACCESS + + """Guest access.""" + GUEST + + """Reporter access.""" + REPORTER + + """Developer access.""" + DEVELOPER + + """Maintainer access.""" + MAINTAINER + + """Owner access.""" + OWNER +} + +"""Autogenerated input type of AddProjectToSecurityDashboard""" +input AddProjectToSecurityDashboardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the project to be added to Instance Security Dashboard.""" + id: ProjectID! +} + +"""Autogenerated return type of AddProjectToSecurityDashboard""" +type AddProjectToSecurityDashboardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project that was added to the Instance Security Dashboard.""" + project: Project +} + +"""Autogenerated input type of AdminSidekiqQueuesDeleteJobs""" +input AdminSidekiqQueuesDeleteJobsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Delete jobs matching user in the context metadata.""" + user: String + + """Delete jobs matching project in the context metadata.""" + project: String + + """Delete jobs matching root_namespace in the context metadata.""" + rootNamespace: String + + """Delete jobs matching client_id in the context metadata.""" + clientId: String + + """Delete jobs matching caller_id in the context metadata.""" + callerId: String + + """Delete jobs matching remote_ip in the context metadata.""" + remoteIp: String + + """Delete jobs matching job_id in the context metadata.""" + jobId: String + + """Delete jobs matching pipeline_id in the context metadata.""" + pipelineId: String + + """Delete jobs matching related_class in the context metadata.""" + relatedClass: String + + """Delete jobs matching feature_category in the context metadata.""" + featureCategory: String + + """Delete jobs matching artifact_size in the context metadata.""" + artifactSize: String + + """Delete jobs matching artifact_used_cdn in the context metadata.""" + artifactUsedCdn: String + + """ + Delete jobs matching artifacts_dependencies_size in the context metadata. + """ + artifactsDependenciesSize: String + + """ + Delete jobs matching artifacts_dependencies_count in the context metadata. + """ + artifactsDependenciesCount: String + + """Delete jobs matching root_caller_id in the context metadata.""" + rootCallerId: String + + """Delete jobs matching subscription_plan in the context metadata.""" + subscriptionPlan: String + + """Delete jobs with the given worker class.""" + workerClass: String + + """Name of the queue to delete jobs from.""" + queueName: String! +} + +"""Autogenerated return type of AdminSidekiqQueuesDeleteJobs""" +type AdminSidekiqQueuesDeleteJobsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Information about the status of the deletion request.""" + result: DeleteJobsResponse +} + +"""Configuration details for an Agent""" +type AgentConfiguration { + """Name of the agent.""" + agentName: String +} + +"""The connection type for AgentConfiguration.""" +type AgentConfigurationConnection { + """A list of edges.""" + edges: [AgentConfigurationEdge] + + """A list of nodes.""" + nodes: [AgentConfiguration] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AgentConfigurationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AgentConfiguration +} + +"""Information about a connected Agent""" +type AgentMetadata { + """Agent version commit.""" + commit: String + + """Name of the pod running the Agent.""" + podName: String + + """Namespace of the pod running the Agent.""" + podNamespace: String + + """Agent version tag.""" + version: String +} + +"""Agent token statuses""" +enum AgentTokenStatus { + """Active agent token.""" + ACTIVE + + """Revoked agent token.""" + REVOKED +} + +"""Describes an alert from the project's Alert Management""" +type AlertManagementAlert implements NoteableInterface & Todoable { + """Assignees of the alert.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Timestamp the alert was created.""" + createdAt: Time + + """Description of the alert.""" + description: String + + """Alert details.""" + details: JSON + + """URL of the alert detail page.""" + detailsUrl: String! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Timestamp the alert ended.""" + endedAt: Time + + """Environment for the alert.""" + environment: Environment + + """Number of events of this alert.""" + eventCount: Int + + """List of hosts the alert came from.""" + hosts: [String!] + + """Internal ID of the alert.""" + iid: ID! + + """Issue attached to the alert.""" + issue: Issue + + """ + Internal ID of the GitLab issue attached to the alert. Deprecated in 13.10: Use issue field. + """ + issueIid: ID @deprecated(reason: "Use issue field. Deprecated in 13.10.") + + """URL for metrics embed for the alert.""" + metricsDashboardUrl: String + + """Monitoring tool the alert came from.""" + monitoringTool: String + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Alert condition for Prometheus.""" + prometheusAlert: PrometheusAlert + + """Runbook for the alert as defined in alert details.""" + runbook: String + + """Service the alert came from.""" + service: String + + """Severity of the alert.""" + severity: AlertManagementSeverity + + """Timestamp the alert was raised.""" + startedAt: Time + + """Status of the alert.""" + status: AlertManagementStatus + + """Title of the alert.""" + title: String + + """To-do items of the current user for the alert.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Timestamp the alert was last updated.""" + updatedAt: Time + + """URL of the alert.""" + webUrl: String! +} + +"""The connection type for AlertManagementAlert.""" +type AlertManagementAlertConnection { + """A list of edges.""" + edges: [AlertManagementAlertEdge] + + """A list of nodes.""" + nodes: [AlertManagementAlert] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AlertManagementAlertEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AlertManagementAlert +} + +"""Values for sorting alerts""" +enum AlertManagementAlertSort { + """Start time by ascending order.""" + STARTED_AT_ASC + + """Start time by descending order.""" + STARTED_AT_DESC + + """End time by ascending order.""" + ENDED_AT_ASC + + """End time by descending order.""" + ENDED_AT_DESC + + """Created time by ascending order.""" + CREATED_TIME_ASC + + """Created time by descending order.""" + CREATED_TIME_DESC + + """Created time by ascending order.""" + UPDATED_TIME_ASC + + """Created time by descending order.""" + UPDATED_TIME_DESC + + """Events count by ascending order.""" + EVENT_COUNT_ASC + + """Events count by descending order.""" + EVENT_COUNT_DESC + + """Severity from less critical to more critical.""" + SEVERITY_ASC + + """Severity from more critical to less critical.""" + SEVERITY_DESC + + """Status by order: `Ignored > Resolved > Acknowledged > Triggered`.""" + STATUS_ASC + + """Status by order: `Triggered > Acknowledged > Resolved > Ignored`.""" + STATUS_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Represents total number of alerts for the represented categories""" +type AlertManagementAlertStatusCountsType { + """Number of alerts with status ACKNOWLEDGED for the project""" + acknowledged: Int + + """Total number of alerts for the project.""" + all: Int + + """Number of alerts with status IGNORED for the project""" + ignored: Int + + """ + Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project. + """ + open: Int + + """Number of alerts with status RESOLVED for the project""" + resolved: Int + + """Number of alerts with status TRIGGERED for the project""" + triggered: Int +} + +"""Filters the alerts based on given domain""" +enum AlertManagementDomainFilter { + """Alerts for operations domain.""" + operations + + """ + Alerts for threat monitoring domain. Deprecated in 15.0: Network policies are + deprecated and will be removed in GitLab 16.0. + """ + threat_monitoring @deprecated(reason: "Network policies are deprecated and will be removed in GitLab 16.0. Deprecated in 15.0.") +} + +"""An endpoint and credentials used to accept alerts for a project""" +type AlertManagementHttpIntegration implements AlertManagementIntegration { + """Whether the endpoint is currently accepting alerts.""" + active: Boolean + + """ + URL at which Prometheus metrics can be queried to populate the metrics dashboard. + """ + apiUrl: String + + """ID of the integration.""" + id: ID! + + """Name of the integration.""" + name: String + + """Extract alert fields from payload example for custom mapping.""" + payloadAlertFields: [AlertManagementPayloadAlertField!] + + """ + The custom mapping of GitLab alert attributes to fields from the payload_example. + """ + payloadAttributeMappings: [AlertManagementPayloadAlertMappingField!] + + """Example of an alert payload.""" + payloadExample: JsonString + + """Token used to authenticate alert notification requests.""" + token: String + + """Type of integration.""" + type: AlertManagementIntegrationType! + + """Endpoint which accepts alert notifications.""" + url: String +} + +"""The connection type for AlertManagementHttpIntegration.""" +type AlertManagementHttpIntegrationConnection { + """A list of edges.""" + edges: [AlertManagementHttpIntegrationEdge] + + """A list of nodes.""" + nodes: [AlertManagementHttpIntegration] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AlertManagementHttpIntegrationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AlertManagementHttpIntegration +} + +""" +A `AlertManagementHttpIntegrationID` is a global ID. It is encoded as a string. + +An example `AlertManagementHttpIntegrationID` is: `"gid://gitlab/AlertManagement::HttpIntegration/1"`. +""" +scalar AlertManagementHttpIntegrationID + +interface AlertManagementIntegration { + """Whether the endpoint is currently accepting alerts.""" + active: Boolean + + """ + URL at which Prometheus metrics can be queried to populate the metrics dashboard. + """ + apiUrl: String + + """ID of the integration.""" + id: ID! + + """Name of the integration.""" + name: String + + """Token used to authenticate alert notification requests.""" + token: String + + """Type of integration.""" + type: AlertManagementIntegrationType! + + """Endpoint which accepts alert notifications.""" + url: String +} + +"""The connection type for AlertManagementIntegration.""" +type AlertManagementIntegrationConnection { + """A list of edges.""" + edges: [AlertManagementIntegrationEdge] + + """A list of nodes.""" + nodes: [AlertManagementIntegration] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AlertManagementIntegrationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AlertManagementIntegration +} + +"""Values of types of integrations""" +enum AlertManagementIntegrationType { + """Prometheus integration.""" + PROMETHEUS + + """Integration with any monitoring tool.""" + HTTP +} + +"""Parsed field from an alert used for custom mappings""" +type AlertManagementPayloadAlertField { + """Human-readable label of the payload path.""" + label: String + + """Path to value inside payload JSON.""" + path: [PayloadAlertFieldPathSegment!] + + """Type of the parsed value.""" + type: AlertManagementPayloadAlertFieldType +} + +""" +Field that are available while modifying the custom mapping attributes for an HTTP integration +""" +input AlertManagementPayloadAlertFieldInput { + """GitLab alert field name.""" + fieldName: AlertManagementPayloadAlertFieldName! + + """Path to value inside payload JSON.""" + path: [PayloadAlertFieldPathSegment!]! + + """Human-readable label of the payload path.""" + label: String + + """Type of the parsed value.""" + type: AlertManagementPayloadAlertFieldType! +} + +"""Values for alert field names used in the custom mapping""" +enum AlertManagementPayloadAlertFieldName { + """The title of the incident.""" + TITLE + + """A high-level summary of the problem.""" + DESCRIPTION + + """The time of the incident.""" + START_TIME + + """The resolved time of the incident.""" + END_TIME + + """The affected service.""" + SERVICE + + """The name of the associated monitoring tool.""" + MONITORING_TOOL + + """One or more hosts, as to where this incident occurred.""" + HOSTS + + """The severity of the alert.""" + SEVERITY + + """ + The unique identifier of the alert. This can be used to group occurrences of the same alert. + """ + FINGERPRINT + + """The name of the associated GitLab environment.""" + GITLAB_ENVIRONMENT_NAME +} + +"""Values for alert field types used in the custom mapping""" +enum AlertManagementPayloadAlertFieldType { + """Array field type.""" + ARRAY + + """DateTime field type.""" + DATETIME + + """String field type.""" + STRING +} + +"""Parsed field (with its name) from an alert used for custom mappings""" +type AlertManagementPayloadAlertMappingField { + """GitLab alert field name.""" + fieldName: AlertManagementPayloadAlertFieldName + + """Human-readable label of the payload path.""" + label: String + + """Path to value inside payload JSON.""" + path: [PayloadAlertFieldPathSegment!] + + """Type of the parsed value.""" + type: AlertManagementPayloadAlertFieldType +} + +""" +An endpoint and credentials used to accept Prometheus alerts for a project +""" +type AlertManagementPrometheusIntegration implements AlertManagementIntegration { + """Whether the endpoint is currently accepting alerts.""" + active: Boolean + + """ + URL at which Prometheus metrics can be queried to populate the metrics dashboard. + """ + apiUrl: String + + """ID of the integration.""" + id: ID! + + """Name of the integration.""" + name: String + + """Token used to authenticate alert notification requests.""" + token: String + + """Type of integration.""" + type: AlertManagementIntegrationType! + + """Endpoint which accepts alert notifications.""" + url: String +} + +"""Alert severity values""" +enum AlertManagementSeverity { + """Critical severity""" + CRITICAL + + """High severity""" + HIGH + + """Medium severity""" + MEDIUM + + """Low severity""" + LOW + + """Info severity""" + INFO + + """Unknown severity""" + UNKNOWN +} + +"""Alert status values""" +enum AlertManagementStatus { + """Investigation has not started.""" + TRIGGERED + + """Someone is actively investigating the problem.""" + ACKNOWLEDGED + + """The problem has been addressed.""" + RESOLVED + + """No action will be taken.""" + IGNORED +} + +"""Autogenerated input type of AlertSetAssignees""" +input AlertSetAssigneesInput { + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Usernames to assign to the alert. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode +} + +"""Autogenerated return type of AlertSetAssignees""" +type AlertSetAssigneesPayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +"""Autogenerated input type of AlertTodoCreate""" +input AlertTodoCreateInput { + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of AlertTodoCreate""" +type AlertTodoCreatePayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +""" +A `AnalyticsDevopsAdoptionEnabledNamespaceID` is a global ID. It is encoded as a string. + +An example `AnalyticsDevopsAdoptionEnabledNamespaceID` is: `"gid://gitlab/Analytics::DevopsAdoption::EnabledNamespace/1"`. +""" +scalar AnalyticsDevopsAdoptionEnabledNamespaceID + +"""Data associated with configuring API fuzzing scans in GitLab CI""" +type ApiFuzzingCiConfiguration { + """All available scan modes.""" + scanModes: [ApiFuzzingScanMode!] + + """All default scan profiles.""" + scanProfiles: [ApiFuzzingScanProfile!] +} + +"""Autogenerated input type of ApiFuzzingCiConfigurationCreate""" +input ApiFuzzingCiConfigurationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! + + """ + File path or URL to the file that defines the API surface for scanning. Must + be in the format specified by the `scanMode` argument. + """ + apiSpecificationFile: String! + + """ + CI variable containing the password for authenticating with the target API. + """ + authPassword: String + + """ + CI variable containing the username for authenticating with the target API. + """ + authUsername: String + + """Mode for API fuzzing scans.""" + scanMode: ApiFuzzingScanMode! + + """Name of a default profile to use for scanning. Ex: Quick-10.""" + scanProfile: String + + """URL for the target of API fuzzing scans.""" + target: String! +} + +"""Autogenerated return type of ApiFuzzingCiConfigurationCreate""" +type ApiFuzzingCiConfigurationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + A YAML snippet that can be inserted into the project's `.gitlab-ci.yml` to set + up API fuzzing scans. Deprecated in 14.6: The configuration snippet is now + generated client-side. + """ + configurationYaml: String @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 14.6.") + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Location at which the project's `.gitlab-ci.yml` file can be edited in the + browser. Deprecated in 14.6: The configuration snippet is now generated client-side. + """ + gitlabCiYamlEditPath: String @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 14.6.") +} + +"""All possible ways to specify the API surface for an API fuzzing scan.""" +enum ApiFuzzingScanMode { + """The API surface is specified by a HAR file.""" + HAR + + """The API surface is specified by a OPENAPI file.""" + OPENAPI + + """The API surface is specified by a POSTMAN file.""" + POSTMAN +} + +"""An API Fuzzing scan profile.""" +type ApiFuzzingScanProfile { + """Short description of the profile.""" + description: String + + """Unique name of the profile.""" + name: String + + """Syntax highlighted HTML representation of the YAML.""" + yaml: String +} + +"""Describes a rule for who can approve merge requests.""" +type ApprovalRule { + """Number of required approvals.""" + approvalsRequired: Int + + """Indicates if the rule is satisfied.""" + approved: Boolean + + """List of users defined in the rule that approved the merge request.""" + approvedBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Indicates if the rule contains approvers from a hidden group.""" + containsHiddenGroups: Boolean + + """ + List of all users eligible to approve the merge request (defined explicitly and from associated groups). + """ + eligibleApprovers: [UserCore!] + + """List of groups added as approvers for the rule.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the rule.""" + id: GlobalID! + + """Name of the rule.""" + name: String + + """Indicates if the rule was overridden for the merge request.""" + overridden: Boolean + + """Named section of the Code Owners file that the rule applies to.""" + section: String + + """Source rule used to create the rule.""" + sourceRule: ApprovalRule + + """Type of the rule.""" + type: ApprovalRuleType + + """List of users added as approvers for the rule.""" + users( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection +} + +"""The kind of an approval rule.""" +enum ApprovalRuleType { + """A `regular` approval rule.""" + REGULAR + + """A `code_owner` approval rule.""" + CODE_OWNER + + """A `report_approver` approval rule.""" + REPORT_APPROVER + + """A `any_approver` approval rule.""" + ANY_APPROVER +} + +""" +A `AppSecFuzzingCoverageCorpusID` is a global ID. It is encoded as a string. + +An example `AppSecFuzzingCoverageCorpusID` is: `"gid://gitlab/AppSec::Fuzzing::Coverage::Corpus/1"`. +""" +scalar AppSecFuzzingCoverageCorpusID + +"""Autogenerated input type of ArtifactDestroy""" +input ArtifactDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the artifact to delete.""" + id: CiJobArtifactID! +} + +"""Autogenerated return type of ArtifactDestroy""" +type ArtifactDestroyPayload { + """Deleted artifact.""" + artifact: CiJobArtifact + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Represents a vulnerability asset type.""" +type AssetType { + """Name of the asset.""" + name: String! + + """Type of the asset.""" + type: String! + + """URL of the asset.""" + url: String! +} + +"""Assignee ID wildcard values""" +enum AssigneeWildcardId { + """No assignee is assigned.""" + NONE + + """An assignee is assigned.""" + ANY +} + +""" +A `AuditEventsExternalAuditEventDestinationID` is a global ID. It is encoded as a string. + +An example `AuditEventsExternalAuditEventDestinationID` is: `"gid://gitlab/AuditEvents::ExternalAuditEventDestination/1"`. +""" +scalar AuditEventsExternalAuditEventDestinationID + +""" +A `AuditEventsStreamingHeaderID` is a global ID. It is encoded as a string. + +An example `AuditEventsStreamingHeaderID` is: `"gid://gitlab/AuditEvents::Streaming::Header/1"`. +""" +scalar AuditEventsStreamingHeaderID + +"""Autogenerated input type of AuditEventsStreamingHeadersCreate""" +input AuditEventsStreamingHeadersCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Header key.""" + key: String! + + """Header value.""" + value: String! + + """Destination to associate header with.""" + destinationId: AuditEventsExternalAuditEventDestinationID! +} + +"""Autogenerated return type of AuditEventsStreamingHeadersCreate""" +type AuditEventsStreamingHeadersCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created header.""" + header: AuditEventStreamingHeader +} + +"""Autogenerated input type of AuditEventsStreamingHeadersDestroy""" +input AuditEventsStreamingHeadersDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Header to delete.""" + headerId: AuditEventsStreamingHeaderID! +} + +"""Autogenerated return type of AuditEventsStreamingHeadersDestroy""" +type AuditEventsStreamingHeadersDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of AuditEventsStreamingHeadersUpdate""" +input AuditEventsStreamingHeadersUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Header to update.""" + headerId: AuditEventsStreamingHeaderID! + + """Header key.""" + key: String! + + """Header value.""" + value: String! +} + +"""Autogenerated return type of AuditEventsStreamingHeadersUpdate""" +type AuditEventsStreamingHeadersUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updates header.""" + header: AuditEventStreamingHeader +} + +""" +Represents a HTTP header key/value that belongs to an audit streaming destination. +""" +type AuditEventStreamingHeader { + """ID of the header.""" + id: ID! + + """Key of the header.""" + key: String! + + """Value of the header.""" + value: String! +} + +"""The connection type for AuditEventStreamingHeader.""" +type AuditEventStreamingHeaderConnection { + """A list of edges.""" + edges: [AuditEventStreamingHeaderEdge] + + """A list of nodes.""" + nodes: [AuditEventStreamingHeader] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AuditEventStreamingHeaderEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AuditEventStreamingHeader +} + +"""User availability status""" +enum AvailabilityEnum { + """Not Set""" + NOT_SET + + """Busy""" + BUSY +} + +""" +A `AwardableID` is a global ID. It is encoded as a string. + +An example `AwardableID` is: `"gid://gitlab/Awardable/1"`. +""" +scalar AwardableID + +"""An emoji awarded by a user""" +type AwardEmoji { + """Emoji description.""" + description: String! + + """Emoji as an icon.""" + emoji: String! + + """Emoji name.""" + name: String! + + """Emoji in Unicode.""" + unicode: String! + + """Unicode version for this emoji.""" + unicodeVersion: String! + + """User who awarded the emoji.""" + user: UserCore! +} + +"""Autogenerated input type of AwardEmojiAdd""" +input AwardEmojiAddInput { + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of AwardEmojiAdd""" +type AwardEmojiAddPayload { + """Award emoji after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The connection type for AwardEmoji.""" +type AwardEmojiConnection { + """A list of edges.""" + edges: [AwardEmojiEdge] + + """A list of nodes.""" + nodes: [AwardEmoji] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type AwardEmojiEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: AwardEmoji +} + +"""Autogenerated input type of AwardEmojiRemove""" +input AwardEmojiRemoveInput { + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of AwardEmojiRemove""" +type AwardEmojiRemovePayload { + """Award emoji after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of AwardEmojiToggle""" +input AwardEmojiToggleInput { + """Global ID of the awardable resource.""" + awardableId: AwardableID! + + """Emoji name.""" + name: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of AwardEmojiToggle""" +type AwardEmojiTogglePayload { + """Award emoji after mutation.""" + awardEmoji: AwardEmoji + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. + """ + toggledOn: Boolean! +} + +type BaseService implements Service { + """Indicates if the service is active.""" + active: Boolean + + """Type of the service.""" + serviceType: ServiceType + + """Class name of the service.""" + type: String +} + +""" +Represents non-fractional signed whole numeric values. Since the value may +exceed the size of a 32-bit integer, it's encoded as a string. +""" +scalar BigInt + +type Blob implements Entry { + """Flat path of the entry.""" + flatPath: String! + + """ID of the entry.""" + id: ID! + + """LFS ID of the blob.""" + lfsOid: String + + """Blob mode in numeric format.""" + mode: String + + """Name of the entry.""" + name: String! + + """Path of the entry.""" + path: String! + + """Last commit SHA for the entry.""" + sha: String! + + """Type of tree entry.""" + type: EntryType! + + """Web path of the blob.""" + webPath: String + + """Web URL of the blob.""" + webUrl: String +} + +"""The connection type for Blob.""" +type BlobConnection { + """A list of edges.""" + edges: [BlobEdge] + + """A list of nodes.""" + nodes: [Blob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type BlobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Blob +} + +"""Represents how the blob content should be displayed""" +type BlobViewer { + """Shows whether the blob should be displayed collapsed.""" + collapsed: Boolean! + + """Content file type.""" + fileType: String! + + """Shows whether the blob content is loaded asynchronously.""" + loadAsync: Boolean! + + """Loading partial name.""" + loadingPartialName: String! + + """Error rendering the blob content.""" + renderError: String + + """Shows whether the blob is too large to be displayed.""" + tooLarge: Boolean! + + """Type of blob viewer.""" + type: BlobViewersType! +} + +"""Types of blob viewers""" +enum BlobViewersType { + """Rich blob viewers type.""" + rich + + """Simple blob viewers type.""" + simple + + """Auxiliary blob viewers type.""" + auxiliary +} + +"""Represents a project or group issue board""" +type Board { + """Board assignee.""" + assignee: UserCore + + """Timestamp of when the board was created.""" + createdAt: Time! + + """Epics associated with board issues.""" + epics( + """Filters applied when selecting issues on the board.""" + issueFilters: BoardIssueInput + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardEpicConnection + + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """ID (global ID) of the board.""" + id: ID! + + """Board iteration.""" + iteration: Iteration + + """Board iteration cadence.""" + iterationCadence: IterationCadence + + """Labels of the board.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Lists of the board.""" + lists( + """Find a list by its global ID.""" + id: ListID + + """Filters applied when getting issue metadata in the board list.""" + issueFilters: BoardIssueInput + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardListConnection + + """Board milestone.""" + milestone: Milestone + + """Name of the board.""" + name: String + + """Timestamp of when the board was last updated.""" + updatedAt: Time! + + """Web path of the board.""" + webPath: String! + + """Web URL of the board.""" + webUrl: String! + + """Weight of the board.""" + weight: Int +} + +"""The connection type for Board.""" +type BoardConnection { + """A list of edges.""" + edges: [BoardEdge] + + """A list of nodes.""" + nodes: [Board] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type BoardEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Board +} + +"""Represents an epic on an issue board""" +type BoardEpic implements CurrentUserTodos & Eventable & NoteableInterface & Todoable { + """Ancestors (parents) of the epic.""" + ancestors( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = true + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Author of the epic.""" + author: UserCore! + + """List of award emojis associated with the epic.""" + awardEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AwardEmojiConnection + + """Indicates the epic is blocked.""" + blocked: Boolean + + """Count of epics blocking this epic.""" + blockedByCount: Int + + """Epics blocking this epic.""" + blockedByEpics( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Count of epics that this epic is blocking.""" + blockingCount: Int + + """Children (sub-epics) of the epic.""" + children( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Timestamp of when the epic was closed.""" + closedAt: Time + + """ + Color of the epic. Returns `null` if `epic_color_highlight` feature flag is disabled. + """ + color: String + + """Indicates if the epic is confidential.""" + confidential: Boolean + + """Timestamp of when the epic was created.""" + createdAt: Time + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """ + Default Project for issue creation. Based on the project the user created the last issue in. + """ + defaultProjectForIssueCreation: Project + + """Number of open and closed descendant epics and issues.""" + descendantCounts: EpicDescendantCount + + """ + Total weight of open and closed issues in the epic and its descendants. + """ + descendantWeightSum: EpicDescendantWeights + + """Description of the epic.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Number of downvotes the epic has received.""" + downvotes: Int! + + """Due date of the epic.""" + dueDate: Time + + """Fixed due date of the epic.""" + dueDateFixed: Time + + """Inherited due date of the epic from child epics or milestones.""" + dueDateFromInheritedSource: Time + + """Inherited due date of the epic from milestones.""" + dueDateFromMilestones: Time + + """Indicates if the due date has been manually set.""" + dueDateIsFixed: Boolean + + """List of events associated with the object.""" + events( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EventConnection + + """Group to which the epic belongs.""" + group: Group! + + """Indicates if the epic has children.""" + hasChildren: Boolean! + + """Indicates if the epic has direct issues.""" + hasIssues: Boolean! + + """Indicates if the epic has a parent epic.""" + hasParent: Boolean! + + """Current health status of the epic.""" + healthStatus: EpicHealthStatus + + """ID of the epic.""" + id: ID! + + """Internal ID of the epic.""" + iid: ID! + + """A list of issues associated with the epic.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicIssueConnection + + """Labels assigned to the epic.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Parent epic of the epic.""" + parent: Epic + + """List of participants for the epic.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ + Internal reference of the epic. Returned in shortened format by default. + """ + reference( + """Indicates if the reference should be returned in full.""" + full: Boolean = false + ): String! + + """URI path of the epic-issue relationship.""" + relationPath: String + + """Relative position of the epic in the epic tree.""" + relativePosition: Int + + """Start date of the epic.""" + startDate: Time + + """Fixed start date of the epic.""" + startDateFixed: Time + + """Inherited start date of the epic from child epics or milestones.""" + startDateFromInheritedSource: Time + + """Inherited start date of the epic from milestones.""" + startDateFromMilestones: Time + + """Indicates if the start date has been manually set.""" + startDateIsFixed: Boolean + + """State of the epic.""" + state: EpicState! + + """Indicates the currently logged in user is subscribed to the epic.""" + subscribed: Boolean! + + """ + Text color generated for the epic. Returns `null` if `epic_color_highlight` feature flag is disabled. + """ + textColor: String + + """Title of the epic.""" + title: String + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Timestamp of when the epic was updated.""" + updatedAt: Time + + """Number of upvotes the epic has received.""" + upvotes: Int! + + """Number of user discussions in the epic.""" + userDiscussionsCount: Int! + + """Number of user notes of the epic.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: EpicPermissions! + + """User preferences for the epic on the issue board.""" + userPreferences: BoardEpicUserPreferences + + """Web path of the epic.""" + webPath: String! + + """Web URL of the epic.""" + webUrl: String! +} + +"""The connection type for BoardEpic.""" +type BoardEpicConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [BoardEpicEdge] + + """A list of nodes.""" + nodes: [BoardEpic] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of BoardEpicCreate""" +input BoardEpicCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group the epic to create is in.""" + groupPath: ID! + + """Global ID of the board that the epic is in.""" + boardId: BoardsEpicBoardID! + + """Global ID of the epic board list in which epic will be created.""" + listId: BoardsEpicListID! + + """Title of the epic.""" + title: String! +} + +"""Autogenerated return type of BoardEpicCreate""" +type BoardEpicCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after creation.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type BoardEpicEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: BoardEpic +} + +"""Represents user preferences for a board epic""" +type BoardEpicUserPreferences { + """Indicates epic should be displayed as collapsed.""" + collapsed: Boolean! +} + +""" +A `BoardID` is a global ID. It is encoded as a string. + +An example `BoardID` is: `"gid://gitlab/Board/1"`. +""" +scalar BoardID + +input BoardIssueInput { + """Filter by label name.""" + labelName: [String] + + """Filter by author username.""" + authorUsername: String + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """List of IIDs of issues. For example `["1", "2"]`.""" + iids: [String!] + + """Filter by milestone title.""" + milestoneTitle: String + + """Filter by assignee username.""" + assigneeUsername: [String] + + """Filter by release tag.""" + releaseTag: String + + """Filter by the given issue types.""" + types: [IssueType!] + + """Filter by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """Filter by epic ID. Incompatible with epicWildcardId.""" + epicId: EpicID + + """Filter by iteration title.""" + iterationTitle: String + + """Filter by weight.""" + weight: String + + """ + Filter by a list of iteration IDs. Incompatible with iterationWildcardId. + """ + iterationId: [IterationID!] + + """List of negated arguments.""" + not: NegatedBoardIssueInput + + """Search query for issue title or description.""" + search: String + + """Filter by assignee wildcard. Incompatible with assigneeUsername.""" + assigneeWildcardId: AssigneeWildcardId + + """Filter by confidentiality.""" + confidential: Boolean + + """Filter by epic ID wildcard. Incompatible with epicId.""" + epicWildcardId: EpicWildcardId + + """Filter by iteration ID wildcard.""" + iterationWildcardId: IterationWildcardId + + """Filter by a list of iteration cadence IDs.""" + iterationCadenceId: [IterationsCadenceID!] + + """Filter by weight ID wildcard. Incompatible with weight.""" + weightWildcardId: WeightWildcardId +} + +"""Represents a list for an issue board""" +type BoardList { + """Assignee in the list.""" + assignee: UserCore + + """Indicates if the list is collapsed for this user.""" + collapsed: Boolean + + """ID (global ID) of the list.""" + id: ID! + + """Board issues.""" + issues( + """Filters applied when selecting issues in the board list.""" + filters: BoardIssueInput + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Count of issues in the list.""" + issuesCount: Int + + """Iteration of the list.""" + iteration: Iteration + + """Label of the list.""" + label: Label + + """Current limit metric for the list.""" + limitMetric: ListLimitMetric + + """Type of the list.""" + listType: String! + + """Maximum number of issues in the list.""" + maxIssueCount: Int + + """Maximum weight of issues in the list.""" + maxIssueWeight: Int + + """Milestone of the list.""" + milestone: Milestone + + """Position of list within the board.""" + position: Int + + """Title of the list.""" + title: String! + + """Total weight of all issues in the list.""" + totalWeight: Int +} + +"""The connection type for BoardList.""" +type BoardListConnection { + """A list of edges.""" + edges: [BoardListEdge] + + """A list of nodes.""" + nodes: [BoardList] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of BoardListCreate""" +input BoardListCreateInput { + """Create the backlog list.""" + backlog: Boolean + + """Global ID of an existing label.""" + labelId: LabelID + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the issue board to mutate.""" + boardId: BoardID! + + """Global ID of an existing milestone.""" + milestoneId: MilestoneID + + """Global ID of an existing iteration.""" + iterationId: IterationID + + """Global ID of an existing user.""" + assigneeId: UserID +} + +"""Autogenerated return type of BoardListCreate""" +type BoardListCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue list in the issue board.""" + list: BoardList +} + +"""An edge in a connection.""" +type BoardListEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: BoardList +} + +"""Autogenerated input type of BoardListUpdateLimitMetrics""" +input BoardListUpdateLimitMetricsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the list.""" + listId: ListID! + + """New limit metric type for the list.""" + limitMetric: ListLimitMetric + + """New maximum issue count limit.""" + maxIssueCount: Int + + """New maximum issue weight limit.""" + maxIssueWeight: Int +} + +"""Autogenerated return type of BoardListUpdateLimitMetrics""" +type BoardListUpdateLimitMetricsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated list.""" + list: BoardList +} + +""" +A `BoardsEpicBoardID` is a global ID. It is encoded as a string. + +An example `BoardsEpicBoardID` is: `"gid://gitlab/Boards::EpicBoard/1"`. +""" +scalar BoardsEpicBoardID + +""" +A `BoardsEpicListID` is a global ID. It is encoded as a string. + +An example `BoardsEpicListID` is: `"gid://gitlab/Boards::EpicList/1"`. +""" +scalar BoardsEpicListID + +type Branch { + """Commit for the branch.""" + commit: Commit + + """Name of the branch.""" + name: String! +} + +"""Branch protection details for a branch rule.""" +type BranchProtection { + """Toggle force push to the branch for users with write access.""" + allowForcePush: Boolean! + + """Enforce code owner approvals before allowing a merge.""" + codeOwnerApprovalRequired: Boolean! + + """Details about who can merge when this branch is the source branch.""" + mergeAccessLevels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeAccessLevelConnection + + """Details about who can push when this branch is the source branch.""" + pushAccessLevels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PushAccessLevelConnection +} + +"""List of branch rules for a project, grouped by branch name.""" +type BranchRule { + """Branch protections configured for this branch rule.""" + branchProtection: BranchProtection! + + """Timestamp of when the branch rule was created.""" + createdAt: Time! + + """Branch name, with wildcards, for the branch rules.""" + name: String! + + """Timestamp of when the branch rule was last updated.""" + updatedAt: Time! +} + +"""The connection type for BranchRule.""" +type BranchRuleConnection { + """A list of edges.""" + edges: [BranchRuleEdge] + + """A list of nodes.""" + nodes: [BranchRule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type BranchRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: BranchRule +} + +"""Autogenerated input type of BulkEnableDevopsAdoptionNamespaces""" +input BulkEnableDevopsAdoptionNamespacesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """List of Namespace IDs.""" + namespaceIds: [NamespaceID!]! + + """Display namespace ID.""" + displayNamespaceId: NamespaceID +} + +"""Autogenerated return type of BulkEnableDevopsAdoptionNamespaces""" +type BulkEnableDevopsAdoptionNamespacesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Enabled namespaces after mutation.""" + enabledNamespaces: [DevopsAdoptionEnabledNamespace!] + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of BulkRunnerDelete""" +input BulkRunnerDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """IDs of the runners to delete.""" + ids: [CiRunnerID!] +} + +"""Autogenerated return type of BulkRunnerDelete""" +type BulkRunnerDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Number of records effectively deleted. Only present if operation was performed synchronously. + """ + deletedCount: Int + + """ + IDs of records effectively deleted. Only present if operation was performed synchronously. + """ + deletedIds: [CiRunnerID!] + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +""" +Represents the total number of issues and their weights for a particular day +""" +type BurnupChartDailyTotals { + """Number of closed issues as of this day.""" + completedCount: Int! + + """Total weight of closed issues as of this day.""" + completedWeight: Int! + + """Date for burnup totals.""" + date: ISO8601Date! + + """Number of issues as of this day.""" + scopeCount: Int! + + """Total weight of issues as of this day.""" + scopeWeight: Int! +} + +type CiApplicationSettings { + """Whether to keep the latest jobs artifacts.""" + keepLatestArtifact: Boolean +} + +""" +A `CiBuildID` is a global ID. It is encoded as a string. + +An example `CiBuildID` is: `"gid://gitlab/Ci::Build/1"`. +""" +scalar CiBuildID + +type CiBuildNeed { + """ID of the BuildNeed.""" + id: ID! + + """Name of the job we need to complete.""" + name: String +} + +"""The connection type for CiBuildNeed.""" +type CiBuildNeedConnection { + """A list of edges.""" + edges: [CiBuildNeedEdge] + + """A list of nodes.""" + nodes: [CiBuildNeed] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiBuildNeedEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiBuildNeed +} + +"""Autogenerated input type of CiCdSettingsUpdate""" +input CiCdSettingsUpdateInput { + """Full Path of the project the settings belong to.""" + fullPath: ID! + + """Indicates if the latest artifact should be kept for this project.""" + keepLatestArtifact: Boolean + + """ + Indicates CI job tokens generated in this project have restricted access to resources. + """ + jobTokenScopeEnabled: Boolean + + """Indicates if merge pipelines are enabled for the project.""" + mergePipelinesEnabled: Boolean + + """Indicates if merge trains are enabled for the project.""" + mergeTrainsEnabled: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CiCdSettingsUpdate""" +type CiCdSettingsUpdatePayload { + """CI/CD settings after mutation.""" + ciCdSettings: ProjectCiCdSetting! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type CiConfig { + """Linting errors.""" + errors: [String!] + + """List of included files.""" + includes: [CiConfigInclude!] + + """Merged CI configuration YAML.""" + mergedYaml: String + + """Stages of the pipeline.""" + stages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiConfigStageConnection + + """Status of linting, can be either valid or invalid.""" + status: CiConfigStatus + + """Linting warnings.""" + warnings: [String!] +} + +type CiConfigGroup { + """Jobs in group.""" + jobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiConfigJobConnection + + """Name of the job group.""" + name: String + + """Size of the job group.""" + size: Int +} + +"""The connection type for CiConfigGroup.""" +type CiConfigGroupConnection { + """A list of edges.""" + edges: [CiConfigGroupEdge] + + """A list of nodes.""" + nodes: [CiConfigGroup] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiConfigGroupEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiConfigGroup +} + +type CiConfigInclude { + """ + File blob location. It can be masked if it contains masked variables, e.g., "https://gitlab.com/gitlab-org/gitlab/-/blob/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml". + """ + blob: String + + """Current project scope, e.g., "gitlab-org/gitlab".""" + contextProject: String + + """Current sha scope.""" + contextSha: String + + """ + Extra information for the `include`, which can contain `job_name`, `project`, + and `ref`. Values can be masked if they contain masked variables. + """ + extra: JSON + + """ + File location. It can be masked if it contains masked variables, e.g., ".gitlab/ci/build-images.gitlab-ci.yml". + """ + location: String + + """ + File raw location. It can be masked if it contains masked variables, e.g., "https://gitlab.com/gitlab-org/gitlab/-/raw/e52d6d0246d7375291850e61f0abc101fbda9dc2/.gitlab/ci/build-images.gitlab-ci.yml". + """ + raw: String + + """Include type.""" + type: CiConfigIncludeType +} + +"""Include type.""" +enum CiConfigIncludeType { + """Remote include.""" + remote + + """Local include.""" + local + + """Project file include.""" + file + + """Template include.""" + template +} + +type CiConfigJob { + """Override a set of commands that are executed after the job.""" + afterScript: [String!] + + """Allow job to fail.""" + allowFailure: Boolean + + """Override a set of commands that are executed before the job.""" + beforeScript: [String!] + + """Name of an environment to which the job deploys.""" + environment: String + + """Limit when jobs are not created.""" + except: CiConfigJobRestriction + + """Name of the job group.""" + groupName: String + + """Name of the job.""" + name: String + + """Builds that must complete before the jobs run.""" + needs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiConfigNeedConnection + + """Jobs are created when these conditions do not apply.""" + only: CiConfigJobRestriction + + """Shell script that is executed by a runner.""" + script: [String!] + + """Name of the job stage.""" + stage: String + + """List of tags that are used to select a runner.""" + tags: [String!] + + """When to run the job.""" + when: String +} + +"""The connection type for CiConfigJob.""" +type CiConfigJobConnection { + """A list of edges.""" + edges: [CiConfigJobEdge] + + """A list of nodes.""" + nodes: [CiConfigJob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiConfigJobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiConfigJob +} + +type CiConfigJobRestriction { + """Git refs the job restriction applies to.""" + refs: [String!] +} + +type CiConfigNeed { + """Name of the need.""" + name: String +} + +"""The connection type for CiConfigNeed.""" +type CiConfigNeedConnection { + """A list of edges.""" + edges: [CiConfigNeedEdge] + + """A list of nodes.""" + nodes: [CiConfigNeed] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiConfigNeedEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiConfigNeed +} + +type CiConfigStage { + """Groups of jobs for the stage.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiConfigGroupConnection + + """Name of the stage.""" + name: String +} + +"""The connection type for CiConfigStage.""" +type CiConfigStageConnection { + """A list of edges.""" + edges: [CiConfigStageEdge] + + """A list of nodes.""" + nodes: [CiConfigStage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiConfigStageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiConfigStage +} + +"""Values for YAML processor result""" +enum CiConfigStatus { + """Configuration file is valid.""" + VALID + + """Configuration file is not valid.""" + INVALID +} + +"""CI/CD config variables.""" +type CiConfigVariable { + """Description for the CI/CD config variable.""" + description: String + + """Name of the variable.""" + key: String + + """Value of the variable.""" + value: String +} + +type CiGroup { + """Detailed status of the group.""" + detailedStatus: DetailedStatus + + """ID for a group.""" + id: String! + + """Jobs in group.""" + jobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Name of the job group.""" + name: String + + """Size of the group.""" + size: Int +} + +"""The connection type for CiGroup.""" +type CiGroupConnection { + """A list of edges.""" + edges: [CiGroupEdge] + + """A list of nodes.""" + nodes: [CiGroup] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiGroupEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiGroup +} + +"""CI/CD variables for a group.""" +type CiGroupVariable implements CiVariable { + """Scope defining the environments that can use the variable.""" + environmentScope: String + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiGroupVariable.""" +type CiGroupVariableConnection { + """A list of edges.""" + edges: [CiGroupVariableEdge] + + """Maximum amount of group CI/CD variables.""" + limit: Int! + + """A list of nodes.""" + nodes: [CiGroupVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiGroupVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiGroupVariable +} + +"""CI/CD variables for a GitLab instance.""" +type CiInstanceVariable implements CiVariable { + """ + Scope defining the environments that can use the variable. Deprecated in 15.3: + No longer used, only available for GroupVariableType and ProjectVariableType. + """ + environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in 15.3.") + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiInstanceVariable.""" +type CiInstanceVariableConnection { + """A list of edges.""" + edges: [CiInstanceVariableEdge] + + """A list of nodes.""" + nodes: [CiInstanceVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiInstanceVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiInstanceVariable +} + +type CiJob { + """Indicates the job is active.""" + active: Boolean! + + """Whether the job is allowed to fail.""" + allowFailure: Boolean! + + """Artifacts generated by the job.""" + artifacts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobArtifactConnection + + """Indicates the job can be canceled.""" + cancelable: Boolean! + + """Path to the commit that triggered the job.""" + commitPath: String + + """Coverage level of the job.""" + coverage: Float + + """When the job was created.""" + createdAt: Time! + + """Whether the job was created by a tag.""" + createdByTag: Boolean! + + """Detailed status of the job.""" + detailedStatus: DetailedStatus + + """Downstream pipeline for a bridge.""" + downstreamPipeline: Pipeline + + """Duration of the job in seconds.""" + duration: Int + + """When a job has finished running.""" + finishedAt: Time + + """ID of the job.""" + id: JobID + + """Indicates the type of job.""" + kind: CiJobKind! + + """Whether the job has a manual action.""" + manualJob: Boolean + + """Variables added to a manual job when the job is triggered.""" + manualVariables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiManualVariableConnection + + """Name of the job.""" + name: String + + """References to builds that must complete before the jobs run.""" + needs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiBuildNeedConnection + + """Pipeline the job belongs to.""" + pipeline: Pipeline + + """Indicates the job can be played.""" + playable: Boolean! + + """ + Jobs that must complete before the job runs. Returns `BuildNeed`, which is the + needed jobs if the job uses the `needs` keyword, or the previous stage jobs otherwise. + """ + previousStageJobsOrNeeds( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): JobNeedUnionConnection + + """When the job was enqueued and marked as pending.""" + queuedAt: Time + + """How long the job was enqueued before starting.""" + queuedDuration: Duration + + """Ref name of the job.""" + refName: String + + """Path to the ref.""" + refPath: String + + """Indicates that the job has been retried.""" + retried: Boolean + + """Indicates the job can be retried.""" + retryable: Boolean! + + """Schedule for the build.""" + scheduledAt: Time + + """ + Type of job scheduling. Value is `dag` if the job uses the `needs` keyword, and `stage` otherwise. + """ + schedulingType: String + + """Short SHA1 ID of the commit.""" + shortSha: String! + + """Stage of the job.""" + stage: CiStage + + """When the job was started.""" + startedAt: Time + + """Status of the job.""" + status: CiJobStatus + + """Indicates the job is stuck.""" + stuck: Boolean! + + """Tags for the current job.""" + tags: [String!] + + """Whether the job was triggered.""" + triggered: Boolean + + """Permissions for the current user on the resource""" + userPermissions: JobPermissions! + + """Web path of the job.""" + webPath: String +} + +type CiJobArtifact { + """URL for downloading the artifact's file.""" + downloadPath: String + + """Expiry date of the artifact.""" + expireAt: Time + + """File type of the artifact.""" + fileType: JobArtifactFileType + + """ID of the artifact.""" + id: CiJobArtifactID! + + """File name of the artifact.""" + name: String + + """Size of the artifact in bytes.""" + size: Int! +} + +"""The connection type for CiJobArtifact.""" +type CiJobArtifactConnection { + """A list of edges.""" + edges: [CiJobArtifactEdge] + + """A list of nodes.""" + nodes: [CiJobArtifact] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiJobArtifactEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiJobArtifact +} + +""" +A `CiJobArtifactID` is a global ID. It is encoded as a string. + +An example `CiJobArtifactID` is: `"gid://gitlab/Ci::JobArtifact/1"`. +""" +scalar CiJobArtifactID + +"""The connection type for CiJob.""" +type CiJobConnection { + """ + Limited count of collection. Returns limit + 1 for counts greater than the limit. + """ + count( + """Limit value to be applied to the count query. Default is 1000.""" + limit: Int = 1000 + ): Int! + + """A list of edges.""" + edges: [CiJobEdge] + + """A list of nodes.""" + nodes: [CiJob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiJobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiJob +} + +enum CiJobKind { + """Standard CI job.""" + BUILD + + """Bridge CI job connecting a parent and child pipeline.""" + BRIDGE +} + +enum CiJobStatus { + """A job that is created.""" + CREATED + + """A job that is waiting for resource.""" + WAITING_FOR_RESOURCE + + """A job that is preparing.""" + PREPARING + + """A job that is pending.""" + PENDING + + """A job that is running.""" + RUNNING + + """A job that is success.""" + SUCCESS + + """A job that is failed.""" + FAILED + + """A job that is canceled.""" + CANCELED + + """A job that is skipped.""" + SKIPPED + + """A job that is manual.""" + MANUAL + + """A job that is scheduled.""" + SCHEDULED +} + +"""Autogenerated input type of CiJobTokenScopeAddProject""" +input CiJobTokenScopeAddProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project that the CI job token scope belongs to.""" + projectPath: ID! + + """Project to be added to the CI job token scope.""" + targetProjectPath: ID! +} + +"""Autogenerated return type of CiJobTokenScopeAddProject""" +type CiJobTokenScopeAddProjectPayload { + """CI job token's scope of access.""" + ciJobTokenScope: CiJobTokenScopeType + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CiJobTokenScopeRemoveProject""" +input CiJobTokenScopeRemoveProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project that the CI job token scope belongs to.""" + projectPath: ID! + + """Project to be removed from the CI job token scope.""" + targetProjectPath: ID! +} + +"""Autogenerated return type of CiJobTokenScopeRemoveProject""" +type CiJobTokenScopeRemoveProjectPayload { + """CI job token's scope of access.""" + ciJobTokenScope: CiJobTokenScopeType + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type CiJobTokenScopeType { + """ + Allow list of projects that can be accessed by CI Job tokens created by this project. + """ + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! +} + +"""CI/CD variables given to a manual job.""" +type CiManualVariable implements CiVariable { + """ + Scope defining the environments that can use the variable. Deprecated in 15.3: + No longer used, only available for GroupVariableType and ProjectVariableType. + """ + environmentScope: String @deprecated(reason: "No longer used, only available for GroupVariableType and ProjectVariableType. Deprecated in 15.3.") + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiManualVariable.""" +type CiManualVariableConnection { + """A list of edges.""" + edges: [CiManualVariableEdge] + + """A list of nodes.""" + nodes: [CiManualVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiManualVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiManualVariable +} + +type CiMinutesNamespaceMonthlyUsage { + """Total number of minutes used by all projects in the namespace.""" + minutes: Int + + """Month related to the usage data.""" + month: String + + """Month related to the usage data in ISO 8601 date format.""" + monthIso8601: ISO8601Date + + """CI/CD minutes usage data for projects in the namespace.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiMinutesProjectMonthlyUsageConnection + + """ + Total duration (in seconds) of shared runners use by the namespace for the month. + """ + sharedRunnersDuration: Int +} + +"""The connection type for CiMinutesNamespaceMonthlyUsage.""" +type CiMinutesNamespaceMonthlyUsageConnection { + """A list of edges.""" + edges: [CiMinutesNamespaceMonthlyUsageEdge] + + """A list of nodes.""" + nodes: [CiMinutesNamespaceMonthlyUsage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiMinutesNamespaceMonthlyUsageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiMinutesNamespaceMonthlyUsage +} + +type CiMinutesProjectMonthlyUsage { + """Number of CI/CD minutes used by the project in the month.""" + minutes: Int + + """Name of the project.""" + name: String + + """ + Total duration (in seconds) of shared runners use by the project for the month. + """ + sharedRunnersDuration: Int +} + +"""The connection type for CiMinutesProjectMonthlyUsage.""" +type CiMinutesProjectMonthlyUsageConnection { + """A list of edges.""" + edges: [CiMinutesProjectMonthlyUsageEdge] + + """A list of nodes.""" + nodes: [CiMinutesProjectMonthlyUsage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiMinutesProjectMonthlyUsageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiMinutesProjectMonthlyUsage +} + +""" +A `CiPipelineID` is a global ID. It is encoded as a string. + +An example `CiPipelineID` is: `"gid://gitlab/Ci::Pipeline/1"`. +""" +scalar CiPipelineID + +"""CI/CD variables for a project.""" +type CiProjectVariable implements CiVariable { + """Scope defining the environments that can use the variable.""" + environmentScope: String + + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is masked.""" + masked: Boolean + + """Indicates whether the variable is protected.""" + protected: Boolean + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""The connection type for CiProjectVariable.""" +type CiProjectVariableConnection { + """A list of edges.""" + edges: [CiProjectVariableEdge] + + """Maximum amount of project CI/CD variables.""" + limit: Int! + + """A list of nodes.""" + nodes: [CiProjectVariable] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiProjectVariableEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiProjectVariable +} + +type CiRunner { + """Access level of the runner.""" + accessLevel: CiRunnerAccessLevel! + + """ + Indicates the runner is allowed to receive jobs. Deprecated in 14.8: Use paused. + """ + active: Boolean! @deprecated(reason: "Use paused. Deprecated in 14.8.") + + """Admin URL of the runner. Only available for administrators.""" + adminUrl: String + + """Architecture provided by the the runner.""" + architectureName: String + + """Timestamp of last contact from this runner.""" + contactedAt: Time + + """Timestamp of creation of this runner.""" + createdAt: Time + + """Description of the runner.""" + description: String + + """Admin form URL of the runner. Only available for administrators.""" + editAdminUrl: String + + """Executor last advertised by the runner.""" + executorName: String + + """Groups the runner is associated with. For group runners only.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the runner.""" + id: CiRunnerID! + + """IP address of the runner.""" + ipAddress: String + + """ + Number of jobs processed by the runner (limited to 1000, plus one to indicate that more items exist). + """ + jobCount: Int + + """ + Jobs assigned to the runner. This field can only be resolved for one runner in any single request. + """ + jobs( + """Filter jobs by status.""" + statuses: [CiJobStatus!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Indicates the runner is locked.""" + locked: Boolean + + """Runner's maintenance notes.""" + maintenanceNote: String + + """The GitLab Flavored Markdown rendering of `maintenance_note`""" + maintenanceNoteHtml: String + + """Maximum timeout (in seconds) for jobs processed by the runner.""" + maximumTimeout: Int + + """Project that owns the runner. For project runners only.""" + ownerProject: Project + + """Indicates the runner is paused and not available to run jobs.""" + paused: Boolean! + + """Platform provided by the runner.""" + platformName: String + + """ + Private projects' "minutes cost factor" associated with the runner (GitLab.com only). + """ + privateProjectsMinutesCostFactor: Float + + """Number of projects that the runner is associated with.""" + projectCount: Int + + """Find projects the runner is associated with. For project runners only.""" + projects( + """Return only projects that the current user is a member of.""" + membership: Boolean + + """ + Search query, which can be for the project name, a path, or a description. + """ + search: String + + """Include namespace in project search.""" + searchNamespaces: Boolean + + """Filter projects by topics.""" + topics: [String!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """ + Public projects' "minutes cost factor" associated with the runner (GitLab.com only). + """ + publicProjectsMinutesCostFactor: Float + + """Revision of the runner.""" + revision: String + + """Indicates the runner is able to run untagged jobs.""" + runUntagged: Boolean! + + """Type of the runner.""" + runnerType: CiRunnerType! + + """ + First eight characters of the runner's token used to authenticate new job requests. Used as the runner's unique ID. + """ + shortSha: String + + """Status of the runner.""" + status: CiRunnerStatus! + + """Tags associated with the runner.""" + tagList: [String!] + + """Runner token expiration time.""" + tokenExpiresAt: Time + + """ + Availability of upgrades for the runner. Introduced in 14.10: This feature is + in Alpha. It can be changed or removed at any time. + """ + upgradeStatus: CiRunnerUpgradeStatus @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 14.10.") + + """Permissions for the current user on the resource""" + userPermissions: RunnerPermissions! + + """Version of the runner.""" + version: String +} + +enum CiRunnerAccessLevel { + """A runner that is not protected.""" + NOT_PROTECTED + + """A runner that is ref protected.""" + REF_PROTECTED +} + +"""The connection type for CiRunner.""" +type CiRunnerConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CiRunnerEdge] + + """A list of nodes.""" + nodes: [CiRunner] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiRunnerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """ + Web URL of the runner edit page. The value depends on where you put this field + in the query. You can use it for projects or groups. + """ + editUrl: String + + """The item at the end of the edge.""" + node: CiRunner + + """ + Web URL of the runner. The value depends on where you put this field in the query. You can use it for projects or groups. + """ + webUrl: String +} + +""" +A `CiRunnerID` is a global ID. It is encoded as a string. + +An example `CiRunnerID` is: `"gid://gitlab/Ci::Runner/1"`. +""" +scalar CiRunnerID + +""" +Values for filtering runners in namespaces. The previous type name `RunnerMembershipFilter` was deprecated in 15.4. +""" +enum CiRunnerMembershipFilter { + """Include runners that have a direct relationship.""" + DIRECT + + """ + Include runners that have either a direct or inherited relationship. These + runners can be specific to a project or a group. + """ + DESCENDANTS + + """ + Include all runners. This list includes runners for all projects in the group + and subgroups, as well as for the parent groups and instance. Will not return + runners if `runners_finder_all_available` feature flag is disabled. Introduced + in 15.5: This feature is in Alpha. It can be changed or removed at any time. + """ + ALL_AVAILABLE @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.5.") +} + +"""Values for sorting runners""" +enum CiRunnerSort { + """Ordered by contacted_at in ascending order.""" + CONTACTED_ASC + + """Ordered by contacted_at in descending order.""" + CONTACTED_DESC + + """Ordered by created_at in ascending order.""" + CREATED_ASC + + """Ordered by created_at in descending order.""" + CREATED_DESC + + """Ordered by token_expires_at in ascending order.""" + TOKEN_EXPIRES_AT_ASC + + """Ordered by token_expires_at in descending order.""" + TOKEN_EXPIRES_AT_DESC +} + +enum CiRunnerStatus { + """Runner that is not paused. Deprecated in 14.6: This was renamed.""" + ACTIVE @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in 14.6.") + + """Runner that is paused. Deprecated in 14.6: This was renamed.""" + PAUSED @deprecated(reason: "This was renamed. Please use `CiRunner.paused`. Deprecated in 14.6.") + + """Runner that contacted this instance within the last 2 hours.""" + ONLINE + + """ + Runner that has not contacted this instance within the last 2 hours. Will be + considered `STALE` if offline for more than 3 months. + """ + OFFLINE + + """Runner that has not contacted this instance within the last 3 months.""" + STALE + + """Runner that has never contacted this instance.""" + NEVER_CONTACTED +} + +enum CiRunnerType { + """A runner that is instance type.""" + INSTANCE_TYPE + + """A runner that is group type.""" + GROUP_TYPE + + """A runner that is project type.""" + PROJECT_TYPE +} + +enum CiRunnerUpgradeStatus { + """Runner version is not valid.""" + INVALID + + """Upgrade is not available for the runner.""" + NOT_AVAILABLE + + """Upgrade is available for the runner.""" + AVAILABLE + + """Upgrade is available and recommended for the runner.""" + RECOMMENDED +} + +""" +Represents the Geo replication and verification state of a ci_secure_file. +""" +type CiSecureFileRegistry { + """ID of the Ci Secure File.""" + ciSecureFileId: ID! + + """Timestamp when the CiSecureFileRegistry was created""" + createdAt: Time + + """ID of the CiSecureFileRegistry""" + id: ID! + + """Error message during sync of the CiSecureFileRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the CiSecureFileRegistry + """ + lastSyncedAt: Time + + """Timestamp after which the CiSecureFileRegistry is resynced""" + retryAt: Time + + """Number of consecutive failed sync attempts of the CiSecureFileRegistry""" + retryCount: Int + + """Sync state of the CiSecureFileRegistry""" + state: RegistryState + + """Timestamp after which the CiSecureFileRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the CiSecureFileRegistry + """ + verifiedAt: Time +} + +"""The connection type for CiSecureFileRegistry.""" +type CiSecureFileRegistryConnection { + """A list of edges.""" + edges: [CiSecureFileRegistryEdge] + + """A list of nodes.""" + nodes: [CiSecureFileRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiSecureFileRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiSecureFileRegistry +} + +type CiStage { + """Detailed status of the stage.""" + detailedStatus: DetailedStatus + + """Group of jobs for the stage.""" + groups( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiGroupConnection + + """ID of the stage.""" + id: ID! + + """Jobs for the stage.""" + jobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Name of the stage.""" + name: String + + """Status of the pipeline stage.""" + status: String +} + +"""The connection type for CiStage.""" +type CiStageConnection { + """A list of edges.""" + edges: [CiStageEdge] + + """A list of nodes.""" + nodes: [CiStage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CiStageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CiStage +} + +"""GitLab CI/CD configuration template.""" +type CiTemplate { + """Contents of the CI template.""" + content: String! + + """Name of the CI template.""" + name: String! +} + +interface CiVariable { + """ID of the variable.""" + id: ID! + + """Name of the variable.""" + key: String + + """Indicates whether the variable is raw.""" + raw: Boolean + + """Value of the variable.""" + value: String + + """Type of the variable.""" + variableType: CiVariableType +} + +"""Attributes for defining a CI/CD variable.""" +input CiVariableInput { + """Name of the variable.""" + key: String! + + """Value of the variable.""" + value: String! +} + +enum CiVariableType { + """Env var type.""" + ENV_VAR + + """File type.""" + FILE +} + +type ClusterAgent { + """Recent activity for the cluster agent.""" + activityEvents( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentActivityEventConnection + + """Active connections for the cluster agent""" + connections( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ConnectedAgentConnection + + """Timestamp the cluster agent was created.""" + createdAt: Time + + """ + User object, containing information about the person who created the agent. + """ + createdByUser: UserCore + + """ID of the cluster agent.""" + id: ID! + + """Name of the cluster agent.""" + name: String + + """Project this cluster agent is associated with.""" + project: Project + + """Tokens associated with the cluster agent.""" + tokens( + """Status of the token.""" + status: AgentTokenStatus + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentTokenConnection + + """Timestamp the cluster agent was updated.""" + updatedAt: Time + + """Container images reported on the agent vulnerabilities.""" + vulnerabilityImages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityContainerImageConnection + + """Web path of the cluster agent.""" + webPath: String +} + +type ClusterAgentActivityEvent { + """Agent token associated with the event.""" + agentToken: ClusterAgentToken + + """Type of event.""" + kind: String + + """Severity of the event.""" + level: String + + """Timestamp the event was recorded.""" + recordedAt: Time + + """User associated with the event.""" + user: UserCore +} + +"""The connection type for ClusterAgentActivityEvent.""" +type ClusterAgentActivityEventConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [ClusterAgentActivityEventEdge] + + """A list of nodes.""" + nodes: [ClusterAgentActivityEvent] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ClusterAgentActivityEventEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ClusterAgentActivityEvent +} + +"""The connection type for ClusterAgent.""" +type ClusterAgentConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [ClusterAgentEdge] + + """A list of nodes.""" + nodes: [ClusterAgent] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of ClusterAgentDelete""" +input ClusterAgentDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the cluster agent that will be deleted.""" + id: ClustersAgentID! +} + +"""Autogenerated return type of ClusterAgentDelete""" +type ClusterAgentDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type ClusterAgentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ClusterAgent +} + +type ClusterAgentToken { + """Cluster agent this token is associated with.""" + clusterAgent: ClusterAgent + + """Timestamp the token was created.""" + createdAt: Time + + """User who created the token.""" + createdByUser: UserCore + + """Description of the token.""" + description: String + + """Global ID of the token.""" + id: ClustersAgentTokenID! + + """Timestamp the token was last used.""" + lastUsedAt: Time + + """Name given to the token.""" + name: String + + """Current status of the token.""" + status: AgentTokenStatus +} + +"""The connection type for ClusterAgentToken.""" +type ClusterAgentTokenConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [ClusterAgentTokenEdge] + + """A list of nodes.""" + nodes: [ClusterAgentToken] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of ClusterAgentTokenCreate""" +input ClusterAgentTokenCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the cluster agent that will be associated with the new token. + """ + clusterAgentId: ClustersAgentID! + + """Description of the token.""" + description: String + + """Name of the token.""" + name: String! +} + +"""Autogenerated return type of ClusterAgentTokenCreate""" +type ClusterAgentTokenCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Token secret value. Make sure you save it - you won't be able to access it again. + """ + secret: String + + """Token created after mutation.""" + token: ClusterAgentToken +} + +"""An edge in a connection.""" +type ClusterAgentTokenEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ClusterAgentToken +} + +"""Autogenerated input type of ClusterAgentTokenRevoke""" +input ClusterAgentTokenRevokeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the agent token that will be revoked.""" + id: ClustersAgentTokenID! +} + +"""Autogenerated return type of ClusterAgentTokenRevoke""" +type ClusterAgentTokenRevokePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +""" +A `ClustersAgentID` is a global ID. It is encoded as a string. + +An example `ClustersAgentID` is: `"gid://gitlab/Clusters::Agent/1"`. +""" +scalar ClustersAgentID + +""" +A `ClustersAgentTokenID` is a global ID. It is encoded as a string. + +An example `ClustersAgentTokenID` is: `"gid://gitlab/Clusters::AgentToken/1"`. +""" +scalar ClustersAgentTokenID + +""" +A `ClustersClusterID` is a global ID. It is encoded as a string. + +An example `ClustersClusterID` is: `"gid://gitlab/Clusters::Cluster/1"`. +""" +scalar ClustersClusterID + +"""Represents the code coverage activity for a group""" +type CodeCoverageActivity { + """ + Average percentage of the different code coverage results available for the group. + """ + averageCoverage: Float + + """Number of different code coverage results available for the group.""" + coverageCount: Int + + """Date when the code coverage was created.""" + date: Date! + + """Number of projects with code coverage results for the group.""" + projectCount: Int +} + +"""The connection type for CodeCoverageActivity.""" +type CodeCoverageActivityConnection { + """A list of edges.""" + edges: [CodeCoverageActivityEdge] + + """A list of nodes.""" + nodes: [CodeCoverageActivity] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CodeCoverageActivityEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CodeCoverageActivity +} + +"""Represents the code coverage summary for a project""" +type CodeCoverageSummary { + """ + Average percentage of the different code coverage results available for the project. + """ + averageCoverage: Float + + """Number of different code coverage results available.""" + coverageCount: Int + + """Latest date when the code coverage was created for the project.""" + lastUpdatedOn: Date +} + +"""Represents a code quality degradation on the pipeline.""" +type CodeQualityDegradation { + """Description of the code quality degradation.""" + description: String! + + """ + Unique fingerprint to identify the code quality degradation. For example, an MD5 hash. + """ + fingerprint: String! + + """Line on which the code quality degradation occurred.""" + line: Int! + + """Relative path to the file containing the code quality degradation.""" + path: String! + + """ + Status of the degradation (BLOCKER, CRITICAL, MAJOR, MINOR, INFO, UNKNOWN). + """ + severity: CodeQualityDegradationSeverity! +} + +"""The connection type for CodeQualityDegradation.""" +type CodeQualityDegradationConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [CodeQualityDegradationEdge] + + """A list of nodes.""" + nodes: [CodeQualityDegradation] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CodeQualityDegradationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CodeQualityDegradation +} + +enum CodeQualityDegradationSeverity { + """Code Quality degradation has a status of blocker.""" + BLOCKER + + """Code Quality degradation has a status of critical.""" + CRITICAL + + """Code Quality degradation has a status of major.""" + MAJOR + + """Code Quality degradation has a status of minor.""" + MINOR + + """Code Quality degradation has a status of info.""" + INFO + + """Code Quality degradation has a status of unknown.""" + UNKNOWN +} + +""" +Color represented as a hex code or named color. + +For example: "#fefefe". + +""" +scalar Color + +type Commit implements Todoable { + """Author of the commit.""" + author: UserCore + + """Commit author's email.""" + authorEmail: String + + """Commit authors gravatar.""" + authorGravatar: String + + """Commit authors name.""" + authorName: String + + """Timestamp of when the commit was authored.""" + authoredDate: Time + + """Description of the commit message.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Full title of the commit message.""" + fullTitle: String + + """The GitLab Flavored Markdown rendering of `full_title`""" + fullTitleHtml: String + + """ID (global ID) of the commit.""" + id: ID! + + """Raw commit message.""" + message: String + + """Pipelines of the commit ordered latest first.""" + pipelines( + """Filter pipelines by their status.""" + status: PipelineStatusEnum + + """Filter pipelines by scope.""" + scope: PipelineScopeEnum + + """Filter pipelines by the ref they are run for.""" + ref: String + + """Filter pipelines by the sha of the commit they are run for.""" + sha: String + + """Filter pipelines by their source.""" + source: String + + """Pipelines updated after this date.""" + updatedAfter: Time + + """Pipelines updated before this date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """SHA1 ID of the commit.""" + sha: String! + + """Short SHA1 ID of the commit.""" + shortId: String! + + """Rendered HTML of the commit signature.""" + signatureHtml: String + + """Title of the commit message.""" + title: String + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Web path of the commit.""" + webPath: String! + + """Web URL of the commit.""" + webUrl: String! +} + +input CommitAction { + """Action to perform: create, delete, move, update, or chmod.""" + action: CommitActionMode! + + """Content of the file.""" + content: String + + """Encoding of the file. Default is text.""" + encoding: CommitEncoding + + """Enables/disables the execute flag on the file.""" + executeFilemode: Boolean + + """Full path to the file.""" + filePath: String! + + """Last known file commit ID.""" + lastCommitId: String + + """Original full path to the file being moved.""" + previousPath: String +} + +"""Mode of a commit action""" +enum CommitActionMode { + """Create command.""" + CREATE + + """Delete command.""" + DELETE + + """Move command.""" + MOVE + + """Update command.""" + UPDATE + + """Chmod command.""" + CHMOD +} + +"""The connection type for Commit.""" +type CommitConnection { + """A list of edges.""" + edges: [CommitEdge] + + """A list of nodes.""" + nodes: [Commit] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of CommitCreate""" +input CommitCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project full path the branch is associated with.""" + projectPath: ID! + + """Name of the branch to commit into, it can be a new branch.""" + branch: String! + + """If on a new branch, name of the original branch.""" + startBranch: String + + """Raw commit message.""" + message: String! + + """Array of action hashes to commit as a batch.""" + actions: [CommitAction!]! +} + +"""Autogenerated return type of CommitCreate""" +type CommitCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Commit after mutation.""" + commit: Commit + + """ETag path for the commit's pipeline.""" + commitPipelinePath: String + + """Contents of the commit.""" + content: [String!] + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type CommitEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Commit +} + +enum CommitEncoding { + """Text encoding.""" + TEXT + + """Base64 encoding.""" + BASE64 +} + +"""Represents a ComplianceFramework associated with a Project""" +type ComplianceFramework { + """Hexadecimal representation of compliance framework's label color.""" + color: String! + + """Description of the compliance framework.""" + description: String! + + """Compliance framework ID.""" + id: ID! + + """Name of the compliance framework.""" + name: String! + + """ + Full path of the compliance pipeline configuration stored in a project + repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` + **(ULTIMATE)**. + """ + pipelineConfigurationFullPath: String +} + +"""The connection type for ComplianceFramework.""" +type ComplianceFrameworkConnection { + """A list of edges.""" + edges: [ComplianceFrameworkEdge] + + """A list of nodes.""" + nodes: [ComplianceFramework] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ComplianceFrameworkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ComplianceFramework +} + +input ComplianceFrameworkInput { + """New name for the compliance framework.""" + name: String + + """New description for the compliance framework.""" + description: String + + """ + New color representation of the compliance framework in hex format. e.g. #FCA121. + """ + color: String + + """ + Full path of the compliance pipeline configuration stored in a project + repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` + **(ULTIMATE)**. + """ + pipelineConfigurationFullPath: String +} + +""" +A `ComplianceManagementFrameworkID` is a global ID. It is encoded as a string. + +An example `ComplianceManagementFrameworkID` is: `"gid://gitlab/ComplianceManagement::Framework/1"`. +""" +scalar ComplianceManagementFrameworkID + +"""Compliance violation associated with a merged merge request.""" +type ComplianceViolation { + """Compliance violation ID.""" + id: ID! + + """Merge request the compliance violation occurred in.""" + mergeRequest: MergeRequest! + + """Reason the compliance violation occurred.""" + reason: ComplianceViolationReason! + + """Severity of the compliance violation.""" + severityLevel: ComplianceViolationSeverity! + + """User suspected of causing the compliance violation.""" + violatingUser: UserCore! +} + +"""The connection type for ComplianceViolation.""" +type ComplianceViolationConnection { + """A list of edges.""" + edges: [ComplianceViolationEdge] + + """A list of nodes.""" + nodes: [ComplianceViolation] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ComplianceViolationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ComplianceViolation +} + +input ComplianceViolationInput { + """Filter compliance violations by project.""" + projectIds: [ProjectID!] + + """Merge requests merged before this date (inclusive).""" + mergedBefore: Date + + """Merge requests merged after this date (inclusive).""" + mergedAfter: Date +} + +"""Reason for the compliance violation.""" +enum ComplianceViolationReason { + """Approved by merge request author""" + APPROVED_BY_MERGE_REQUEST_AUTHOR + + """Approved by committer""" + APPROVED_BY_COMMITTER + + """Approved by insufficient users""" + APPROVED_BY_INSUFFICIENT_USERS +} + +"""Severity of the compliance violation.""" +enum ComplianceViolationSeverity { + """Info severity""" + INFO + + """Low severity""" + LOW + + """Medium severity""" + MEDIUM + + """High severity""" + HIGH + + """Critical severity""" + CRITICAL +} + +"""Compliance violation sort values.""" +enum ComplianceViolationSort { + """ + Severity in descending order, further sorted by ID in descending order. + """ + SEVERITY_LEVEL_DESC + + """Severity in ascending order, further sorted by ID in ascending order.""" + SEVERITY_LEVEL_ASC + + """ + Violation reason in descending order, further sorted by ID in descending order. + """ + VIOLATION_REASON_DESC + + """ + Violation reason in ascending order, further sorted by ID in ascending order. + """ + VIOLATION_REASON_ASC + + """ + Merge request title in descending order, further sorted by ID in descending order. + """ + MERGE_REQUEST_TITLE_DESC + + """ + Merge request title in ascending order, further sorted by ID in ascending order. + """ + MERGE_REQUEST_TITLE_ASC + + """ + Date merged in descending order, further sorted by ID in descending order. + """ + MERGED_AT_DESC + + """ + Date merged in ascending order, further sorted by ID in ascending order. + """ + MERGED_AT_ASC +} + +"""Composer metadata""" +type ComposerMetadata { + """Data of the Composer JSON file.""" + composerJson: PackageComposerJsonType! + + """Target SHA of the package.""" + targetSha: String! +} + +"""Conan file metadata""" +type ConanFileMetadata implements PackageFileMetadata { + """Type of the Conan file.""" + conanFileType: ConanMetadatumFileTypeEnum! + + """Reference of the Conan package.""" + conanPackageReference: String + + """Date of creation.""" + createdAt: Time! + + """ID of the metadatum.""" + id: PackagesConanFileMetadatumID! + + """Revision of the package.""" + packageRevision: String + + """Revision of the Conan recipe.""" + recipeRevision: String! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Conan metadata""" +type ConanMetadata { + """Date of creation.""" + createdAt: Time! + + """ID of the metadatum.""" + id: PackagesConanMetadatumID! + + """Channel of the Conan package.""" + packageChannel: String! + + """Username of the Conan package.""" + packageUsername: String! + + """Recipe of the Conan package.""" + recipe: String! + + """Recipe path of the Conan package.""" + recipePath: String! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Conan file types""" +enum ConanMetadatumFileTypeEnum { + """A recipe file type.""" + RECIPE_FILE + + """A package file type.""" + PACKAGE_FILE +} + +"""Autogenerated input type of ConfigureContainerScanning""" +input ConfigureContainerScanningInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of ConfigureContainerScanning""" +type ConfigureContainerScanningPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureDependencyScanning""" +input ConfigureDependencyScanningInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of ConfigureDependencyScanning""" +type ConfigureDependencyScanningPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureSastIac""" +input ConfigureSastIacInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of ConfigureSastIac""" +type ConfigureSastIacPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureSast""" +input ConfigureSastInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """SAST CI configuration for the project.""" + configuration: SastCiConfigurationInput! +} + +"""Autogenerated return type of ConfigureSast""" +type ConfigureSastPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Autogenerated input type of ConfigureSecretDetection""" +input ConfigureSecretDetectionInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of ConfigureSecretDetection""" +type ConfigureSecretDetectionPayload { + """Branch that has the new/modified `.gitlab-ci.yml` file.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Redirect path to use when the response is successful.""" + successPath: String +} + +"""Connection details for an Agent""" +type ConnectedAgent { + """When the connection was established.""" + connectedAt: Time + + """ID of the connection.""" + connectionId: BigInt + + """Information about the Agent.""" + metadata: AgentMetadata +} + +"""The connection type for ConnectedAgent.""" +type ConnectedAgentConnection { + """A list of edges.""" + edges: [ConnectedAgentEdge] + + """A list of nodes.""" + nodes: [ConnectedAgent] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ConnectedAgentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ConnectedAgent +} + +"""Values for sorting contacts""" +enum ContactSort { + """First name in ascending order.""" + FIRST_NAME_ASC + + """First name in descending order.""" + FIRST_NAME_DESC + + """Last name in ascending order.""" + LAST_NAME_ASC + + """Last name in descending order.""" + LAST_NAME_DESC + + """Email in ascending order.""" + EMAIL_ASC + + """Email in descending order.""" + EMAIL_DESC + + """Phone in ascending order.""" + PHONE_ASC + + """Phone in descending order.""" + PHONE_DESC + + """Description in ascending order.""" + DESCRIPTION_ASC + + """Description in descending order.""" + DESCRIPTION_DESC + + """Organization in ascending order.""" + ORGANIZATION_ASC + + """Organization in descending order.""" + ORGANIZATION_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Represents the total number of contacts for the represented states.""" +type ContactStateCounts { + """Number of contacts with state `ACTIVE`""" + active: Int + + """Number of contacts with state `ALL`""" + all: Int + + """Number of contacts with state `INACTIVE`""" + inactive: Int +} + +""" +A tag expiration policy designed to keep only the images that matter most +""" +type ContainerExpirationPolicy { + """This container expiration policy schedule.""" + cadence: ContainerExpirationPolicyCadenceEnum! + + """Timestamp of when the container expiration policy was created.""" + createdAt: Time! + + """Indicates whether this container expiration policy is enabled.""" + enabled: Boolean! + + """Number of tags to retain.""" + keepN: ContainerExpirationPolicyKeepEnum + + """Tags with names matching this regex pattern will expire.""" + nameRegex: UntrustedRegexp + + """Tags with names matching this regex pattern will be preserved.""" + nameRegexKeep: UntrustedRegexp + + """Next time that this container expiration policy will get executed.""" + nextRunAt: Time + + """Tags older that this will expire.""" + olderThan: ContainerExpirationPolicyOlderThanEnum + + """Timestamp of when the container expiration policy was updated.""" + updatedAt: Time! +} + +enum ContainerExpirationPolicyCadenceEnum { + """Every day""" + EVERY_DAY + + """Every week""" + EVERY_WEEK + + """Every two weeks""" + EVERY_TWO_WEEKS + + """Every month""" + EVERY_MONTH + + """Every three months""" + EVERY_THREE_MONTHS +} + +enum ContainerExpirationPolicyKeepEnum { + """1 tag per image name""" + ONE_TAG + + """5 tags per image name""" + FIVE_TAGS + + """10 tags per image name""" + TEN_TAGS + + """25 tags per image name""" + TWENTY_FIVE_TAGS + + """50 tags per image name""" + FIFTY_TAGS + + """100 tags per image name""" + ONE_HUNDRED_TAGS +} + +enum ContainerExpirationPolicyOlderThanEnum { + """7 days until tags are automatically removed""" + SEVEN_DAYS + + """14 days until tags are automatically removed""" + FOURTEEN_DAYS + + """30 days until tags are automatically removed""" + THIRTY_DAYS + + """60 days until tags are automatically removed""" + SIXTY_DAYS + + """90 days until tags are automatically removed""" + NINETY_DAYS +} + +"""A container repository""" +type ContainerRepository { + """Can the current user delete the container repository.""" + canDelete: Boolean! + + """Timestamp when the container repository was created.""" + createdAt: Time! + + """Tags cleanup status for the container repository.""" + expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus + + """ + Timestamp when the cleanup done by the expiration policy was started on the container repository. + """ + expirationPolicyStartedAt: Time + + """ID of the container repository.""" + id: ID! + + """Number of deleted tags from the last cleanup.""" + lastCleanupDeletedTagsCount: Int + + """URL of the container repository.""" + location: String! + + """Migration state of the container repository.""" + migrationState: String! + + """Name of the container repository.""" + name: String! + + """Path of the container repository.""" + path: String! + + """Project of the container registry.""" + project: Project! + + """Status of the container repository.""" + status: ContainerRepositoryStatus + + """Number of tags associated with this image.""" + tagsCount: Int! + + """Timestamp when the container repository was updated.""" + updatedAt: Time! +} + +"""Status of the tags cleanup of a container repository""" +enum ContainerRepositoryCleanupStatus { + """Tags cleanup is not scheduled. This is the default state.""" + UNSCHEDULED + + """Tags cleanup is scheduled and is going to be executed shortly.""" + SCHEDULED + + """ + Tags cleanup has been partially executed. There are still remaining tags to delete. + """ + UNFINISHED + + """Tags cleanup is ongoing.""" + ONGOING +} + +"""The connection type for ContainerRepository.""" +type ContainerRepositoryConnection { + """A list of edges.""" + edges: [ContainerRepositoryEdge] + + """A list of nodes.""" + nodes: [ContainerRepository] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Details of a container repository""" +type ContainerRepositoryDetails { + """Can the current user delete the container repository.""" + canDelete: Boolean! + + """Timestamp when the container repository was created.""" + createdAt: Time! + + """Tags cleanup status for the container repository.""" + expirationPolicyCleanupStatus: ContainerRepositoryCleanupStatus + + """ + Timestamp when the cleanup done by the expiration policy was started on the container repository. + """ + expirationPolicyStartedAt: Time + + """ID of the container repository.""" + id: ID! + + """Number of deleted tags from the last cleanup.""" + lastCleanupDeletedTagsCount: Int + + """URL of the container repository.""" + location: String! + + """Migration state of the container repository.""" + migrationState: String! + + """Name of the container repository.""" + name: String! + + """Path of the container repository.""" + path: String! + + """Project of the container registry.""" + project: Project! + + """ + Deduplicated size of the image repository in bytes. This is only available on + GitLab.com for repositories created after `2021-11-04`. + """ + size: Float + + """Status of the container repository.""" + status: ContainerRepositoryStatus + + """Tags of the container repository.""" + tags( + """Sort tags by these criteria.""" + sort: ContainerRepositoryTagSort = null + + """Search by tag name.""" + name: String = null + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryTagConnection + + """Number of tags associated with this image.""" + tagsCount: Int! + + """Timestamp when the container repository was updated.""" + updatedAt: Time! +} + +"""An edge in a connection.""" +type ContainerRepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ContainerRepository +} + +""" +A `ContainerRepositoryID` is a global ID. It is encoded as a string. + +An example `ContainerRepositoryID` is: `"gid://gitlab/ContainerRepository/1"`. +""" +scalar ContainerRepositoryID + +"""Values for sorting container repositories""" +enum ContainerRepositorySort { + """Name by ascending order.""" + NAME_ASC + + """Name by descending order.""" + NAME_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Status of a container repository""" +enum ContainerRepositoryStatus { + """Delete Scheduled status.""" + DELETE_SCHEDULED + + """Delete Failed status.""" + DELETE_FAILED +} + +"""A tag from a container repository""" +type ContainerRepositoryTag { + """Can the current user delete this tag.""" + canDelete: Boolean! + + """Timestamp when the tag was created.""" + createdAt: Time + + """Digest of the tag.""" + digest: String + + """URL of the tag.""" + location: String! + + """Name of the tag.""" + name: String! + + """Path of the tag.""" + path: String! + + """Revision of the tag.""" + revision: String + + """Short revision of the tag.""" + shortRevision: String + + """Size of the tag.""" + totalSize: BigInt +} + +"""The connection type for ContainerRepositoryTag.""" +type ContainerRepositoryTagConnection { + """A list of edges.""" + edges: [ContainerRepositoryTagEdge] + + """A list of nodes.""" + nodes: [ContainerRepositoryTag] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ContainerRepositoryTagEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ContainerRepositoryTag +} + +"""Values for sorting tags""" +enum ContainerRepositoryTagSort { + """Ordered by name in ascending order.""" + NAME_ASC + + """Ordered by name in descending order.""" + NAME_DESC +} + +"""Autogenerated input type of CorpusCreate""" +input CorpusCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the corpus package.""" + packageId: PackagesPackageID! + + """Project the corpus belongs to.""" + fullPath: ID! +} + +"""Autogenerated return type of CorpusCreate""" +type CorpusCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Corpus for a coverage fuzzing job.""" +type CoverageFuzzingCorpus { + """ID of the corpus.""" + id: AppSecFuzzingCoverageCorpusID! + + """Package of the corpus.""" + package: PackageDetailsType! +} + +"""The connection type for CoverageFuzzingCorpus.""" +type CoverageFuzzingCorpusConnection { + """A list of edges.""" + edges: [CoverageFuzzingCorpusEdge] + + """A list of nodes.""" + nodes: [CoverageFuzzingCorpus] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CoverageFuzzingCorpusEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CoverageFuzzingCorpus +} + +"""Autogenerated input type of CreateAlertIssue""" +input CreateAlertIssueInput { + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CreateAlertIssue""" +type CreateAlertIssuePayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +"""Autogenerated input type of CreateAnnotation""" +input CreateAnnotationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to add an annotation to.""" + environmentId: EnvironmentID + + """Global ID of the cluster to add an annotation to.""" + clusterId: ClustersClusterID + + """Timestamp indicating starting moment to which the annotation relates.""" + startingAt: Time! + + """Timestamp indicating ending moment to which the annotation relates.""" + endingAt: Time + + """ + Path to a file defining the dashboard on which the annotation should be added. + """ + dashboardPath: String! + + """Description of the annotation.""" + description: String! +} + +"""Autogenerated return type of CreateAnnotation""" +type CreateAnnotationPayload { + """Created annotation.""" + annotation: MetricsDashboardAnnotation + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateBoard""" +input CreateBoardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project with which the resource is associated.""" + projectPath: ID + + """Full path of the group with which the resource is associated.""" + groupPath: ID + + """Board name.""" + name: String + + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """ID of user to be assigned to the board.""" + assigneeId: UserID + + """ID of milestone to be assigned to the board.""" + milestoneId: MilestoneID + + """ID of iteration to be assigned to the board.""" + iterationId: IterationID + + """ID of iteration cadence to be assigned to the board.""" + iterationCadenceId: IterationsCadenceID + + """Weight value to be assigned to the board.""" + weight: Int + + """Labels of the issue.""" + labels: [String!] + + """IDs of labels to be added to the board.""" + labelIds: [LabelID!] +} + +"""Autogenerated return type of CreateBoard""" +type CreateBoardPayload { + """Board after mutation.""" + board: Board + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateBranch""" +input CreateBranchInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project full path the branch is associated with.""" + projectPath: ID! + + """Name of the branch.""" + name: String! + + """Branch name or commit SHA to create branch from.""" + ref: String! +} + +"""Autogenerated return type of CreateBranch""" +type CreateBranchPayload { + """Branch after mutation.""" + branch: Branch + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateClusterAgent""" +input CreateClusterAgentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the associated project for this cluster agent.""" + projectPath: ID! + + """Name of the cluster agent.""" + name: String! +} + +"""Autogenerated return type of CreateClusterAgent""" +type CreateClusterAgentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Cluster agent created after mutation.""" + clusterAgent: ClusterAgent + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateComplianceFramework""" +input CreateComplianceFrameworkInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the namespace to add the compliance framework to.""" + namespacePath: ID! + + """Parameters to update the compliance framework with.""" + params: ComplianceFrameworkInput! +} + +"""Autogenerated return type of CreateComplianceFramework""" +type CreateComplianceFrameworkPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created compliance framework.""" + framework: ComplianceFramework +} + +"""Autogenerated input type of CreateCustomEmoji""" +input CreateCustomEmojiInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Namespace full path the emoji is associated with.""" + groupPath: ID! + + """Name of the emoji.""" + name: String! + + """Location of the emoji file.""" + url: String! +} + +"""Autogenerated return type of CreateCustomEmoji""" +type CreateCustomEmojiPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """New custom emoji.""" + customEmoji: CustomEmoji + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateDiffNote""" +input CreateDiffNoteInput { + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Position of this note on a diff.""" + position: DiffPositionInput! +} + +"""Autogenerated return type of CreateDiffNote""" +type CreateDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreateEpic""" +input CreateEpicInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group the epic to mutate is in.""" + groupPath: ID! + + """Title of the epic.""" + title: String + + """Description of the epic.""" + description: String + + """Indicates if the epic is confidential.""" + confidential: Boolean + + """Start date of the epic.""" + startDateFixed: String + + """End date of the epic.""" + dueDateFixed: String + + """ + Indicates start date should be sourced from start_date_fixed field not the issue milestones. + """ + startDateIsFixed: Boolean + + """ + Indicates end date should be sourced from due_date_fixed field not the issue milestones. + """ + dueDateIsFixed: Boolean + + """IDs of labels to be added to the epic.""" + addLabelIds: [ID!] + + """IDs of labels to be removed from the epic.""" + removeLabelIds: [ID!] + + """Array of labels to be added to the epic.""" + addLabels: [String!] + + """ + Color of the epic. Available only when feature flag `epic_color_highlight` is + enabled. This flag is disabled by default, because the feature is experimental + and is subject to change without notice. + """ + color: Color +} + +"""Autogenerated return type of CreateEpic""" +type CreateEpicPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Created epic.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of CreateImageDiffNote""" +input CreateImageDiffNoteInput { + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Position of this note on a diff.""" + position: DiffImagePositionInput! +} + +"""Autogenerated return type of CreateImageDiffNote""" +type CreateImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreateIssue""" +input CreateIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Description of the issue.""" + description: String + + """Due date of the issue.""" + dueDate: ISO8601Date + + """Indicates the issue is confidential.""" + confidential: Boolean + + """Indicates discussion is locked on the issue.""" + locked: Boolean + + """Type of the issue.""" + type: IssueType + + """Project full path the issue is associated with.""" + projectPath: ID! + + """ + IID (internal ID) of a project issue. Only admins and project owners can modify. + """ + iid: Int + + """Title of the issue.""" + title: String! + + """ + ID of the milestone to assign to the issue. On update milestone will be removed if set to null. + """ + milestoneId: MilestoneID + + """Labels of the issue.""" + labels: [String!] + + """IDs of labels to be added to the issue.""" + labelIds: [LabelID!] + + """ + Timestamp when the issue was created. Available only for admins and project owners. + """ + createdAt: Time + + """IID of a merge request for which to resolve discussions.""" + mergeRequestToResolveDiscussionsOf: MergeRequestID + + """ + ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`. + """ + discussionToResolve: String + + """Array of user IDs to assign to the issue.""" + assigneeIds: [UserID!] + + """Global ID of issue that should be placed before the current issue.""" + moveBeforeId: IssueID + + """Global ID of issue that should be placed after the current issue.""" + moveAfterId: IssueID + + """Desired health status.""" + healthStatus: HealthStatus + + """Weight of the issue.""" + weight: Int + + """ID of an epic to associate the issue with.""" + epicId: EpicID + + """ + Global iteration ID. Mutually exlusive argument with `iterationWildcardId`. + """ + iterationId: IterationID + + """ + Iteration wildcard ID. Supported values are: `CURRENT`. Mutually exclusive + argument with `iterationId`. iterationCadenceId also required when this + argument is provided. + """ + iterationWildcardId: IssueCreationIterationWildcardId + + """ + Global iteration cadence ID. Required when `iterationWildcardId` is provided. + """ + iterationCadenceId: IterationsCadenceID +} + +"""Autogenerated return type of CreateIssue""" +type CreateIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of CreateIteration""" +input CreateIterationInput { + """Full path of the project with which the resource is associated.""" + projectPath: ID + + """Full path of the group with which the resource is associated.""" + groupPath: ID + + """ + Global ID of the iteration cadence to be assigned to the new iteration. + """ + iterationsCadenceId: IterationsCadenceID + + """Title of the iteration.""" + title: String + + """Description of the iteration.""" + description: String + + """Start date of the iteration.""" + startDate: String + + """End date of the iteration.""" + dueDate: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CreateIteration""" +type CreateIterationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created iteration.""" + iteration: Iteration +} + +"""Autogenerated input type of CreateNote""" +input CreateNoteInput { + """Global ID of the resource to add a note to.""" + noteableId: NoteableID! + + """Content of the note.""" + body: String! + + """Internal flag for a note. Default is false.""" + internal: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the discussion this note is in reply to.""" + discussionId: DiscussionID + + """ + SHA of the head commit which is used to ensure that the merge request has not been updated since the request was sent. + """ + mergeRequestDiffHeadSha: String +} + +"""Autogenerated return type of CreateNote""" +type CreateNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of CreateRequirement""" +input CreateRequirementInput { + """Title of the requirement.""" + title: String + + """Description of the requirement.""" + description: String + + """Full project path the requirement is associated with.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CreateRequirement""" +type CreateRequirementPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Requirement after mutation.""" + requirement: Requirement +} + +"""Autogenerated input type of CreateSnippet""" +input CreateSnippetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Title of the snippet.""" + title: String! + + """Description of the snippet.""" + description: String + + """Visibility level of the snippet.""" + visibilityLevel: VisibilityLevelsEnum! + + """Full path of the project the snippet is associated with.""" + projectPath: ID + + """Paths to files uploaded in the snippet description.""" + uploadedFiles: [String!] + + """Actions to perform over the snippet repository and blobs.""" + blobActions: [SnippetBlobActionInputType!] +} + +"""Autogenerated return type of CreateSnippet""" +type CreateSnippetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Snippet after mutation.""" + snippet: Snippet +} + +"""Autogenerated input type of CreateTestCase""" +input CreateTestCaseInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Test case title.""" + title: String! + + """Test case description.""" + description: String + + """IDs of labels to be added to the test case.""" + labelIds: [ID!] + + """Project full path to create the test case in.""" + projectPath: ID! +} + +"""Autogenerated return type of CreateTestCase""" +type CreateTestCasePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Test case created.""" + testCase: Issue +} + +"""Represents the current license""" +type CurrentLicense { + """Date when the license was activated.""" + activatedAt: Date + + """Number of billable users on the system.""" + billableUsersCount: Int + + """Date, including grace period, when licensed features will be blocked.""" + blockChangesAt: Date + + """Company of the licensee.""" + company: String + + """Date when the license was added.""" + createdAt: Date + + """Email of the licensee.""" + email: String + + """Date when the license expires.""" + expiresAt: Date + + """ID of the license extracted from the license data.""" + id: ID! + + """Date when the license was last synced.""" + lastSync: Time + + """ + Highest number of billable users on the system during the term of the current license. + """ + maximumUserCount: Int + + """Name of the licensee.""" + name: String + + """Name of the subscription plan.""" + plan: String! + + """Date when the license started.""" + startsAt: Date + + """Type of the license.""" + type: String! + + """Number of paid users in the license.""" + usersInLicenseCount: Int + + """Number of users over the paid users in the license.""" + usersOverLicenseCount: Int +} + +interface CurrentUserTodos { + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! +} + +"""A custom emoji uploaded by user""" +type CustomEmoji { + """Whether the emoji is an external link.""" + external: Boolean! + + """ID of the emoji.""" + id: CustomEmojiID! + + """Name of the emoji.""" + name: String! + + """Link to file of the emoji.""" + url: String! +} + +"""The connection type for CustomEmoji.""" +type CustomEmojiConnection { + """A list of edges.""" + edges: [CustomEmojiEdge] + + """A list of nodes.""" + nodes: [CustomEmoji] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CustomEmojiEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CustomEmoji +} + +""" +A `CustomEmojiID` is a global ID. It is encoded as a string. + +An example `CustomEmojiID` is: `"gid://gitlab/CustomEmoji/1"`. +""" +scalar CustomEmojiID + +type CustomerRelationsContact { + """State of the contact.""" + active: Boolean! + + """Timestamp the contact was created.""" + createdAt: Time! + + """Description of or notes for the contact.""" + description: String + + """Email address of the contact.""" + email: String + + """First name of the contact.""" + firstName: String! + + """Internal ID of the contact.""" + id: ID! + + """Last name of the contact.""" + lastName: String! + + """Organization of the contact.""" + organization: CustomerRelationsOrganization + + """Phone number of the contact.""" + phone: String + + """Timestamp the contact was last updated.""" + updatedAt: Time! +} + +"""The connection type for CustomerRelationsContact.""" +type CustomerRelationsContactConnection { + """A list of edges.""" + edges: [CustomerRelationsContactEdge] + + """A list of nodes.""" + nodes: [CustomerRelationsContact] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of CustomerRelationsContactCreate""" +input CustomerRelationsContactCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group for the contact.""" + groupId: GroupID! + + """Organization for the contact.""" + organizationId: CustomerRelationsOrganizationID + + """First name of the contact.""" + firstName: String! + + """Last name of the contact.""" + lastName: String! + + """Phone number of the contact.""" + phone: String + + """Email address of the contact.""" + email: String + + """Description of or notes for the contact.""" + description: String +} + +"""Autogenerated return type of CustomerRelationsContactCreate""" +type CustomerRelationsContactCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Contact after the mutation.""" + contact: CustomerRelationsContact + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type CustomerRelationsContactEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CustomerRelationsContact +} + +""" +A `CustomerRelationsContactID` is a global ID. It is encoded as a string. + +An example `CustomerRelationsContactID` is: `"gid://gitlab/CustomerRelations::Contact/1"`. +""" +scalar CustomerRelationsContactID + +enum CustomerRelationsContactState { + """All available contacts.""" + all + + """Active contacts.""" + active + + """Inactive contacts.""" + inactive +} + +"""Autogenerated input type of CustomerRelationsContactUpdate""" +input CustomerRelationsContactUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the contact.""" + id: CustomerRelationsContactID! + + """Organization of the contact.""" + organizationId: CustomerRelationsOrganizationID + + """First name of the contact.""" + firstName: String + + """Last name of the contact.""" + lastName: String + + """Phone number of the contact.""" + phone: String + + """Email address of the contact.""" + email: String + + """Description of or notes for the contact.""" + description: String + + """State of the contact.""" + active: Boolean +} + +"""Autogenerated return type of CustomerRelationsContactUpdate""" +type CustomerRelationsContactUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Contact after the mutation.""" + contact: CustomerRelationsContact + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type CustomerRelationsOrganization { + """State of the organization.""" + active: Boolean! + + """Timestamp the organization was created.""" + createdAt: Time! + + """Standard billing rate for the organization.""" + defaultRate: Float + + """Description of or notes for the organization.""" + description: String + + """Internal ID of the organization.""" + id: ID! + + """Name of the organization.""" + name: String! + + """Timestamp the organization was last updated.""" + updatedAt: Time! +} + +"""The connection type for CustomerRelationsOrganization.""" +type CustomerRelationsOrganizationConnection { + """A list of edges.""" + edges: [CustomerRelationsOrganizationEdge] + + """A list of nodes.""" + nodes: [CustomerRelationsOrganization] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of CustomerRelationsOrganizationCreate""" +input CustomerRelationsOrganizationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group for the organization.""" + groupId: GroupID! + + """Name of the organization.""" + name: String! + + """Standard billing rate for the organization.""" + defaultRate: Float + + """Description of or notes for the organization.""" + description: String +} + +"""Autogenerated return type of CustomerRelationsOrganizationCreate""" +type CustomerRelationsOrganizationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Organization after the mutation.""" + organization: CustomerRelationsOrganization +} + +"""An edge in a connection.""" +type CustomerRelationsOrganizationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: CustomerRelationsOrganization +} + +""" +A `CustomerRelationsOrganizationID` is a global ID. It is encoded as a string. + +An example `CustomerRelationsOrganizationID` is: `"gid://gitlab/CustomerRelations::Organization/1"`. +""" +scalar CustomerRelationsOrganizationID + +enum CustomerRelationsOrganizationState { + """All available organizations.""" + all + + """Active organizations.""" + active + + """Inactive organizations.""" + inactive +} + +"""Autogenerated input type of CustomerRelationsOrganizationUpdate""" +input CustomerRelationsOrganizationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the organization.""" + id: CustomerRelationsOrganizationID! + + """Name of the organization.""" + name: String + + """Standard billing rate for the organization.""" + defaultRate: Float + + """Description of or notes for the organization.""" + description: String + + """State of the organization.""" + active: Boolean +} + +"""Autogenerated return type of CustomerRelationsOrganizationUpdate""" +type CustomerRelationsOrganizationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Organization after the mutation.""" + organization: CustomerRelationsOrganization! +} + +"""Autogenerated input type of DastOnDemandScanCreate""" +input DastOnDemandScanCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the site profile belongs to.""" + fullPath: ID! + + """ID of the site profile to be used for the scan.""" + dastSiteProfileId: DastSiteProfileID! + + """ID of the scanner profile to be used for the scan.""" + dastScannerProfileId: DastScannerProfileID +} + +"""Autogenerated return type of DastOnDemandScanCreate""" +type DastOnDemandScanCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """URL of the pipeline that was created.""" + pipelineUrl: String +} + +"""Represents a DAST Profile""" +type DastProfile { + """Associated branch.""" + branch: DastProfileBranch + + """Associated profile schedule.""" + dastProfileSchedule: DastProfileSchedule + + """Associated scanner profile.""" + dastScannerProfile: DastScannerProfile + + """Associated site profile.""" + dastSiteProfile: DastSiteProfile + + """Description of the scan.""" + description: String + + """Relative web path to the edit page of a profile.""" + editPath: String + + """ID of the profile.""" + id: DastProfileID! + + """Name of the profile.""" + name: String +} + +"""Represents a DAST Profile Branch""" +type DastProfileBranch { + """Indicates whether or not the branch exists.""" + exists: Boolean + + """Name of the branch.""" + name: String +} + +"""Represents DAST Profile Cadence.""" +type DastProfileCadence { + """Duration of the DAST profile cadence.""" + duration: Int + + """Unit for the duration of DAST profile cadence.""" + unit: DastProfileCadenceUnit +} + +"""Represents DAST Profile Cadence.""" +input DastProfileCadenceInput { + """Unit for the duration of DAST Profile Cadence.""" + unit: DastProfileCadenceUnit + + """Duration of the DAST Profile Cadence.""" + duration: Int +} + +"""Unit for the duration of Dast Profile Cadence.""" +enum DastProfileCadenceUnit { + """DAST Profile Cadence duration in days.""" + DAY + + """DAST Profile Cadence duration in weeks.""" + WEEK + + """DAST Profile Cadence duration in months.""" + MONTH + + """DAST Profile Cadence duration in years.""" + YEAR +} + +"""The connection type for DastProfile.""" +type DastProfileConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [DastProfileEdge] + + """A list of nodes.""" + nodes: [DastProfile] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of DastProfileCreate""" +input DastProfileCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the profile belongs to.""" + fullPath: ID! + + """Represents a DAST Profile Schedule.""" + dastProfileSchedule: DastProfileScheduleInput + + """Name of the profile.""" + name: String! + + """Description of the profile. Defaults to an empty string.""" + description: String = "" + + """Associated branch.""" + branchName: String + + """ID of the site profile to be associated.""" + dastSiteProfileId: DastSiteProfileID! + + """ID of the scanner profile to be associated.""" + dastScannerProfileId: DastScannerProfileID! + + """Run scan using profile after creation. Defaults to false.""" + runAfterCreate: Boolean = false +} + +"""Autogenerated return type of DastProfileCreate""" +type DastProfileCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Created profile.""" + dastProfile: DastProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + URL of the pipeline that was created. Requires `runAfterCreate` to be set to `true`. + """ + pipelineUrl: String +} + +"""Autogenerated input type of DastProfileDelete""" +input DastProfileDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the profile to be deleted.""" + id: DastProfileID! +} + +"""Autogenerated return type of DastProfileDelete""" +type DastProfileDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type DastProfileEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DastProfile +} + +""" +A `DastProfileID` is a global ID. It is encoded as a string. + +An example `DastProfileID` is: `"gid://gitlab/Dast::Profile/1"`. +""" +scalar DastProfileID + +"""Autogenerated input type of DastProfileRun""" +input DastProfileRunInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the profile to be used for the scan.""" + id: DastProfileID! +} + +"""Autogenerated return type of DastProfileRun""" +type DastProfileRunPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """URL of the pipeline that was created.""" + pipelineUrl: String +} + +"""Represents a DAST profile schedule.""" +type DastProfileSchedule { + """Status of the DAST profile schedule.""" + active: Boolean + + """Cadence of the DAST profile schedule.""" + cadence: DastProfileCadence + + """ID of the DAST profile schedule.""" + id: DastProfileScheduleID! + + """Next run time of the DAST profile schedule in the given timezone.""" + nextRunAt: Time + + """Status of the current owner of the DAST profile schedule.""" + ownerValid: Boolean + + """Start time of the DAST profile schedule in the given timezone.""" + startsAt: Time + + """Time zone of the start time of the DAST profile schedule.""" + timezone: String +} + +""" +A `DastProfileScheduleID` is a global ID. It is encoded as a string. + +An example `DastProfileScheduleID` is: `"gid://gitlab/Dast::ProfileSchedule/1"`. +""" +scalar DastProfileScheduleID + +"""Input type for DAST Profile Schedules""" +input DastProfileScheduleInput { + """Status of a Dast Profile Schedule.""" + active: Boolean + + """Start time of a Dast Profile Schedule.""" + startsAt: Time + + """Time Zone for the Start time of a Dast Profile Schedule.""" + timezone: String + + """Cadence of a Dast Profile Schedule.""" + cadence: DastProfileCadenceInput +} + +"""Autogenerated input type of DastProfileUpdate""" +input DastProfileUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the profile to be deleted.""" + id: DastProfileID! + + """Represents a DAST profile schedule.""" + dastProfileSchedule: DastProfileScheduleInput + + """Name of the profile.""" + name: String + + """Description of the profile. Defaults to an empty string.""" + description: String = "" + + """Associated branch.""" + branchName: String + + """ID of the site profile to be associated.""" + dastSiteProfileId: DastSiteProfileID + + """ID of the scanner profile to be associated.""" + dastScannerProfileId: DastScannerProfileID + + """Run scan using profile after update. Defaults to false.""" + runAfterUpdate: Boolean = false +} + +"""Autogenerated return type of DastProfileUpdate""" +type DastProfileUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Updated profile.""" + dastProfile: DastProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + The URL of the pipeline that was created. Requires the input argument + `runAfterUpdate` to be set to `true` when calling the mutation, otherwise no + pipeline will be created. + """ + pipelineUrl: String +} + +"""Scan method to be used by the scanner.""" +enum DastScanMethodType { + """Website scan method.""" + WEBSITE + + """OpenAPI scan method.""" + OPENAPI + + """HAR scan method.""" + HAR + + """Postman scan method.""" + POSTMAN_COLLECTION +} + +"""Represents a DAST scanner profile""" +type DastScannerProfile { + """Relative web path to the edit page of a scanner profile.""" + editPath: String + + """ID of the DAST scanner profile.""" + id: DastScannerProfileID! + + """Name of the DAST scanner profile.""" + profileName: String + + """List of security policy names that are referencing given project.""" + referencedInSecurityPolicies: [String!] + + """ + Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. + """ + scanType: DastScanTypeEnum + + """ + Indicates if debug messages should be included in DAST console output. True to include the debug messages. + """ + showDebugMessages: Boolean! + + """Maximum number of minutes allowed for the spider to traverse the site.""" + spiderTimeout: Int + + """ + Maximum number of seconds allowed for the site under test to respond to a request. + """ + targetTimeout: Int + + """ + Indicates if the AJAX spider should be used to crawl the target site. True to + run the AJAX spider in addition to the traditional spider, and false to run + only the traditional spider. + """ + useAjaxSpider: Boolean! +} + +"""The connection type for DastScannerProfile.""" +type DastScannerProfileConnection { + """A list of edges.""" + edges: [DastScannerProfileEdge] + + """A list of nodes.""" + nodes: [DastScannerProfile] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of DastScannerProfileCreate""" +input DastScannerProfileCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the scanner profile belongs to.""" + fullPath: ID! + + """Name of the scanner profile.""" + profileName: String! + + """Maximum number of minutes allowed for the spider to traverse the site.""" + spiderTimeout: Int + + """ + Maximum number of seconds allowed for the site under test to respond to a request. + """ + targetTimeout: Int + + """ + Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. + """ + scanType: DastScanTypeEnum = PASSIVE + + """ + Indicates if the AJAX spider should be used to crawl the target site. True to + run the AJAX spider in addition to the traditional spider, and false to run + only the traditional spider. + """ + useAjaxSpider: Boolean = false + + """ + Indicates if debug messages should be included in DAST console output. True to include the debug messages. + """ + showDebugMessages: Boolean = false +} + +"""Autogenerated return type of DastScannerProfileCreate""" +type DastScannerProfileCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Created scanner profile.""" + dastScannerProfile: DastScannerProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + ID of the scanner profile. Deprecated in 14.10: use `dastScannerProfile` field. + """ + id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in 14.10.") +} + +"""Autogenerated input type of DastScannerProfileDelete""" +input DastScannerProfileDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the scanner profile to be deleted.""" + id: DastScannerProfileID! +} + +"""Autogenerated return type of DastScannerProfileDelete""" +type DastScannerProfileDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type DastScannerProfileEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DastScannerProfile +} + +""" +A `DastScannerProfileID` is a global ID. It is encoded as a string. + +An example `DastScannerProfileID` is: `"gid://gitlab/DastScannerProfile/1"`. +""" +scalar DastScannerProfileID + +"""Autogenerated input type of DastScannerProfileUpdate""" +input DastScannerProfileUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the scanner profile to be updated.""" + id: DastScannerProfileID! + + """Name of the scanner profile.""" + profileName: String! + + """Maximum number of minutes allowed for the spider to traverse the site.""" + spiderTimeout: Int! + + """ + Maximum number of seconds allowed for the site under test to respond to a request. + """ + targetTimeout: Int! + + """ + Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. + """ + scanType: DastScanTypeEnum + + """ + Indicates if the AJAX spider should be used to crawl the target site. True to + run the AJAX spider in addition to the traditional spider, and false to run + only the traditional spider. + """ + useAjaxSpider: Boolean + + """ + Indicates if debug messages should be included in DAST console output. True to include the debug messages. + """ + showDebugMessages: Boolean +} + +"""Autogenerated return type of DastScannerProfileUpdate""" +type DastScannerProfileUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Updated scanner profile.""" + dastScannerProfile: DastScannerProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + ID of the scanner profile. Deprecated in 14.10: use `dastScannerProfile` field. + """ + id: DastScannerProfileID @deprecated(reason: "use `dastScannerProfile` field. Deprecated in 14.10.") +} + +enum DastScanTypeEnum { + """ + Passive DAST scan. This scan will not make active attacks against the target site. + """ + PASSIVE + + """ + Active DAST scan. This scan will make active attacks against the target site. + """ + ACTIVE +} + +"""Represents a DAST Site Profile""" +type DastSiteProfile { + """Target authentication details.""" + auth: DastSiteProfileAuth + + """Relative web path to the edit page of a site profile.""" + editPath: String + + """URLs to skip during an authenticated scan.""" + excludedUrls: [String!] + + """ID of the site profile.""" + id: DastSiteProfileID! + + """Normalized URL of the target to be scanned.""" + normalizedTargetUrl: String + + """Name of the site profile.""" + profileName: String + + """List of security policy names that are referencing given project.""" + referencedInSecurityPolicies: [String!] + + """ + Comma-separated list of request header names and values to be added to every request made by DAST. + """ + requestHeaders: String + + """ + Scan method used by the scanner. Always returns `null` if `dast_api_scanner` feature flag is disabled. + """ + scanMethod: DastScanMethodType + + """Type of target to be scanned.""" + targetType: DastTargetTypeEnum + + """URL of the target to be scanned.""" + targetUrl: String + + """Permissions for the current user on the resource""" + userPermissions: DastSiteProfilePermissions! + + """Current validation status of the site profile.""" + validationStatus: DastSiteProfileValidationStatusEnum +} + +"""Input type for DastSiteProfile authentication""" +type DastSiteProfileAuth { + """Indicates whether authentication is enabled.""" + enabled: Boolean + + """Redacted password to authenticate with on the target website.""" + password: String + + """Name of password field at the sign-in HTML form.""" + passwordField: String + + """Name or ID of sign-in submit button at the sign-in HTML form.""" + submitField: String + + """ + The URL of the page containing the sign-in HTML form on the target website. + """ + url: String + + """Username to authenticate with on the target website.""" + username: String + + """Name of username field at the sign-in HTML form.""" + usernameField: String +} + +"""Input type for DastSiteProfile authentication""" +input DastSiteProfileAuthInput { + """Indicates whether authentication is enabled.""" + enabled: Boolean + + """ + The URL of the page containing the sign-in HTML form on the target website. + """ + url: String + + """Name of username field at the sign-in HTML form.""" + usernameField: String + + """Name of password field at the sign-in HTML form.""" + passwordField: String + + """Username to authenticate with on the target.""" + username: String + + """Password to authenticate with on the target.""" + password: String + + """Name or ID of sign-in submit button at the sign-in HTML form.""" + submitField: String +} + +"""The connection type for DastSiteProfile.""" +type DastSiteProfileConnection { + """A list of edges.""" + edges: [DastSiteProfileEdge] + + """A list of nodes.""" + nodes: [DastSiteProfile] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of DastSiteProfileCreate""" +input DastSiteProfileCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the site profile.""" + profileName: String! + + """URL of the target to be scanned.""" + targetUrl: String + + """Type of target to be scanned.""" + targetType: DastTargetTypeEnum + + """ + Scan method by the scanner. Is not saved or updated if `dast_api_scanner` feature flag is disabled. + """ + scanMethod: DastScanMethodType + + """ + Comma-separated list of request header names and values to be added to every request made by DAST. + """ + requestHeaders: String + + """Parameters for authentication.""" + auth: DastSiteProfileAuthInput + + """Project the site profile belongs to.""" + fullPath: ID! + + """URLs to skip during an authenticated scan. Defaults to `[]`.""" + excludedUrls: [String!] = [] +} + +"""Autogenerated return type of DastSiteProfileCreate""" +type DastSiteProfileCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Site Profile object.""" + dastSiteProfile: DastSiteProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + ID of the site profile. Deprecated in 14.10: use `dastSiteProfile.id` field. + """ + id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in 14.10.") +} + +"""Autogenerated input type of DastSiteProfileDelete""" +input DastSiteProfileDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the site profile to be deleted.""" + id: DastSiteProfileID! +} + +"""Autogenerated return type of DastSiteProfileDelete""" +type DastSiteProfileDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type DastSiteProfileEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DastSiteProfile +} + +""" +A `DastSiteProfileID` is a global ID. It is encoded as a string. + +An example `DastSiteProfileID` is: `"gid://gitlab/DastSiteProfile/1"`. +""" +scalar DastSiteProfileID + +"""Check permissions for the current user on site profile""" +type DastSiteProfilePermissions { + """ + Indicates the user can perform `create_on_demand_dast_scan` on this resource + """ + createOnDemandDastScan: Boolean! +} + +"""Autogenerated input type of DastSiteProfileUpdate""" +input DastSiteProfileUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the site profile.""" + profileName: String! + + """URL of the target to be scanned.""" + targetUrl: String + + """Type of target to be scanned.""" + targetType: DastTargetTypeEnum + + """ + Scan method by the scanner. Is not saved or updated if `dast_api_scanner` feature flag is disabled. + """ + scanMethod: DastScanMethodType + + """ + Comma-separated list of request header names and values to be added to every request made by DAST. + """ + requestHeaders: String + + """Parameters for authentication.""" + auth: DastSiteProfileAuthInput + + """ID of the site profile to be updated.""" + id: DastSiteProfileID! + + """URLs to skip during an authenticated scan.""" + excludedUrls: [String!] +} + +"""Autogenerated return type of DastSiteProfileUpdate""" +type DastSiteProfileUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Site profile object.""" + dastSiteProfile: DastSiteProfile + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + ID of the site profile. Deprecated in 14.10: use `dastSiteProfile.id` field. + """ + id: DastSiteProfileID @deprecated(reason: "use `dastSiteProfile.id` field. Deprecated in 14.10.") +} + +enum DastSiteProfileValidationStatusEnum { + """No site validation exists.""" + NONE + + """Site validation process has not started.""" + PENDING_VALIDATION + + """Site validation process is in progress.""" + INPROGRESS_VALIDATION + + """Site validation process finished successfully.""" + PASSED_VALIDATION + + """Site validation process finished but failed.""" + FAILED_VALIDATION +} + +"""Autogenerated input type of DastSiteTokenCreate""" +input DastSiteTokenCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the site token belongs to.""" + fullPath: ID! + + """URL of the target to be validated.""" + targetUrl: String +} + +"""Autogenerated return type of DastSiteTokenCreate""" +type DastSiteTokenCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ID of the site token.""" + id: DastSiteTokenID + + """Current validation status of the target.""" + status: DastSiteProfileValidationStatusEnum + + """Token string.""" + token: String +} + +""" +A `DastSiteTokenID` is a global ID. It is encoded as a string. + +An example `DastSiteTokenID` is: `"gid://gitlab/DastSiteToken/1"`. +""" +scalar DastSiteTokenID + +"""Represents a DAST Site Validation""" +type DastSiteValidation { + """Global ID of the site validation.""" + id: DastSiteValidationID! + + """Normalized URL of the target to be validated.""" + normalizedTargetUrl: String + + """Status of the site validation.""" + status: DastSiteProfileValidationStatusEnum! +} + +"""The connection type for DastSiteValidation.""" +type DastSiteValidationConnection { + """A list of edges.""" + edges: [DastSiteValidationEdge] + + """A list of nodes.""" + nodes: [DastSiteValidation] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of DastSiteValidationCreate""" +input DastSiteValidationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the site profile belongs to.""" + fullPath: ID! + + """ID of the site token.""" + dastSiteTokenId: DastSiteTokenID! + + """Path to be requested during validation.""" + validationPath: String! + + """Validation strategy to be used.""" + strategy: DastSiteValidationStrategyEnum +} + +"""Autogenerated return type of DastSiteValidationCreate""" +type DastSiteValidationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ID of the site validation.""" + id: DastSiteValidationID + + """Current validation status.""" + status: DastSiteProfileValidationStatusEnum +} + +"""An edge in a connection.""" +type DastSiteValidationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DastSiteValidation +} + +""" +A `DastSiteValidationID` is a global ID. It is encoded as a string. + +An example `DastSiteValidationID` is: `"gid://gitlab/DastSiteValidation/1"`. +""" +scalar DastSiteValidationID + +"""Autogenerated input type of DastSiteValidationRevoke""" +input DastSiteValidationRevokeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project the site validation belongs to.""" + fullPath: ID! + + """Normalized URL of the target to be revoked.""" + normalizedTargetUrl: String! +} + +"""Autogenerated return type of DastSiteValidationRevoke""" +type DastSiteValidationRevokePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +enum DastSiteValidationStatusEnum { + """Site validation process has not started.""" + PENDING_VALIDATION + + """Site validation process is in progress.""" + INPROGRESS_VALIDATION + + """Site validation process finished successfully.""" + PASSED_VALIDATION + + """Site validation process finished but failed.""" + FAILED_VALIDATION +} + +enum DastSiteValidationStrategyEnum { + """Text file validation.""" + TEXT_FILE + + """Header validation.""" + HEADER + + """Meta tag validation.""" + META_TAG +} + +enum DastTargetTypeEnum { + """Website target.""" + WEBSITE + + """API target.""" + API +} + +"""Color of the data visualization palette""" +enum DataVisualizationColorEnum { + """Blue color""" + BLUE + + """Orange color""" + ORANGE + + """Aqua color""" + AQUA + + """Green color""" + GREEN + + """Magenta color""" + MAGENTA +} + +"""Weight of the data visualization palette""" +enum DataVisualizationWeightEnum { + """50 weight""" + WEIGHT_50 + + """100 weight""" + WEIGHT_100 + + """200 weight""" + WEIGHT_200 + + """300 weight""" + WEIGHT_300 + + """400 weight""" + WEIGHT_400 + + """500 weight""" + WEIGHT_500 + + """600 weight""" + WEIGHT_600 + + """700 weight""" + WEIGHT_700 + + """800 weight""" + WEIGHT_800 + + """900 weight""" + WEIGHT_900 + + """950 weight""" + WEIGHT_950 +} + +"""Date represented in ISO 8601""" +scalar Date + +"""Autogenerated input type of DeleteAnnotation""" +input DeleteAnnotationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the annotation to delete.""" + id: MetricsDashboardAnnotationID! +} + +"""Autogenerated return type of DeleteAnnotation""" +type DeleteAnnotationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The response from the AdminSidekiqQueuesDeleteJobs mutation""" +type DeleteJobsResponse { + """ + Whether or not the entire queue was processed in time; if not, retrying the same request is safe. + """ + completed: Boolean + + """Number of matching jobs deleted.""" + deletedJobs: Int + + """Queue size after processing.""" + queueSize: Int +} + +"""Represents metadata associated with a dependency link""" +union DependencyLinkMetadata = NugetDependencyLinkMetadata + +"""Dependency proxy blob""" +type DependencyProxyBlob { + """Date of creation.""" + createdAt: Time! + + """Name of the blob.""" + fileName: String! + + """Size of the blob file.""" + size: String! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""The connection type for DependencyProxyBlob.""" +type DependencyProxyBlobConnection { + """A list of edges.""" + edges: [DependencyProxyBlobEdge] + + """A list of nodes.""" + nodes: [DependencyProxyBlob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DependencyProxyBlobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DependencyProxyBlob +} + +"""Group-level Dependency Proxy TTL policy settings""" +type DependencyProxyImageTtlGroupPolicy { + """Timestamp of creation.""" + createdAt: Time + + """Indicates whether the policy is enabled or disabled.""" + enabled: Boolean! + + """Number of days to retain a cached image file.""" + ttl: Int + + """Timestamp of the most recent update.""" + updatedAt: Time +} + +"""Dependency proxy manifest""" +type DependencyProxyManifest { + """Date of creation.""" + createdAt: Time! + + """Digest of the manifest.""" + digest: String! + + """Name of the manifest.""" + fileName: String! + + """ID of the manifest.""" + id: DependencyProxyManifestID! + + """Name of the image.""" + imageName: String! + + """Size of the manifest file.""" + size: String! + + """ + Status of the manifest (default, pending_destruction, processing, error) + """ + status: DependencyProxyManifestStatus! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""The connection type for DependencyProxyManifest.""" +type DependencyProxyManifestConnection { + """A list of edges.""" + edges: [DependencyProxyManifestEdge] + + """A list of nodes.""" + nodes: [DependencyProxyManifest] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DependencyProxyManifestEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DependencyProxyManifest +} + +""" +A `DependencyProxyManifestID` is a global ID. It is encoded as a string. + +An example `DependencyProxyManifestID` is: `"gid://gitlab/DependencyProxy::Manifest/1"`. +""" +scalar DependencyProxyManifestID + +enum DependencyProxyManifestStatus { + """Dependency proxy manifest has a status of default.""" + DEFAULT + + """Dependency proxy manifest has a status of pending_destruction.""" + PENDING_DESTRUCTION + + """Dependency proxy manifest has a status of processing.""" + PROCESSING + + """Dependency proxy manifest has a status of error.""" + ERROR +} + +"""Group-level Dependency Proxy settings""" +type DependencyProxySetting { + """Indicates whether the dependency proxy is enabled for the group.""" + enabled: Boolean! +} + +"""The deployment of an environment""" +type Deployment { + """Commit details of the deployment.""" + commit: Commit + + """When the deployment record was created.""" + createdAt: Time + + """When the deployment finished.""" + finishedAt: Time + + """Global ID of the deployment.""" + id: ID + + """Project-level internal ID of the deployment.""" + iid: ID + + """Pipeline job of the deployment.""" + job: CiJob + + """Git-Ref that the deployment ran on.""" + ref: String + + """Git-SHA that the deployment ran on.""" + sha: String + + """Status of the deployment.""" + status: DeploymentStatus + + """True or false if the deployment ran on a Git-tag.""" + tag: Boolean + + """User who executed the deployment.""" + triggerer: UserCore + + """When the deployment record was updated.""" + updatedAt: Time +} + +"""The connection type for Deployment.""" +type DeploymentConnection { + """A list of edges.""" + edges: [DeploymentEdge] + + """A list of nodes.""" + nodes: [Deployment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""The details of the deployment""" +type DeploymentDetails { + """Commit details of the deployment.""" + commit: Commit + + """When the deployment record was created.""" + createdAt: Time + + """When the deployment finished.""" + finishedAt: Time + + """Global ID of the deployment.""" + id: ID + + """Project-level internal ID of the deployment.""" + iid: ID + + """Pipeline job of the deployment.""" + job: CiJob + + """Git-Ref that the deployment ran on.""" + ref: String + + """Git-SHA that the deployment ran on.""" + sha: String + + """Status of the deployment.""" + status: DeploymentStatus + + """True or false if the deployment ran on a Git-tag.""" + tag: Boolean + + """Git tags that contain this deployment.""" + tags: [DeploymentTag!] + + """User who executed the deployment.""" + triggerer: UserCore + + """When the deployment record was updated.""" + updatedAt: Time +} + +"""An edge in a connection.""" +type DeploymentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Deployment +} + +"""Values for ordering deployments by a specific field""" +input DeploymentsOrderByInput { + """Order by Created time.""" + createdAt: SortDirectionEnum + + """Order by Finished time.""" + finishedAt: SortDirectionEnum +} + +"""All deployment statuses.""" +enum DeploymentStatus { + """A deployment that is created.""" + CREATED + + """A deployment that is running.""" + RUNNING + + """A deployment that is success.""" + SUCCESS + + """A deployment that is failed.""" + FAILED + + """A deployment that is canceled.""" + CANCELED + + """A deployment that is skipped.""" + SKIPPED + + """A deployment that is blocked.""" + BLOCKED +} + +"""Tags for a given deployment""" +type DeploymentTag { + """Name of this git tag.""" + name: String + + """Path for this tag.""" + path: String +} + +"""All environment deployment tiers.""" +enum DeploymentTier { + """Production.""" + PRODUCTION + + """Staging.""" + STAGING + + """Testing.""" + TESTING + + """Development.""" + DEVELOPMENT + + """Other.""" + OTHER +} + +"""A single design""" +type Design implements CurrentUserTodos & DesignFields & NoteableInterface & Todoable { + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Diff refs for this design.""" + diffRefs: DiffRefs! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """How this design was changed in the current version.""" + event: DesignVersionEvent! + + """Filename of the design.""" + filename: String! + + """Full path to the design file.""" + fullPath: String! + + """ID of this design.""" + id: ID! + + """URL of the full-sized image.""" + image: String! + + """ + The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated + """ + imageV432x230: String + + """Issue the design belongs to.""" + issue: Issue! + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Total count of user-created notes for this design.""" + notesCount: Int! + + """Project the design belongs to.""" + project: Project! + + """All versions related to this design ordered newest first.""" + versions( + """SHA256 of the most recent acceptable version.""" + earlierOrEqualToSha: String + + """Global ID of the most recent acceptable version.""" + earlierOrEqualToId: DesignManagementVersionID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignVersionConnection! + + """URL of the design.""" + webUrl: String! +} + +""" +A design pinned to a specific version. The image field reflects the design as of the associated version +""" +type DesignAtVersion implements DesignFields { + """Underlying design.""" + design: Design! + + """Diff refs for this design.""" + diffRefs: DiffRefs! + + """How this design was changed in the current version.""" + event: DesignVersionEvent! + + """Filename of the design.""" + filename: String! + + """Full path to the design file.""" + fullPath: String! + + """ID of this design.""" + id: ID! + + """URL of the full-sized image.""" + image: String! + + """ + The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated + """ + imageV432x230: String + + """Issue the design belongs to.""" + issue: Issue! + + """Total count of user-created notes for this design.""" + notesCount: Int! + + """Project the design belongs to.""" + project: Project! + + """Version this design-at-versions is pinned to.""" + version: DesignVersion! +} + +"""The connection type for DesignAtVersion.""" +type DesignAtVersionConnection { + """A list of edges.""" + edges: [DesignAtVersionEdge] + + """A list of nodes.""" + nodes: [DesignAtVersion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DesignAtVersionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DesignAtVersion +} + +"""A collection of designs""" +type DesignCollection { + """Copy state of the design collection.""" + copyState: DesignCollectionCopyState + + """Find a specific design.""" + design( + """Find a design by its ID.""" + id: DesignManagementDesignID + + """Find a design by its filename.""" + filename: String + ): Design + + """Find a design as of a version.""" + designAtVersion( + """Global ID of the design at this version.""" + id: DesignManagementDesignAtVersionID! + ): DesignAtVersion + + """All designs for the design collection.""" + designs( + """ + Filters designs to only those that existed at the version. If argument is + omitted or nil then all designs will reflect the latest version + """ + atVersion: DesignManagementVersionID + + """Filters designs by their filename.""" + filenames: [String!] + + """Filters designs by their ID.""" + ids: [DesignManagementDesignID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignConnection! + + """Issue associated with the design collection.""" + issue: Issue! + + """Project associated with the design collection.""" + project: Project! + + """A specific version.""" + version( + """Global ID of the version.""" + id: DesignManagementVersionID + + """SHA256 of a specific version.""" + sha: String + ): DesignVersion + + """All versions related to all designs, ordered newest first.""" + versions( + """SHA256 of the most recent acceptable version.""" + earlierOrEqualToSha: String + + """Global ID of the most recent acceptable version.""" + earlierOrEqualToId: DesignManagementVersionID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignVersionConnection! +} + +"""Copy state of a DesignCollection""" +enum DesignCollectionCopyState { + """The DesignCollection has no copy in progress""" + READY + + """The DesignCollection is being copied""" + IN_PROGRESS + + """The DesignCollection encountered an error during a copy""" + ERROR +} + +"""The connection type for Design.""" +type DesignConnection { + """A list of edges.""" + edges: [DesignEdge] + + """A list of nodes.""" + nodes: [Design] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DesignEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Design +} + +interface DesignFields { + """Diff refs for this design.""" + diffRefs: DiffRefs! + + """How this design was changed in the current version.""" + event: DesignVersionEvent! + + """Filename of the design.""" + filename: String! + + """Full path to the design file.""" + fullPath: String! + + """ID of this design.""" + id: ID! + + """URL of the full-sized image.""" + image: String! + + """ + The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated + """ + imageV432x230: String + + """Issue the design belongs to.""" + issue: Issue! + + """Total count of user-created notes for this design.""" + notesCount: Int! + + """Project the design belongs to.""" + project: Project! +} + +type DesignManagement { + """Find a design as of a version.""" + designAtVersion( + """Global ID of the design at this version.""" + id: DesignManagementDesignAtVersionID! + ): DesignAtVersion + + """Find a version.""" + version( + """Global ID of the version.""" + id: DesignManagementVersionID! + ): DesignVersion +} + +"""Autogenerated input type of DesignManagementDelete""" +input DesignManagementDeleteInput { + """Project where the issue is to upload designs for.""" + projectPath: ID! + + """IID of the issue to modify designs for.""" + iid: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Filenames of the designs to delete.""" + filenames: [String!]! +} + +"""Autogenerated return type of DesignManagementDelete""" +type DesignManagementDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """New version in which the designs are deleted.""" + version: DesignVersion +} + +""" +A `DesignManagementDesignAtVersionID` is a global ID. It is encoded as a string. + +An example `DesignManagementDesignAtVersionID` is: `"gid://gitlab/DesignManagement::DesignAtVersion/1"`. +""" +scalar DesignManagementDesignAtVersionID + +""" +A `DesignManagementDesignID` is a global ID. It is encoded as a string. + +An example `DesignManagementDesignID` is: `"gid://gitlab/DesignManagement::Design/1"`. +""" +scalar DesignManagementDesignID + +"""Autogenerated input type of DesignManagementMove""" +input DesignManagementMoveInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the design to move.""" + id: DesignManagementDesignID! + + """ID of the immediately preceding design.""" + previous: DesignManagementDesignID + + """ID of the immediately following design.""" + next: DesignManagementDesignID +} + +"""Autogenerated return type of DesignManagementMove""" +type DesignManagementMovePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Current state of the collection.""" + designCollection: DesignCollection + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DesignManagementUpload""" +input DesignManagementUploadInput { + """Project where the issue is to upload designs for.""" + projectPath: ID! + + """IID of the issue to modify designs for.""" + iid: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Files to upload.""" + files: [Upload!]! +} + +"""Autogenerated return type of DesignManagementUpload""" +type DesignManagementUploadPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Designs that were uploaded by the mutation.""" + designs: [Design!]! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Any designs that were skipped from the upload due to there being no change to their content since their last version + """ + skippedDesigns: [Design!]! +} + +""" +A `DesignManagementVersionID` is a global ID. It is encoded as a string. + +An example `DesignManagementVersionID` is: `"gid://gitlab/DesignManagement::Version/1"`. +""" +scalar DesignManagementVersionID + +"""A specific version in which designs were added, modified or deleted""" +type DesignVersion { + """Author of the version.""" + author: UserCore! + + """Timestamp of when the version was created.""" + createdAt: Time! + + """ + A particular design as of this version, provided it is visible at this version. + """ + designAtVersion( + """ID of a specific design.""" + designId: DesignManagementDesignID + + """Filename of a specific design.""" + filename: String + + """ID of the DesignAtVersion.""" + id: DesignManagementDesignAtVersionID + ): DesignAtVersion! + + """All designs that were changed in the version.""" + designs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignConnection! + + """All designs that are visible at this version, as of this version.""" + designsAtVersion( + """Filters designs by their filename.""" + filenames: [String!] + + """Filters designs by their ID.""" + ids: [DesignManagementDesignID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DesignAtVersionConnection! + + """ID of the design version.""" + id: ID! + + """SHA of the design version.""" + sha: ID! +} + +"""The connection type for DesignVersion.""" +type DesignVersionConnection { + """A list of edges.""" + edges: [DesignVersionEdge] + + """A list of nodes.""" + nodes: [DesignVersion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DesignVersionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DesignVersion +} + +"""Mutation event of a design within a version""" +enum DesignVersionEvent { + """No change.""" + NONE + + """A creation event""" + CREATION + + """A modification event""" + MODIFICATION + + """A deletion event""" + DELETION +} + +"""Autogenerated input type of DestroyBoard""" +input DestroyBoardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the board to destroy.""" + id: BoardID! +} + +"""Autogenerated input type of DestroyBoardList""" +input DestroyBoardListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the list to destroy. Only label lists are accepted.""" + listId: ListID! +} + +"""Autogenerated return type of DestroyBoardList""" +type DestroyBoardListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """List after mutation.""" + list: BoardList +} + +"""Autogenerated return type of DestroyBoard""" +type DestroyBoardPayload { + """Board after mutation.""" + board: Board + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyComplianceFramework""" +input DestroyComplianceFrameworkInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the compliance framework to destroy.""" + id: ComplianceManagementFrameworkID! +} + +"""Autogenerated return type of DestroyComplianceFramework""" +type DestroyComplianceFrameworkPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyContainerRepository""" +input DestroyContainerRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the container repository.""" + id: ContainerRepositoryID! +} + +"""Autogenerated return type of DestroyContainerRepository""" +type DestroyContainerRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Container repository policy after scheduling the deletion.""" + containerRepository: ContainerRepository! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyContainerRepositoryTags""" +input DestroyContainerRepositoryTagsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the container repository.""" + id: ContainerRepositoryID! + + """ + Container repository tag(s) to delete. Total number can't be greater than 20 + """ + tagNames: [String!]! +} + +"""Autogenerated return type of DestroyContainerRepositoryTags""" +type DestroyContainerRepositoryTagsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Deleted container repository tags.""" + deletedTagNames: [String!]! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyCustomEmoji""" +input DestroyCustomEmojiInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the custom emoji to destroy.""" + id: CustomEmojiID! +} + +"""Autogenerated return type of DestroyCustomEmoji""" +type DestroyCustomEmojiPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Deleted custom emoji.""" + customEmoji: CustomEmoji + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyEpicBoard""" +input DestroyEpicBoardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the board to destroy.""" + id: BoardsEpicBoardID! +} + +"""Autogenerated return type of DestroyEpicBoard""" +type DestroyEpicBoardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic board after mutation.""" + epicBoard: EpicBoard + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyNote""" +input DestroyNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the note to destroy.""" + id: NoteID! +} + +"""Autogenerated return type of DestroyNote""" +type DestroyNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of DestroyPackageFile""" +input DestroyPackageFileInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the Package file.""" + id: PackagesPackageFileID! +} + +"""Autogenerated return type of DestroyPackageFile""" +type DestroyPackageFilePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyPackageFiles""" +input DestroyPackageFilesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project path where the packages cleanup policy is located.""" + projectPath: ID! + + """IDs of the Package file.""" + ids: [PackagesPackageFileID!]! +} + +"""Autogenerated return type of DestroyPackageFiles""" +type DestroyPackageFilesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroyPackage""" +input DestroyPackageInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the Package.""" + id: PackagesPackageID! +} + +"""Autogenerated return type of DestroyPackage""" +type DestroyPackagePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of DestroySnippet""" +input DestroySnippetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the snippet to destroy.""" + id: SnippetID! +} + +"""Autogenerated return type of DestroySnippet""" +type DestroySnippetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Snippet after mutation.""" + snippet: Snippet +} + +""" +Detailed representation of whether a GitLab merge request can be merged. +""" +enum DetailedMergeStatus { + """Merge status has not been checked.""" + UNCHECKED + + """Currently checking for mergeability.""" + CHECKING + + """Branch can be merged.""" + MERGEABLE + + """Can not merge the source into the target branch, potential conflict.""" + BROKEN_STATUS + + """Pipeline must succeed before merging.""" + CI_MUST_PASS + + """Pipeline is still running.""" + CI_STILL_RUNNING + + """Discussions must be resolved before merging.""" + DISCUSSIONS_NOT_RESOLVED + + """Merge request must not be draft before merging.""" + DRAFT_STATUS + + """Merge request must be open before merging.""" + NOT_OPEN + + """Merge request must be approved before merging.""" + NOT_APPROVED + + """Merge request is blocked by another merge request.""" + BLOCKED_STATUS + + """There are denied policies for the merge request.""" + POLICIES_DENIED +} + +type DetailedStatus { + """ + Action information for the status. This includes method, button title, icon, path, and title. + """ + action: StatusAction + + """Path of the details for the status.""" + detailsPath: String + + """Favicon of the status.""" + favicon: String + + """Group of the status.""" + group: String + + """Indicates if the status has further details.""" + hasDetails: Boolean + + """Icon of the status.""" + icon: String + + """ID for a detailed status.""" + id: String! + + """Label of the status.""" + label: String + + """Text of the status.""" + text: String + + """Tooltip associated with the status.""" + tooltip: String +} + +"""Enabled namespace for DevopsAdoption""" +type DevopsAdoptionEnabledNamespace { + """Namespace where data should be displayed.""" + displayNamespace: Namespace + + """ID of the enabled namespace.""" + id: ID! + + """Metrics snapshot for previous month for the enabled namespace.""" + latestSnapshot: DevopsAdoptionSnapshot + + """Namespace which should be calculated.""" + namespace: Namespace + + """Data snapshots of the namespace.""" + snapshots( + """Filter to snapshots with month end before the provided date.""" + endTimeBefore: Time + + """Filter to snapshots with month end after the provided date.""" + endTimeAfter: Time + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DevopsAdoptionSnapshotConnection +} + +"""The connection type for DevopsAdoptionEnabledNamespace.""" +type DevopsAdoptionEnabledNamespaceConnection { + """A list of edges.""" + edges: [DevopsAdoptionEnabledNamespaceEdge] + + """A list of nodes.""" + nodes: [DevopsAdoptionEnabledNamespace] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DevopsAdoptionEnabledNamespaceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DevopsAdoptionEnabledNamespace +} + +"""Snapshot""" +type DevopsAdoptionSnapshot { + """Total number of projects with existing CODEOWNERS file.""" + codeOwnersUsedCount: Int + + """Total number of projects with enabled coverage fuzzing.""" + coverageFuzzingEnabledCount: Int + + """Total number of projects with enabled DAST.""" + dastEnabledCount: Int + + """Total number of projects with enabled dependency scanning.""" + dependencyScanningEnabledCount: Int + + """At least one deployment succeeded.""" + deploySucceeded: Boolean! + + """End time for the snapshot where the data points were collected.""" + endTime: Time! + + """At least one issue was opened.""" + issueOpened: Boolean! + + """At least one merge request was approved.""" + mergeRequestApproved: Boolean! + + """At least one merge request was opened.""" + mergeRequestOpened: Boolean! + + """At least one pipeline succeeded.""" + pipelineSucceeded: Boolean! + + """Time the snapshot was recorded.""" + recordedAt: Time! + + """At least one runner was used.""" + runnerConfigured: Boolean! + + """Total number of projects with enabled SAST.""" + sastEnabledCount: Int + + """Start time for the snapshot where the data points were collected.""" + startTime: Time! + + """Total number of projects.""" + totalProjectsCount: Int + + """ + Total number of projects with vulnerability management used at least once. + """ + vulnerabilityManagementUsedCount: Int +} + +"""The connection type for DevopsAdoptionSnapshot.""" +type DevopsAdoptionSnapshotConnection { + """A list of edges.""" + edges: [DevopsAdoptionSnapshotEdge] + + """A list of nodes.""" + nodes: [DevopsAdoptionSnapshot] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DevopsAdoptionSnapshotEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: DevopsAdoptionSnapshot +} + +input DiffImagePositionInput { + """Merge base of the branch the comment was made on.""" + baseSha: String + + """SHA of the HEAD at the time the comment was made.""" + headSha: String! + + """SHA of the branch being compared against.""" + startSha: String! + + """ + The paths of the file that was changed. Both of the properties of this input + are optional, but at least one of them is required + """ + paths: DiffPathsInput! + + """Total height of the image.""" + height: Int! + + """Total width of the image.""" + width: Int! + + """X position of the note.""" + x: Int! + + """Y position of the note.""" + y: Int! +} + +""" +A `DiffNoteID` is a global ID. It is encoded as a string. + +An example `DiffNoteID` is: `"gid://gitlab/DiffNote/1"`. +""" +scalar DiffNoteID + +input DiffPathsInput { + """Path of the file on the HEAD SHA.""" + newPath: String + + """Path of the file on the start SHA.""" + oldPath: String +} + +type DiffPosition { + """ + Information about the branch, HEAD, and base at the time of commenting. + """ + diffRefs: DiffRefs! + + """Path of the file that was changed.""" + filePath: String! + + """Total height of the image.""" + height: Int + + """Line on HEAD SHA that was changed.""" + newLine: Int + + """Path of the file on the HEAD SHA.""" + newPath: String + + """Line on start SHA that was changed.""" + oldLine: Int + + """Path of the file on the start SHA.""" + oldPath: String + + """Type of file the position refers to.""" + positionType: DiffPositionType! + + """Total width of the image.""" + width: Int + + """X position of the note.""" + x: Int + + """Y position of the note.""" + y: Int +} + +input DiffPositionInput { + """Merge base of the branch the comment was made on.""" + baseSha: String + + """SHA of the HEAD at the time the comment was made.""" + headSha: String! + + """SHA of the branch being compared against.""" + startSha: String! + + """ + The paths of the file that was changed. Both of the properties of this input + are optional, but at least one of them is required + """ + paths: DiffPathsInput! + + """ + Line on HEAD SHA that was changed. Please see the [REST API Documentation](https://docs.gitlab.com/ee/api/discussions.html#create-a-new-thread-in-the-merge-request-diff) + for more information on how to use this field. + """ + newLine: Int + + """ + Line on start SHA that was changed. Please see the [REST API Documentation](https://docs.gitlab.com/ee/api/discussions.html#create-a-new-thread-in-the-merge-request-diff) + for more information on how to use this field. + """ + oldLine: Int +} + +"""Type of file the position refers to""" +enum DiffPositionType { + """Text file.""" + text + + """An image.""" + image +} + +type DiffRefs { + """Merge base of the branch the comment was made on.""" + baseSha: String + + """SHA of the HEAD at the time the comment was made.""" + headSha: String! + + """SHA of the branch being compared against.""" + startSha: String! +} + +"""Changes to a single file""" +type DiffStats { + """Number of lines added to this file.""" + additions: Int! + + """Number of lines deleted from this file.""" + deletions: Int! + + """File path, relative to repository root.""" + path: String! +} + +"""Aggregated summary of changes""" +type DiffStatsSummary { + """Number of lines added.""" + additions: Int! + + """Number of lines changed.""" + changes: Int! + + """Number of lines deleted.""" + deletions: Int! + + """Number of files changed.""" + fileCount: Int! +} + +"""Autogenerated input type of DisableDevopsAdoptionNamespace""" +input DisableDevopsAdoptionNamespaceInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """One or many IDs of the enabled namespaces to disable.""" + id: [AnalyticsDevopsAdoptionEnabledNamespaceID!]! +} + +"""Autogenerated return type of DisableDevopsAdoptionNamespace""" +type DisableDevopsAdoptionNamespacePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type Discussion implements ResolvableInterface { + """Timestamp of the discussion's creation.""" + createdAt: Time! + + """ID of this discussion.""" + id: DiscussionID! + + """Object which the discussion belongs to.""" + noteable: NoteableType + + """All notes in the discussion.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """ID used to reply to this discussion.""" + replyId: DiscussionID! + + """Indicates if the object can be resolved.""" + resolvable: Boolean! + + """Indicates if the object is resolved.""" + resolved: Boolean! + + """Timestamp of when the object was resolved.""" + resolvedAt: Time + + """User who resolved the object.""" + resolvedBy: UserCore +} + +"""The connection type for Discussion.""" +type DiscussionConnection { + """A list of edges.""" + edges: [DiscussionEdge] + + """A list of nodes.""" + nodes: [Discussion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type DiscussionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Discussion +} + +""" +A `DiscussionID` is a global ID. It is encoded as a string. + +An example `DiscussionID` is: `"gid://gitlab/Discussion/1"`. +""" +scalar DiscussionID + +"""Autogenerated input type of DiscussionToggleResolve""" +input DiscussionToggleResolveInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the discussion.""" + id: DiscussionID! + + """ + Will resolve the discussion when true, and unresolve the discussion when false. + """ + resolve: Boolean! +} + +"""Autogenerated return type of DiscussionToggleResolve""" +type DiscussionToggleResolvePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Discussion after mutation.""" + discussion: Discussion + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""All information related to DORA metrics.""" +type Dora { + """DORA metrics for the current group or project.""" + metrics( + """Type of metric to return.""" + metric: DoraMetricType! + + """Date range to start from. Default is 3 months ago.""" + startDate: Date + + """Date range to end at. Default is the current date.""" + endDate: Date + + """ + How the metric should be aggregrated. Defaults to `DAILY`. In the case of + `ALL`, the `date` field in the response will be `null`. + """ + interval: DoraMetricBucketingInterval + + """ + Deployment tier of the environments to return. Deprecated, please update to `environment_tiers` param. + """ + environmentTier: DeploymentTier + + """ + Deployment tiers of the environments to return. Defaults to `[PRODUCTION]`. + """ + environmentTiers: [DeploymentTier!] + ): [DoraMetric!] +} + +type DoraMetric { + """Date of the data point.""" + date: String + + """Value of the data point.""" + value: Float +} + +"""All possible ways that DORA metrics can be aggregated.""" +enum DoraMetricBucketingInterval { + """All data points are combined into a single value.""" + ALL + + """Data points are combined into chunks by month.""" + MONTHLY + + """Data points are combined into chunks by day.""" + DAILY +} + +"""All supported DORA metric types.""" +enum DoraMetricType { + """Deployment frequency.""" + DEPLOYMENT_FREQUENCY + + """Lead time for changes.""" + LEAD_TIME_FOR_CHANGES + + """Time to restore service.""" + TIME_TO_RESTORE_SERVICE + + """Change failure rate.""" + CHANGE_FAILURE_RATE +} + +""" +Duration between two instants, represented as a fractional number of seconds. + +For example: 12.3334 + +""" +scalar Duration + +"""Autogenerated input type of EchoCreate""" +input EchoCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors to return to the user.""" + errors: [String!] + + """Messages to return to the user.""" + messages: [String!] +} + +"""Autogenerated return type of EchoCreate""" +type EchoCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Messages returned to the user.""" + echoes: [String!] + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of EnableDevopsAdoptionNamespace""" +input EnableDevopsAdoptionNamespaceInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Namespace ID.""" + namespaceId: NamespaceID! + + """Display namespace ID.""" + displayNamespaceId: NamespaceID +} + +"""Autogenerated return type of EnableDevopsAdoptionNamespace""" +type EnableDevopsAdoptionNamespacePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Enabled namespace after mutation.""" + enabledNamespace: DevopsAdoptionEnabledNamespace + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +interface Entry { + """Flat path of the entry.""" + flatPath: String! + + """ID of the entry.""" + id: ID! + + """Name of the entry.""" + name: String! + + """Path of the entry.""" + path: String! + + """Last commit SHA for the entry.""" + sha: String! + + """Type of tree entry.""" + type: EntryType! +} + +"""Type of a tree entry""" +enum EntryType { + """Directory tree type.""" + tree + + """File tree type.""" + blob + + """Commit tree type.""" + commit +} + +"""Describes where code is deployed for a project""" +type Environment { + """When the environment is going to be deleted automatically.""" + autoDeleteAt: Time + + """When the environment is going to be stopped automatically.""" + autoStopAt: Time + + """When the environment was created.""" + createdAt: Time + + """ + Deployments of the environment. This field can only be resolved for one project in any single request. + """ + deployments( + """Statuses of the deployments.""" + statuses: [DeploymentStatus!] + + """Order by a specified field.""" + orderBy: DeploymentsOrderByInput + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentConnection + + """Folder name of the environment.""" + environmentType: String + + """External URL of the environment.""" + externalUrl: String + + """ID of the environment.""" + id: ID! + + """Last deployment of the environment.""" + lastDeployment( + """Status of the Deployment.""" + status: DeploymentStatus! + ): Deployment + + """ + Most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned. + """ + latestOpenedMostSevereAlert: AlertManagementAlert + + """Metrics dashboard schema for the environment.""" + metricsDashboard( + """ + Path to a file which defines a metrics dashboard eg: `"config/prometheus/common_metrics.yml"`. + + """ + path: String! + ): MetricsDashboard + + """Human-readable name of the environment.""" + name: String! + + """Path to the environment.""" + path: String! + + """Protected Environments for the environment.""" + protectedEnvironments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProtectedEnvironmentConnection + + """Slug of the environment.""" + slug: String + + """State of the environment, for example: available/stopped.""" + state: String! + + """Deployment tier of the environment.""" + tier: DeploymentTier + + """When the environment was updated.""" + updatedAt: Time +} + +"""The connection type for Environment.""" +type EnvironmentConnection { + """A list of edges.""" + edges: [EnvironmentEdge] + + """A list of nodes.""" + nodes: [Environment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Environment +} + +""" +A `EnvironmentID` is a global ID. It is encoded as a string. + +An example `EnvironmentID` is: `"gid://gitlab/Environment/1"`. +""" +scalar EnvironmentID + +"""Autogenerated input type of EnvironmentsCanaryIngressUpdate""" +input EnvironmentsCanaryIngressUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the environment to update.""" + id: EnvironmentID! + + """Weight of the Canary Ingress.""" + weight: Int! +} + +"""Autogenerated return type of EnvironmentsCanaryIngressUpdate""" +type EnvironmentsCanaryIngressUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Represents an epic""" +type Epic implements CurrentUserTodos & Eventable & NoteableInterface & Todoable { + """Ancestors (parents) of the epic.""" + ancestors( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = true + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Author of the epic.""" + author: UserCore! + + """List of award emojis associated with the epic.""" + awardEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AwardEmojiConnection + + """Indicates the epic is blocked.""" + blocked: Boolean + + """Count of epics blocking this epic.""" + blockedByCount: Int + + """Epics blocking this epic.""" + blockedByEpics( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Count of epics that this epic is blocking.""" + blockingCount: Int + + """Children (sub-epics) of the epic.""" + children( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Timestamp of when the epic was closed.""" + closedAt: Time + + """ + Color of the epic. Returns `null` if `epic_color_highlight` feature flag is disabled. + """ + color: String + + """Indicates if the epic is confidential.""" + confidential: Boolean + + """Timestamp of when the epic was created.""" + createdAt: Time + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """ + Default Project for issue creation. Based on the project the user created the last issue in. + """ + defaultProjectForIssueCreation: Project + + """Number of open and closed descendant epics and issues.""" + descendantCounts: EpicDescendantCount + + """ + Total weight of open and closed issues in the epic and its descendants. + """ + descendantWeightSum: EpicDescendantWeights + + """Description of the epic.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Number of downvotes the epic has received.""" + downvotes: Int! + + """Due date of the epic.""" + dueDate: Time + + """Fixed due date of the epic.""" + dueDateFixed: Time + + """Inherited due date of the epic from child epics or milestones.""" + dueDateFromInheritedSource: Time + + """Inherited due date of the epic from milestones.""" + dueDateFromMilestones: Time + + """Indicates if the due date has been manually set.""" + dueDateIsFixed: Boolean + + """List of events associated with the object.""" + events( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EventConnection + + """Group to which the epic belongs.""" + group: Group! + + """Indicates if the epic has children.""" + hasChildren: Boolean! + + """Indicates if the epic has direct issues.""" + hasIssues: Boolean! + + """Indicates if the epic has a parent epic.""" + hasParent: Boolean! + + """Current health status of the epic.""" + healthStatus: EpicHealthStatus + + """ID of the epic.""" + id: ID! + + """Internal ID of the epic.""" + iid: ID! + + """A list of issues associated with the epic.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicIssueConnection + + """Labels assigned to the epic.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Parent epic of the epic.""" + parent: Epic + + """List of participants for the epic.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ + Internal reference of the epic. Returned in shortened format by default. + """ + reference( + """Indicates if the reference should be returned in full.""" + full: Boolean = false + ): String! + + """URI path of the epic-issue relationship.""" + relationPath: String + + """Relative position of the epic in the epic tree.""" + relativePosition: Int + + """Start date of the epic.""" + startDate: Time + + """Fixed start date of the epic.""" + startDateFixed: Time + + """Inherited start date of the epic from child epics or milestones.""" + startDateFromInheritedSource: Time + + """Inherited start date of the epic from milestones.""" + startDateFromMilestones: Time + + """Indicates if the start date has been manually set.""" + startDateIsFixed: Boolean + + """State of the epic.""" + state: EpicState! + + """Indicates the currently logged in user is subscribed to the epic.""" + subscribed: Boolean! + + """ + Text color generated for the epic. Returns `null` if `epic_color_highlight` feature flag is disabled. + """ + textColor: String + + """Title of the epic.""" + title: String + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Timestamp of when the epic was updated.""" + updatedAt: Time + + """Number of upvotes the epic has received.""" + upvotes: Int! + + """Number of user discussions in the epic.""" + userDiscussionsCount: Int! + + """Number of user notes of the epic.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: EpicPermissions! + + """Web path of the epic.""" + webPath: String! + + """Web URL of the epic.""" + webUrl: String! +} + +"""Autogenerated input type of EpicAddIssue""" +input EpicAddIssueInput { + """IID of the epic to mutate.""" + iid: ID! + + """Group the epic to mutate belongs to.""" + groupPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project the issue belongs to.""" + projectPath: ID! + + """IID of the issue to be added.""" + issueIid: String! +} + +"""Autogenerated return type of EpicAddIssue""" +type EpicAddIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after mutation.""" + epic: Epic + + """Epic-issue relationship.""" + epicIssue: EpicIssue + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Represents an epic board""" +type EpicBoard { + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """Global ID of the epic board.""" + id: BoardsEpicBoardID! + + """Labels of the board.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Epic board lists.""" + lists( + """Find an epic board list by ID.""" + id: BoardsEpicListID + + """Filters applied when getting epic metadata in the epic board list.""" + epicFilters: EpicFilters + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicListConnection + + """Name of the epic board.""" + name: String + + """Web path of the epic board.""" + webPath: String! + + """Web URL of the epic board.""" + webUrl: String! +} + +"""The connection type for EpicBoard.""" +type EpicBoardConnection { + """A list of edges.""" + edges: [EpicBoardEdge] + + """A list of nodes.""" + nodes: [EpicBoard] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of EpicBoardCreate""" +input EpicBoardCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Board name.""" + name: String + + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """Labels of the issue.""" + labels: [String!] + + """IDs of labels to be added to the board.""" + labelIds: [LabelID!] + + """Full path of the group with which the resource is associated.""" + groupPath: ID +} + +"""Autogenerated return type of EpicBoardCreate""" +type EpicBoardCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Created epic board.""" + epicBoard: EpicBoard + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type EpicBoardEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: EpicBoard +} + +"""Autogenerated input type of EpicBoardListCreate""" +input EpicBoardListCreateInput { + """Create the backlog list.""" + backlog: Boolean + + """Global ID of an existing label.""" + labelId: LabelID + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the issue board to mutate.""" + boardId: BoardsEpicBoardID! +} + +"""Autogenerated return type of EpicBoardListCreate""" +type EpicBoardListCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Epic list in the epic board.""" + list: EpicList +} + +"""Autogenerated input type of EpicBoardListDestroy""" +input EpicBoardListDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the epic board list to destroy.""" + listId: BoardsEpicListID! +} + +"""Autogenerated return type of EpicBoardListDestroy""" +type EpicBoardListDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Epic board list. `null` if the board was destroyed successfully.""" + list: EpicList +} + +"""Autogenerated input type of EpicBoardUpdate""" +input EpicBoardUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Board name.""" + name: String + + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """Labels of the issue.""" + labels: [String!] + + """IDs of labels to be added to the board.""" + labelIds: [LabelID!] + + """Epic board global ID.""" + id: BoardsEpicBoardID! +} + +"""Autogenerated return type of EpicBoardUpdate""" +type EpicBoardUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Updated epic board.""" + epicBoard: EpicBoard + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The connection type for Epic.""" +type EpicConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [EpicEdge] + + """A list of nodes.""" + nodes: [Epic] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Counts of descendent epics""" +type EpicDescendantCount { + """Number of closed child epics.""" + closedEpics: Int + + """Number of closed epic issues.""" + closedIssues: Int + + """Number of opened child epics.""" + openedEpics: Int + + """Number of opened epic issues.""" + openedIssues: Int +} + +"""Total weight of open and closed descendant issues""" +type EpicDescendantWeights { + """ + Total weight of completed (closed) issues in this epic, including epic descendants. + """ + closedIssues: Int + + """ + Total weight of opened issues in this epic, including epic descendants. + """ + openedIssues: Int +} + +"""An edge in a connection.""" +type EpicEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Epic +} + +input EpicFilters { + """Filter by label name.""" + labelName: [String] + + """Filter by author username.""" + authorUsername: String + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """Negated epic arguments.""" + not: NegatedEpicBoardIssueInput + + """Search query for epic title or description.""" + search: String + + """Filter by confidentiality.""" + confidential: Boolean +} + +"""Health status of child issues""" +type EpicHealthStatus { + """Number of issues at risk.""" + issuesAtRisk: Int + + """Number of issues that need attention.""" + issuesNeedingAttention: Int + + """Number of issues on track.""" + issuesOnTrack: Int +} + +""" +A `EpicID` is a global ID. It is encoded as a string. + +An example `EpicID` is: `"gid://gitlab/Epic/1"`. +""" +scalar EpicID + +"""Relationship between an epic and an issue""" +type EpicIssue implements CurrentUserTodos & NoteableInterface & Todoable { + """Alert associated to this issue.""" + alertManagementAlert: AlertManagementAlert + + """Assignees of the issue.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """User that created the issue.""" + author: UserCore! + + """Indicates the issue is blocked.""" + blocked: Boolean! + + """Count of issues blocking this issue.""" + blockedByCount: Int + + """Issues blocking this issue.""" + blockedByIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Count of issues this issue is blocking.""" + blockingCount: Int! + + """Issue this issue was closed as a duplicate of.""" + closedAsDuplicateOf: Issue + + """Timestamp of when the issue was closed.""" + closedAt: Time + + """Indicates the issue is confidential.""" + confidential: Boolean! + + """User specific email address for the issue.""" + createNoteEmail: String + + """Timestamp of when the issue was created.""" + createdAt: Time! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Customer relations contacts of the issue.""" + customerRelationsContacts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsContactConnection + + """Description of the issue.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Collection of design images associated with this issue.""" + designCollection: DesignCollection + + """Indicates discussion is locked on the issue.""" + discussionLocked: Boolean! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Number of downvotes the issue has received.""" + downvotes: Int! + + """Due date of the issue.""" + dueDate: Time + + """ + Indicates if a project has email notifications disabled: `true` if email notifications are disabled. + """ + emailsDisabled: Boolean! + + """Epic to which this issue belongs.""" + epic: Epic + + """ID of the epic-issue relation.""" + epicIssueId: ID! + + """ + Escalation policy associated with the issue. Available for issues which support escalation. + """ + escalationPolicy: EscalationPolicyType + + """Escalation status of the issue.""" + escalationStatus: IssueEscalationStatus + + """ + Indicates if the issue belongs to an epic. + Can return true and not show an associated epic when the user has no access to the epic. + """ + hasEpic: Boolean! + + """Current health status.""" + healthStatus: HealthStatus + + """ + Indicates the issue is hidden because the author has been banned. Will always + return `null` if `ban_user_feature_flag` feature flag is disabled. + """ + hidden: Boolean + + """Human-readable time estimate of the issue.""" + humanTimeEstimate: String + + """Human-readable total time reported as spent on the issue.""" + humanTotalTimeSpent: String + + """Global ID of the epic-issue relation.""" + id: ID + + """Internal ID of the issue.""" + iid: ID! + + """Issuable resource links of the incident issue.""" + issuableResourceLinks( + """ID of the incident.""" + incidentId: IssueID! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssuableResourceLinkConnection + + """Iteration of the issue.""" + iteration: Iteration + + """Labels of the issue.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Number of merge requests that close the issue on merge.""" + mergeRequestsCount: Int! + + """Metric images associated to the issue.""" + metricImages: [MetricImage!] + + """Milestone of the issue.""" + milestone: Milestone + + """Indicates if issue got moved from other project.""" + moved: Boolean + + """Updated Issue after it got moved to another project.""" + movedTo: Issue + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """List of participants in the issue.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ID of the issue project.""" + projectId: Int! + + """ + Internal reference of the issue. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """URI path of the epic-issue relation.""" + relationPath: String + + """ + Relative position of the issue (used for positioning in epic tree and issue boards). + """ + relativePosition: Int + + """Severity level of the incident.""" + severity: IssuableSeverity + + """Timestamp of when the issue SLA expires.""" + slaDueAt: Time + + """State of the issue.""" + state: IssueState! + + """Indicates whether an issue is published to the status page.""" + statusPagePublishedIncident: Boolean + + """Indicates the currently logged in user is subscribed to the issue.""" + subscribed: Boolean! + + """Task completion status of the issue.""" + taskCompletionStatus: TaskCompletionStatus! + + """Time estimate of the issue.""" + timeEstimate: Int! + + """Timelogs on the issue.""" + timelogs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection! + + """Title of the issue.""" + title: String! + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Total time reported as spent on the issue.""" + totalTimeSpent: Int! + + """Type of the issue.""" + type: IssueType + + """Timestamp of when the issue was last updated.""" + updatedAt: Time! + + """User that last updated the issue.""" + updatedBy: UserCore + + """Number of upvotes the issue has received.""" + upvotes: Int! + + """Number of user discussions in the issue.""" + userDiscussionsCount: Int! + + """Number of user notes of the issue.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: IssuePermissions! + + """Web path of the issue.""" + webPath: String! + + """Web URL of the issue.""" + webUrl: String! + + """Weight of the issue.""" + weight: Int +} + +"""The connection type for EpicIssue.""" +type EpicIssueConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [EpicIssueEdge] + + """A list of nodes.""" + nodes: [EpicIssue] + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """Total weight of issues collection.""" + weight: Int! +} + +"""An edge in a connection.""" +type EpicIssueEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: EpicIssue +} + +"""Represents an epic board list""" +type EpicList { + """Indicates if this list is collapsed for this user.""" + collapsed: Boolean + + """List epics.""" + epics( + """Filters applied when selecting epics in the board list.""" + filters: EpicFilters + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Count of epics in the list. Deprecated in 14.9: This was renamed.""" + epicsCount: Int @deprecated(reason: "This was renamed. Please use `metadata`. Deprecated in 14.9.") + + """Global ID of the board list.""" + id: BoardsEpicListID! + + """Label of the list.""" + label: Label + + """Type of the list.""" + listType: String! + + """Epic list metatada.""" + metadata: EpicListMetadata + + """Position of the list within the board.""" + position: Int + + """Title of the list.""" + title: String! +} + +"""The connection type for EpicList.""" +type EpicListConnection { + """A list of edges.""" + edges: [EpicListEdge] + + """A list of nodes.""" + nodes: [EpicList] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EpicListEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: EpicList +} + +"""Represents epic board list metadata""" +type EpicListMetadata { + """Count of epics in the list.""" + epicsCount: Int + + """ + Total weight of all issues in the list. Introduced in 14.7: This feature is in + Alpha. It can be changed or removed at any time. + """ + totalWeight: Int @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 14.7.") +} + +"""Autogenerated input type of EpicMoveList""" +input EpicMoveListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the board that the epic is in.""" + boardId: BoardsEpicBoardID! + + """ID of the epic to mutate.""" + epicId: EpicID! + + """ + ID of the board list that the epic will be moved from. Required if moving between lists. + """ + fromListId: BoardsEpicListID + + """ID of the list the epic will be in after mutation.""" + toListId: BoardsEpicListID! + + """ID of epic that should be placed before the current epic.""" + moveBeforeId: EpicID + + """ID of epic that should be placed after the current epic.""" + moveAfterId: EpicID +} + +"""Autogenerated return type of EpicMoveList""" +type EpicMoveListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after mutation.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Check permissions for the current user on an epic""" +type EpicPermissions { + """Indicates the user can perform `admin_epic` on this resource""" + adminEpic: Boolean! + + """Indicates the user can perform `award_emoji` on this resource""" + awardEmoji: Boolean! + + """Indicates the user can perform `create_epic` on this resource""" + createEpic: Boolean! + + """Indicates the user can perform `create_note` on this resource""" + createNote: Boolean! + + """Indicates the user can perform `destroy_epic` on this resource""" + destroyEpic: Boolean! + + """Indicates the user can perform `read_epic` on this resource""" + readEpic: Boolean! + + """Indicates the user can perform `read_epic_iid` on this resource""" + readEpicIid: Boolean! + + """Indicates the user can perform `update_epic` on this resource""" + updateEpic: Boolean! +} + +"""Autogenerated input type of EpicSetSubscription""" +input EpicSetSubscriptionInput { + """IID of the epic to mutate.""" + iid: ID! + + """Group the epic to mutate belongs to.""" + groupPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Desired state of the subscription.""" + subscribedState: Boolean! +} + +"""Autogenerated return type of EpicSetSubscription""" +type EpicSetSubscriptionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after mutation.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Roadmap sort values""" +enum EpicSort { + """Start date at descending order.""" + start_date_desc @deprecated(reason: "Use START_DATE_DESC. Deprecated in 13.11.") + + """Start date at ascending order.""" + start_date_asc @deprecated(reason: "Use START_DATE_ASC. Deprecated in 13.11.") + + """End date at descending order.""" + end_date_desc @deprecated(reason: "Use END_DATE_DESC. Deprecated in 13.11.") + + """End date at ascending order.""" + end_date_asc @deprecated(reason: "Use END_DATE_ASC. Deprecated in 13.11.") + + """Sort by start date in descending order.""" + START_DATE_DESC + + """Sort by start date in ascending order.""" + START_DATE_ASC + + """Sort by end date in descending order.""" + END_DATE_DESC + + """Sort by end date in ascending order.""" + END_DATE_ASC + + """Sort by title in descending order.""" + TITLE_DESC + + """Sort by title in ascending order.""" + TITLE_ASC + + """Sort by created_at by ascending order.""" + CREATED_AT_ASC + + """Sort by created_at by descending order.""" + CREATED_AT_DESC + + """Sort by updated_at by ascending order.""" + UPDATED_AT_ASC + + """Sort by updated_at by descending order.""" + UPDATED_AT_DESC +} + +"""State of an epic""" +enum EpicState { + """All epics.""" + all + + """Open epics.""" + opened + + """Closed epics.""" + closed +} + +"""State event of an epic""" +enum EpicStateEvent { + """Reopen the epic.""" + REOPEN + + """Close the epic.""" + CLOSE +} + +"""A node of an epic tree.""" +input EpicTreeNodeFieldsInputType { + """ID of the epic issue or epic that is being moved.""" + id: EpicTreeSortingID! + + """ID of the epic issue or issue the epic or issue is switched with.""" + adjacentReferenceId: EpicTreeSortingID + + """Type of switch. Valid values are `after` or `before`.""" + relativePosition: MoveType + + """ID of the new parent epic.""" + newParentId: EpicID +} + +"""Autogenerated input type of EpicTreeReorder""" +input EpicTreeReorderInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the base epic of the tree.""" + baseEpicId: EpicID! + + """Parameters for updating the tree positions.""" + moved: EpicTreeNodeFieldsInputType! +} + +"""Autogenerated return type of EpicTreeReorder""" +type EpicTreeReorderPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +""" +A `EpicTreeSortingID` is a global ID. It is encoded as a string. + +An example `EpicTreeSortingID` is: `"gid://gitlab/EpicTreeSorting/1"`. +""" +scalar EpicTreeSortingID + +"""Epic ID wildcard values""" +enum EpicWildcardId { + """No epic is assigned.""" + NONE + + """Any epic is assigned.""" + ANY +} + +"""Autogenerated input type of EscalationPolicyCreate""" +input EscalationPolicyCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the escalation policy for.""" + projectPath: ID! + + """Name of the escalation policy.""" + name: String! + + """Description of the escalation policy.""" + description: String + + """Steps of the escalation policy.""" + rules: [EscalationRuleInput!]! +} + +"""Autogenerated return type of EscalationPolicyCreate""" +type EscalationPolicyCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Escalation policy.""" + escalationPolicy: EscalationPolicyType +} + +"""Autogenerated input type of EscalationPolicyDestroy""" +input EscalationPolicyDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Escalation policy internal ID to remove.""" + id: IncidentManagementEscalationPolicyID! +} + +"""Autogenerated return type of EscalationPolicyDestroy""" +type EscalationPolicyDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Escalation policy.""" + escalationPolicy: EscalationPolicyType +} + +"""Represents an escalation policy""" +type EscalationPolicyType { + """Description of the escalation policy.""" + description: String + + """ID of the escalation policy.""" + id: IncidentManagementEscalationPolicyID + + """Name of the escalation policy.""" + name: String + + """Steps of the escalation policy.""" + rules: [EscalationRuleType!] +} + +"""The connection type for EscalationPolicyType.""" +type EscalationPolicyTypeConnection { + """A list of edges.""" + edges: [EscalationPolicyTypeEdge] + + """A list of nodes.""" + nodes: [EscalationPolicyType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EscalationPolicyTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: EscalationPolicyType +} + +"""Autogenerated input type of EscalationPolicyUpdate""" +input EscalationPolicyUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the on-call schedule to create the on-call rotation in.""" + id: IncidentManagementEscalationPolicyID! + + """Name of the escalation policy.""" + name: String + + """Description of the escalation policy.""" + description: String + + """Steps of the escalation policy.""" + rules: [EscalationRuleInput!] +} + +"""Autogenerated return type of EscalationPolicyUpdate""" +type EscalationPolicyUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Escalation policy.""" + escalationPolicy: EscalationPolicyType +} + +"""Represents an escalation rule""" +input EscalationRuleInput { + """On-call schedule to notify.""" + oncallScheduleIid: ID + + """Username of the user to notify.""" + username: String + + """Time in seconds before the rule is activated.""" + elapsedTimeSeconds: Int! + + """Status required to prevent the rule from activating.""" + status: EscalationRuleStatus! +} + +"""Escalation rule statuses""" +enum EscalationRuleStatus { + """.""" + ACKNOWLEDGED + + """.""" + RESOLVED +} + +"""Represents an escalation rule for an escalation policy""" +type EscalationRuleType { + """Time in seconds before the rule is activated.""" + elapsedTimeSeconds: Int + + """ID of the escalation policy.""" + id: IncidentManagementEscalationRuleID + + """On-call schedule to notify.""" + oncallSchedule: IncidentManagementOncallSchedule + + """Status required to prevent the rule from activating.""" + status: EscalationRuleStatus + + """User to notify.""" + user: UserCore +} + +"""Representing an event""" +type Event { + """Action of the event.""" + action: EventAction! + + """Author of this event.""" + author: UserCore! + + """When this event was created.""" + createdAt: Time! + + """ID of the event.""" + id: ID! + + """When this event was updated.""" + updatedAt: Time! +} + +interface Eventable { + """List of events associated with the object.""" + events( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EventConnection +} + +"""Event action""" +enum EventAction { + """Created action""" + CREATED + + """Updated action""" + UPDATED + + """Closed action""" + CLOSED + + """Reopened action""" + REOPENED + + """Pushed action""" + PUSHED + + """Commented action""" + COMMENTED + + """Merged action""" + MERGED + + """Joined action""" + JOINED + + """Left action""" + LEFT + + """Destroyed action""" + DESTROYED + + """Expired action""" + EXPIRED + + """Approved action""" + APPROVED +} + +"""The connection type for Event.""" +type EventConnection { + """A list of edges.""" + edges: [EventEdge] + + """A list of nodes.""" + nodes: [Event] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EventEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Event +} + +"""Autogenerated input type of ExportRequirements""" +input ExportRequirementsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """List requirements by sort order.""" + sort: Sort + + """Filter requirements by state.""" + state: RequirementState + + """Search query for requirement title.""" + search: String + + """Filter requirements by author username.""" + authorUsername: [String!] + + """Full project path the requirements are associated with.""" + projectPath: ID! + + """List of selected requirements fields to be exported.""" + selectedFields: [String!] +} + +"""Autogenerated return type of ExportRequirements""" +type ExportRequirementsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Represents an external resource to send audit events to""" +type ExternalAuditEventDestination { + """External destination to send audit events to.""" + destinationUrl: String! + + """Group the destination belongs to.""" + group: Group! + + """List of additional HTTP headers sent with each event.""" + headers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AuditEventStreamingHeaderConnection! + + """ID of the destination.""" + id: ID! + + """Verification token to validate source of event.""" + verificationToken: String! +} + +"""The connection type for ExternalAuditEventDestination.""" +type ExternalAuditEventDestinationConnection { + """A list of edges.""" + edges: [ExternalAuditEventDestinationEdge] + + """A list of nodes.""" + nodes: [ExternalAuditEventDestination] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of ExternalAuditEventDestinationCreate""" +input ExternalAuditEventDestinationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Destination URL.""" + destinationUrl: String! + + """Group path.""" + groupPath: ID! + + """Verification token.""" + verificationToken: String +} + +"""Autogenerated return type of ExternalAuditEventDestinationCreate""" +type ExternalAuditEventDestinationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Destination created.""" + externalAuditEventDestination: ExternalAuditEventDestination +} + +"""Autogenerated input type of ExternalAuditEventDestinationDestroy""" +input ExternalAuditEventDestinationDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of external audit event destination to destroy.""" + id: AuditEventsExternalAuditEventDestinationID! +} + +"""Autogenerated return type of ExternalAuditEventDestinationDestroy""" +type ExternalAuditEventDestinationDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type ExternalAuditEventDestinationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ExternalAuditEventDestination +} + +"""Autogenerated input type of ExternalAuditEventDestinationUpdate""" +input ExternalAuditEventDestinationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of external audit event destination to update.""" + id: AuditEventsExternalAuditEventDestinationID! + + """Destination URL to change.""" + destinationUrl: String +} + +"""Autogenerated return type of ExternalAuditEventDestinationUpdate""" +type ExternalAuditEventDestinationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated destination.""" + externalAuditEventDestination: ExternalAuditEventDestination +} + +"""Represents an external issue""" +type ExternalIssue { + """Timestamp of when the issue was created.""" + createdAt: Time + + """Type of external tracker.""" + externalTracker: String + + """Relative reference of the issue in the external tracker.""" + relativeReference: String + + """Status of the issue in the external tracker.""" + status: String + + """Title of the issue in the external tracker.""" + title: String + + """Timestamp of when the issue was updated.""" + updatedAt: Time + + """URL to the issue in the external tracker.""" + webUrl: String +} + +type FileUpload { + """Global ID of the upload.""" + id: UploadID! + + """Path of the upload.""" + path: String! + + """Size of the upload in bytes.""" + size: Int! +} + +type GeoNode { + """Find Ci Secure File registries on this Geo node""" + ciSecureFileRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiSecureFileRegistryConnection + + """ + Maximum concurrency of container repository sync for this secondary node. + """ + containerRepositoriesMaxCapacity: Int + + """Indicates whether this Geo node is enabled.""" + enabled: Boolean + + """ + Maximum concurrency of LFS/attachment backfill for this secondary node. + """ + filesMaxCapacity: Int + + """Find group wiki repository registries on this Geo node.""" + groupWikiRepositoryRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupWikiRepositoryRegistryConnection + + """ID of this GeoNode.""" + id: ID! + + """ + URL defined on the primary node secondary nodes should use to contact it. + """ + internalUrl: String + + """Find Job Artifact registries on this Geo node.""" + jobArtifactRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): JobArtifactRegistryConnection + + """Find LFS object registries on this Geo node.""" + lfsObjectRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LfsObjectRegistryConnection + + """Find merge request diff registries on this Geo node.""" + mergeRequestDiffRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestDiffRegistryConnection + + """ + Interval (in days) in which the repository verification is valid. After expiry, it is reverted. + """ + minimumReverificationInterval: Int + + """Unique identifier for this Geo node.""" + name: String + + """Package file registries of the GeoNode.""" + packageFileRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageFileRegistryConnection + + """Find Pages Deployment registries on this Geo node""" + pagesDeploymentRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PagesDeploymentRegistryConnection + + """Find pipeline artifact registries on this Geo node.""" + pipelineArtifactRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineArtifactRegistryConnection + + """Indicates whether this Geo node is the primary.""" + primary: Boolean + + """Maximum concurrency of repository backfill for this secondary node.""" + reposMaxCapacity: Int + + """ + Namespaces that should be synced, if `selective_sync_type` == `namespaces`. + """ + selectiveSyncNamespaces( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceConnection + + """ + Repository storages whose projects should be synced, if `selective_sync_type` == `shards`. + """ + selectiveSyncShards: [String!] + + """Indicates if syncing is limited to only specific groups, or shards.""" + selectiveSyncType: String + + """Find snippet repository registries on this Geo node.""" + snippetRepositoryRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetRepositoryRegistryConnection + + """ + Indicates if this secondary node will replicate blobs in Object Storage. + """ + syncObjectStorage: Boolean + + """Find terraform state version registries on this Geo node.""" + terraformStateVersionRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TerraformStateVersionRegistryConnection + + """Find Upload registries on this Geo node""" + uploadRegistries( + """Filters registries by their ID.""" + ids: [ID!] + + """Filters registries by their replication state.""" + replicationState: ReplicationStateEnum + + """Filters registries by their verification state.""" + verificationState: VerificationStateEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UploadRegistryConnection + + """User-facing URL for this Geo node.""" + url: String + + """ + Maximum concurrency of repository verification for this secondary node. + """ + verificationMaxCapacity: Int +} + +""" +A `GitlabErrorTrackingDetailedErrorID` is a global ID. It is encoded as a string. + +An example `GitlabErrorTrackingDetailedErrorID` is: `"gid://gitlab/Gitlab::ErrorTracking::DetailedError/1"`. +""" +scalar GitlabErrorTrackingDetailedErrorID + +"""Autogenerated input type of GitlabSubscriptionActivate""" +input GitlabSubscriptionActivateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Activation code received after purchasing a GitLab subscription.""" + activationCode: String! +} + +"""Autogenerated return type of GitlabSubscriptionActivate""" +type GitlabSubscriptionActivatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Current license.""" + license: CurrentLicense +} + +""" +A global identifier. + +A global identifier represents an object uniquely across the application. +An example of such an identifier is `"gid://gitlab/User/1"`. + +Global identifiers are encoded as strings. + +""" +scalar GlobalID + +type GrafanaIntegration { + """Timestamp of the issue's creation.""" + createdAt: Time! + + """Indicates whether Grafana integration is enabled.""" + enabled: Boolean! + + """URL for the Grafana host for the Grafana integration.""" + grafanaUrl: String! + + """Internal ID of the Grafana integration.""" + id: ID! + + """Timestamp of the issue's last activity.""" + updatedAt: Time! +} + +type Group { + """Size limit for repositories in the namespace in bytes.""" + actualRepositorySizeLimit: Float + + """Additional storage purchased for the root namespace in bytes.""" + additionalPurchasedStorageSize: Float + + """ + Indicates whether to regularly prune stale group runners. Defaults to false. + """ + allowStaleRunnerPruning: Boolean! + + """ + Indicates whether Auto DevOps is enabled for all projects within this group. + """ + autoDevopsEnabled: Boolean + + """Avatar URL of the group.""" + avatarUrl: String + + """Number of billable users in the group.""" + billableMembersCount( + """Plan from which to get billable members.""" + requestedHostedPlan: String + ): Int + + """A single board of the group.""" + board( + """ID of the board.""" + id: BoardID! + ): Board + + """Boards of the group.""" + boards( + """Find a board by its ID.""" + id: BoardID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """List of the group's CI/CD variables.""" + ciVariables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiGroupVariableConnection + + """ + Cluster agents associated with projects in the group and its subgroups. + """ + clusterAgents( + """Returns only cluster agents which have vulnerabilities.""" + hasVulnerabilities: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentConnection + + """Represents the code coverage activity for this group.""" + codeCoverageActivities( + """ + First day for which to fetch code coverage activity (maximum time window is set to 90 days). + """ + startDate: Date! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CodeCoverageActivityConnection + + """Compliance frameworks available to projects in this namespace.""" + complianceFrameworks( + """Global ID of a specific compliance framework to return.""" + id: ComplianceManagementFrameworkID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ComplianceFrameworkConnection + + """Counts of contacts by state for the group.""" + contactStateCounts( + """Search term to find contacts with.""" + search: String + + """State of the contacts to search for.""" + state: CustomerRelationsContactState + ): ContactStateCounts + + """Find contacts of this group.""" + contacts( + """Criteria to sort contacts by.""" + sort: ContactSort = LAST_NAME_ASC + + """Search term to find contacts with.""" + search: String + + """State of the contacts to search for.""" + state: CustomerRelationsContactState + + """Filter contacts by IDs.""" + ids: [CustomerRelationsContactID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsContactConnection + + """Container repositories of the group.""" + containerRepositories( + """Filter the container repositories by their name.""" + name: String + + """Sort container repositories by this criteria.""" + sort: ContainerRepositorySort = created_desc + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryConnection + + """Number of container repositories in the group.""" + containerRepositoriesCount: Int! + + """ + Includes at least one project where the repository size exceeds the limit. + """ + containsLockedProjects: Boolean! + + """ + Indicates if the cross_project_pipeline feature is available for the namespace. + """ + crossProjectPipelineAvailable: Boolean! + + """ + Custom emoji within this namespace. Introduced in 13.6: This feature is in + Alpha. It can be changed or removed at any time. + """ + customEmoji( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomEmojiConnection @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.") + + """Number of dependency proxy blobs cached in the group.""" + dependencyProxyBlobCount: Int! + + """Dependency Proxy blobs.""" + dependencyProxyBlobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DependencyProxyBlobConnection + + """Number of dependency proxy images cached in the group.""" + dependencyProxyImageCount: Int! + + """Prefix for pulling images when using the dependency proxy.""" + dependencyProxyImagePrefix: String! + + """Dependency proxy TTL policy for the group.""" + dependencyProxyImageTtlPolicy: DependencyProxyImageTtlGroupPolicy + + """Dependency Proxy manifests.""" + dependencyProxyManifests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DependencyProxyManifestConnection + + """Dependency Proxy settings for the group.""" + dependencyProxySetting: DependencyProxySetting + + """Total size of the dependency proxy cached images.""" + dependencyProxyTotalSize: String! + + """List of descendant groups of this group.""" + descendantGroups( + """List of descendant groups of the parent group.""" + includeParentDescendants: Boolean = true + + """Limit result to groups owned by authenticated user.""" + owned: Boolean + + """Search query for group name or group full path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """Description of the namespace.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Group's DORA metrics.""" + dora: Dora + + """Indicates if a group has email notifications disabled.""" + emailsDisabled: Boolean + + """Indicates whether the group has limited users for a free plan.""" + enforceFreeUserCap: Boolean + + """Find a single epic.""" + epic( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + ): Epic + + """Find a single epic board.""" + epicBoard( + """Find an epic board by ID.""" + id: BoardsEpicBoardID! + ): EpicBoard + + """Find epic boards.""" + epicBoards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicBoardConnection + + """Find epics.""" + epics( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the epic, e.g., "1".""" + iid: ID + + """List of IIDs of epics, e.g., `[1, 2]`.""" + iids: [ID!] + + """Filter epics by state.""" + state: EpicState + + """List epics by sort order.""" + sort: EpicSort + + """Filter epics by author.""" + authorUsername: String + + """Filter epics by labels.""" + labelName: [String!] + + """Filter epics by milestone title, computed from epic's issues.""" + milestoneTitle: String + + """Filter epics by IID for autocomplete.""" + iidStartsWith: String + + """Include epics from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Include epics from descendant groups.""" + includeDescendantGroups: Boolean = true + + """Filter epics by given confidentiality.""" + confidential: Boolean + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """Epics created after this date.""" + createdAfter: Time + + """Epics created before this date.""" + createdBefore: Time + + """Epics updated after this date.""" + updatedAfter: Time + + """Epics updated before this date.""" + updatedBefore: Time + + """Negated epic arguments.""" + not: NegatedEpicFilterInput + + """Filter epics with a top-level hierarchy.""" + topLevelHierarchyOnly: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EpicConnection + + """Indicates if Epics are enabled for namespace""" + epicsEnabled: Boolean + + """External locations that receive audit events belonging to the group.""" + externalAuditEventDestinations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ExternalAuditEventDestinationConnection + + """Full name of the namespace.""" + fullName: String! + + """Full path of the namespace.""" + fullPath: ID! + + """A membership of a user within this group.""" + groupMembers( + """Search query.""" + search: String + + """sort query.""" + sort: MemberSort + + """Filter members by the given member relations.""" + relations: [GroupMemberRelation!] = [DIRECT, INHERITED] + + """Filter members by the given access levels.""" + accessLevels: [AccessLevelEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """ID of the namespace.""" + id: ID! + + """Status of the temporary storage increase.""" + isTemporaryStorageIncreaseEnabled: Boolean! + + """Issues for projects in this group.""" + issues( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to this issue.""" + labelName: [String] + + """Milestone applied to this issue.""" + milestoneTitle: [String] + + """Username of the author of the issue.""" + authorUsername: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Issues created before this date.""" + createdBefore: Time + + """Issues created after this date.""" + createdAfter: Time + + """Issues updated before this date.""" + updatedBefore: Time + + """Issues updated after this date.""" + updatedAfter: Time + + """Issues closed before this date.""" + closedBefore: Time + + """Issues closed after this date.""" + closedAfter: Time + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """Sort issues by this criteria.""" + sort: IssueSort = created_desc + + """Current state of this issue.""" + state: IssuableState + + """List of iteration Global IDs applied to the issue.""" + iterationId: [ID] + + """Filter by iteration ID wildcard.""" + iterationWildcardId: IterationWildcardId + + """ + ID of an epic associated with the issues, "none" and "any" values are supported. + """ + epicId: String + + """Whether to include subepics when filtering issues by epicId.""" + includeSubepics: Boolean + + """Weight applied to the issue, "none" and "any" values are supported.""" + weight: String + + """Health status of the issue, "none" and "any" values are supported.""" + healthStatusFilter: HealthStatusFilter + + """Include issues belonging to subgroups""" + includeSubgroups: Boolean = false + + """Return issues from archived projects""" + includeArchived: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Find iteration cadences.""" + iterationCadences( + """Global ID of the iteration cadence to look up.""" + id: IterationsCadenceID + + """Fuzzy search by title.""" + title: String + + """Duration in weeks of the iterations within this cadence.""" + durationInWeeks: Int + + """ + Whether the iteration cadence should automatically generate upcoming iterations. + """ + automatic: Boolean + + """Whether the iteration cadence is active.""" + active: Boolean + + """Whether to include ancestor groups to search iterations cadences in.""" + includeAncestorGroups: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IterationCadenceConnection + + """Find iterations.""" + iterations( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Filter iterations by state.""" + state: IterationState + + """ + Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty. + """ + search: String + + """ + Fields in which the fuzzy-search should be performed with the query given in + the argument `search`. Defaults to `[title]`. + """ + in: [IterationSearchableField!] + + """Global ID of the Iteration to look up.""" + id: ID + + """Internal ID of the Iteration to look up.""" + iid: ID + + """Whether to include ancestor iterations. Defaults to true.""" + includeAncestors: Boolean + + """Global iteration cadence IDs by which to look up the iterations.""" + iterationCadenceIds: [IterationsCadenceID!] + + """ + List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. + """ + sort: IterationSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IterationConnection + + """Label available on this group.""" + label( + """Title of the label.""" + title: String! + ): Label + + """Labels available on this group.""" + labels( + """Search term to find labels with.""" + searchTerm: String + + """Include labels from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Include labels from descendant groups.""" + includeDescendantGroups: Boolean = false + + """Include only group level labels.""" + onlyGroupLabels: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Indicates if Large File Storage (LFS) is enabled for namespace.""" + lfsEnabled: Boolean + + """Indicates if a group is disabled from getting mentioned.""" + mentionsDisabled: Boolean + + """ + Compliance violations reported on merge requests merged within the group. + """ + mergeRequestViolations( + """Filters applied when retrieving compliance violations.""" + filters: ComplianceViolationInput = {} + + """List compliance violations by sort order.""" + sort: ComplianceViolationSort = SEVERITY_LEVEL_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ComplianceViolationConnection + + """Merge requests for projects in this group.""" + mergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """Include merge requests belonging to subgroups""" + includeSubgroups: Boolean = false + + """Return merge requests from archived projects""" + includeArchived: Boolean = false + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the author.""" + authorUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Milestones of the group.""" + milestones( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`.""" + ids: [ID!] + + """Filter milestones by state.""" + state: MilestoneStateEnum + + """Title of the milestone.""" + title: String + + """Search string for the title.""" + searchTitle: String + + """Date the milestone contains.""" + containingDate: Time + + """Sort milestones by this criteria.""" + sort: MilestoneSort = DUE_DATE_ASC + + """Include milestones from all parent groups.""" + includeAncestors: Boolean + + """Include milestones from all subgroups and subprojects.""" + includeDescendants: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MilestoneConnection + + """Name of the namespace.""" + name: String! + + """Counts of organizations by status for the group.""" + organizationStateCounts( + """Search term to find organizations with.""" + search: String + + """State of the organizations to search for.""" + state: CustomerRelationsOrganizationState + ): OrganizationStateCounts + + """Find organizations of this group.""" + organizations( + """Criteria to sort organizations by.""" + sort: OrganizationSort = NAME_ASC + + """Search term used to find organizations with.""" + search: String + + """State of the organization to search for.""" + state: CustomerRelationsOrganizationState + + """Filter organizations by IDs.""" + ids: [CustomerRelationsOrganizationID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsOrganizationConnection + + """Package settings for the namespace.""" + packageSettings: PackageSettings + + """ + Packages of the group. This field can only be resolved for one group in any single request. + """ + packages( + """Sort packages by this criteria.""" + sort: PackageGroupSort = CREATED_DESC + + """Search a package by name.""" + packageName: String = null + + """Filter a package by type.""" + packageType: PackageTypeEnum = null + + """Filter a package by status.""" + status: PackageStatus = null + + """Include versionless packages.""" + includeVersionless: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageConnection + + """Parent group.""" + parent: Group + + """Path of the namespace.""" + path: String! + + """Permission level required to create projects in the group.""" + projectCreationLevel: String + + """Projects within this namespace.""" + projects( + """Include also subgroup projects.""" + includeSubgroups: Boolean = false + + """Search project with most similar names or paths.""" + search: String = null + + """Sort projects by this criteria.""" + sort: NamespaceProjectSort = null + + """Filter projects by IDs.""" + ids: [ID!] = null + + """Returns only the projects which have code coverage.""" + hasCodeCoverage: Boolean = false + + """Returns only the projects which have vulnerabilities.""" + hasVulnerabilities: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """List of recently visited boards of the group. Maximum size is 4.""" + recentIssueBoards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """ + Number of projects in the root namespace where the repository size exceeds the limit. + """ + repositorySizeExcessProjectCount: Int! + + """Indicates if users can request access to namespace.""" + requestAccessEnabled: Boolean + + """ + Indicates if all users in this group are required to set up two-factor authentication. + """ + requireTwoFactorAuthentication: Boolean + + """ + Aggregated storage statistics of the namespace. Only available for root namespaces. + """ + rootStorageStatistics: RootStorageStatistics + + """Find runners visible to the current user.""" + runners( + """Filter runners by `paused` (true) or `active` (false) status.""" + paused: Boolean + + """Filter runners by status.""" + status: CiRunnerStatus + + """Filter runners by type.""" + type: CiRunnerType + + """Filter by tags associated with the runner (comma-separated or array).""" + tagList: [String!] + + """Filter by full token or partial text in description field.""" + search: String + + """Sort order of results.""" + sort: CiRunnerSort + + """Filter by upgrade status.""" + upgradeStatus: CiRunnerUpgradeStatus + + """Control which runners to include in the results.""" + membership: CiRunnerMembershipFilter = DESCENDANTS + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiRunnerConnection + + """Scan Execution Policies of the namespace.""" + scanExecutionPolicies( + """ + Filters policies by the action scan type. Only these scan types are + supported: `dast`, `secret_detection`, `cluster_image_scanning`, + `container_scanning`, `sast`. + """ + actionScanTypes: [SecurityReportTypeEnum!] + + """Filter policies by the given policy relationship.""" + relationship: SecurityPolicyRelationType = DIRECT + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScanExecutionPolicyConnection + + """ + Indicates if sharing a project with another group within this group is prevented. + """ + shareWithGroupLock: Boolean + + """Shared runners availability for the namespace and its descendants.""" + sharedRunnersSetting: SharedRunnersSetting + + """Group statistics.""" + stats: GroupStats + + """Total storage limit of the root namespace in bytes.""" + storageSizeLimit: Float + + """Permission level required to create subgroups within the group.""" + subgroupCreationLevel: String + + """Date until the temporary storage increase is active.""" + temporaryStorageIncreaseEndsOn: Time + + """ + Timelog categories for the namespace. Introduced in 15.3: This feature is in + Alpha. It can be changed or removed at any time. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """ + Time logged on issues and merge requests in the group and its subgroups. + """ + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection! + + """Total repository size of all projects in the root namespace in bytes.""" + totalRepositorySize: Float + + """ + Total excess repository size of all projects in the root namespace in bytes. + """ + totalRepositorySizeExcess: Float + + """Time before two-factor authentication is enforced.""" + twoFactorGracePeriod: Int + + """Permissions for the current user on the resource""" + userPermissions: GroupPermissions! + + """Visibility of the namespace.""" + visibility: String + + """ + Vulnerabilities reported on the projects in the group and its subgroups. + """ + vulnerabilities( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by VulnerabilityScanner.externalId.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """List vulnerabilities by sort order.""" + sort: VulnerabilitySort = severity_desc + + """ + Returns only the vulnerabilities which have been resolved on default branch. + """ + hasResolution: Boolean + + """Returns only the vulnerabilities which have linked issues.""" + hasIssues: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType` + of `cluster_image_scanning` are only included with this filter. + """ + clusterId: [ClustersClusterID!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityConnection + + """ + The historical number of vulnerabilities per day for the projects in the group and its subgroups. + """ + vulnerabilitiesCountByDay( + """First day for which to fetch vulnerability history.""" + startDate: ISO8601Date! + + """Last day for which to fetch vulnerability history.""" + endDate: ISO8601Date! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilitiesCountByDayConnection + + """Represents vulnerable project counts for each grade.""" + vulnerabilityGrades( + """Include grades belonging to subgroups.""" + includeSubgroups: Boolean = false + ): [VulnerableProjectsByGrade!]! + + """ + Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups. + """ + vulnerabilityScanners( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityScannerConnection + + """Counts for each vulnerability severity in the group and its subgroups.""" + vulnerabilitySeveritiesCount( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by scanner.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """Filter vulnerabilities that do or do not have issues.""" + hasIssues: Boolean + + """Filter vulnerabilities that do or do not have a resolution.""" + hasResolution: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + ): VulnerabilitySeveritiesCount + + """Web URL of the group.""" + webUrl: String! + + """ + Work item types available to the group. Returns `null` if `work_items` feature + flag is disabled. This flag is disabled by default, because the feature is + experimental and is subject to change without notice. + """ + workItemTypes( + """ + If `true`, only taskable work item types will be returned. Argument is + experimental and can be removed in the future without notice. + """ + taskable: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemTypeConnection +} + +"""The connection type for Group.""" +type GroupConnection { + """A list of edges.""" + edges: [GroupEdge] + + """A list of nodes.""" + nodes: [Group] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type GroupEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Group +} + +""" +A `GroupID` is a global ID. It is encoded as a string. + +An example `GroupID` is: `"gid://gitlab/Group/1"`. +""" +scalar GroupID + +"""Represents a Group Membership""" +type GroupMember implements MemberInterface { + """GitLab::Access level.""" + accessLevel: AccessLevel + + """Date and time the membership was created.""" + createdAt: Time + + """User that authorized membership.""" + createdBy: UserCore + + """Date and time the membership expires.""" + expiresAt: Time + + """Group that a User is a member of.""" + group: Group + + """ID of the member.""" + id: ID! + + """Find a merge request.""" + mergeRequestInteraction( + """Global ID of the merge request.""" + id: MergeRequestID! + ): UserMergeRequestInteraction + + """Group notification email for User. Only available for admins.""" + notificationEmail: String + + """Date and time the membership was last updated.""" + updatedAt: Time + + """User that is associated with the member object.""" + user: UserCore + + """Permissions for the current user on the resource""" + userPermissions: GroupPermissions! +} + +"""The connection type for GroupMember.""" +type GroupMemberConnection { + """A list of edges.""" + edges: [GroupMemberEdge] + + """A list of nodes.""" + nodes: [GroupMember] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type GroupMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: GroupMember +} + +"""Group member relation""" +enum GroupMemberRelation { + """Members in the group itself.""" + DIRECT + + """Members in the group's ancestor groups.""" + INHERITED + + """Members in the group's subgroups.""" + DESCENDANTS + + """Invited group's members.""" + SHARED_FROM_GROUPS +} + +"""User permission on groups""" +enum GroupPermission { + """Groups where the user can create projects.""" + CREATE_PROJECTS + + """Groups where the user can transfer projects to.""" + TRANSFER_PROJECTS +} + +type GroupPermissions { + """Indicates the user can perform `create_projects` on this resource""" + createProjects: Boolean! + + """Indicates the user can perform `read_group` on this resource""" + readGroup: Boolean! +} + +"""Contains release-related statistics about a group""" +type GroupReleaseStats { + """Total number of releases in all descendant projects of the group.""" + releasesCount: Int + + """ + Percentage of the group's descendant projects that have at least one release. + """ + releasesPercentage: Int +} + +"""Represents the source of a security policy belonging to a group""" +type GroupSecurityPolicySource { + """Indicates whether this policy is inherited from parent group.""" + inherited: Boolean! + + """Project the policy is associated with.""" + namespace: Namespace +} + +"""Contains statistics about a group""" +type GroupStats { + """Statistics related to releases within the group.""" + releaseStats: GroupReleaseStats +} + +"""Autogenerated input type of GroupUpdate""" +input GroupUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the group that will be updated.""" + fullPath: ID! + + """Shared runners availability for the namespace and its descendants.""" + sharedRunnersSetting: SharedRunnersSetting! +} + +"""Autogenerated return type of GroupUpdate""" +type GroupUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Group after update.""" + group: Group +} + +""" +Represents the Geo sync and verification state of a group wiki repository +""" +type GroupWikiRepositoryRegistry { + """Timestamp when the GroupWikiRepositoryRegistry was created""" + createdAt: Time + + """ID of the Group Wiki Repository.""" + groupWikiRepositoryId: ID! + + """ID of the GroupWikiRepositoryRegistry""" + id: ID! + + """Error message during sync of the GroupWikiRepositoryRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the GroupWikiRepositoryRegistry + """ + lastSyncedAt: Time + + """Timestamp after which the GroupWikiRepositoryRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the GroupWikiRepositoryRegistry + """ + retryCount: Int + + """Sync state of the GroupWikiRepositoryRegistry""" + state: RegistryState + + """Timestamp after which the GroupWikiRepositoryRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the GroupWikiRepositoryRegistry + """ + verifiedAt: Time +} + +"""The connection type for GroupWikiRepositoryRegistry.""" +type GroupWikiRepositoryRegistryConnection { + """A list of edges.""" + edges: [GroupWikiRepositoryRegistryEdge] + + """A list of nodes.""" + nodes: [GroupWikiRepositoryRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type GroupWikiRepositoryRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: GroupWikiRepositoryRegistry +} + +"""Health status of an issue or epic""" +enum HealthStatus { + """On track""" + onTrack + + """Needs attention""" + needsAttention + + """At risk""" + atRisk +} + +"""Health status of an issue or epic for filtering""" +enum HealthStatusFilter { + """No health status is assigned.""" + NONE + + """Any health status is assigned.""" + ANY + + """On track""" + onTrack + + """Needs attention""" + needsAttention + + """At risk""" + atRisk +} + +"""Helm file metadata""" +type HelmFileMetadata implements PackageFileMetadata { + """Channel of the Helm chart.""" + channel: String! + + """Date of creation.""" + createdAt: Time! + + """Metadata of the Helm chart.""" + metadata: PackageHelmMetadataType! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Autogenerated input type of HttpIntegrationCreate""" +input HttpIntegrationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the integration in.""" + projectPath: ID! + + """Name of the integration.""" + name: String! + + """Whether the integration is receiving alerts.""" + active: Boolean! + + """Example of an alert payload.""" + payloadExample: JsonString + + """ + Custom mapping of GitLab alert attributes to fields from the payload example. + """ + payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!] +} + +"""Autogenerated return type of HttpIntegrationCreate""" +type HttpIntegrationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """HTTP integration.""" + integration: AlertManagementHttpIntegration +} + +"""Autogenerated input type of HttpIntegrationDestroy""" +input HttpIntegrationDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the integration to remove.""" + id: AlertManagementHttpIntegrationID! +} + +"""Autogenerated return type of HttpIntegrationDestroy""" +type HttpIntegrationDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """HTTP integration.""" + integration: AlertManagementHttpIntegration +} + +"""Autogenerated input type of HttpIntegrationResetToken""" +input HttpIntegrationResetTokenInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the integration to mutate.""" + id: AlertManagementHttpIntegrationID! +} + +"""Autogenerated return type of HttpIntegrationResetToken""" +type HttpIntegrationResetTokenPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """HTTP integration.""" + integration: AlertManagementHttpIntegration +} + +"""Autogenerated input type of HttpIntegrationUpdate""" +input HttpIntegrationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the integration to mutate.""" + id: AlertManagementHttpIntegrationID! + + """Name of the integration.""" + name: String + + """Whether the integration is receiving alerts.""" + active: Boolean + + """Example of an alert payload.""" + payloadExample: JsonString + + """ + Custom mapping of GitLab alert attributes to fields from the payload example. + """ + payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!] +} + +"""Autogenerated return type of HttpIntegrationUpdate""" +type HttpIntegrationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """HTTP integration.""" + integration: AlertManagementHttpIntegration +} + +""" +A `IncidentManagementEscalationPolicyID` is a global ID. It is encoded as a string. + +An example `IncidentManagementEscalationPolicyID` is: `"gid://gitlab/IncidentManagement::EscalationPolicy/1"`. +""" +scalar IncidentManagementEscalationPolicyID + +""" +A `IncidentManagementEscalationRuleID` is a global ID. It is encoded as a string. + +An example `IncidentManagementEscalationRuleID` is: `"gid://gitlab/IncidentManagement::EscalationRule/1"`. +""" +scalar IncidentManagementEscalationRuleID + +""" +A `IncidentManagementIssuableResourceLinkID` is a global ID. It is encoded as a string. + +An example `IncidentManagementIssuableResourceLinkID` is: `"gid://gitlab/IncidentManagement::IssuableResourceLink/1"`. +""" +scalar IncidentManagementIssuableResourceLinkID + +""" +A `IncidentManagementOncallParticipantID` is a global ID. It is encoded as a string. + +An example `IncidentManagementOncallParticipantID` is: `"gid://gitlab/IncidentManagement::OncallParticipant/1"`. +""" +scalar IncidentManagementOncallParticipantID + +"""Describes an incident management on-call rotation""" +type IncidentManagementOncallRotation { + """Active period for the on-call rotation.""" + activePeriod: OncallRotationActivePeriodType + + """End date and time of the on-call rotation.""" + endsAt: Time + + """ID of the on-call rotation.""" + id: IncidentManagementOncallRotationID! + + """Length of the on-call schedule, in the units specified by lengthUnit.""" + length: Int + + """Unit of the on-call rotation length.""" + lengthUnit: OncallRotationUnitEnum + + """Name of the on-call rotation.""" + name: String! + + """Participants of the on-call rotation.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): OncallParticipantTypeConnection + + """ + Blocks of time for which a participant is on-call within a given time frame. Time frame cannot exceed one month. + """ + shifts( + """Start of timeframe to include shifts for.""" + startTime: Time! + + """ + End of timeframe to include shifts for. Cannot exceed one month after start. + """ + endTime: Time! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IncidentManagementOncallShiftConnection + + """Start date of the on-call rotation.""" + startsAt: Time +} + +"""The connection type for IncidentManagementOncallRotation.""" +type IncidentManagementOncallRotationConnection { + """A list of edges.""" + edges: [IncidentManagementOncallRotationEdge] + + """A list of nodes.""" + nodes: [IncidentManagementOncallRotation] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type IncidentManagementOncallRotationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IncidentManagementOncallRotation +} + +""" +A `IncidentManagementOncallRotationID` is a global ID. It is encoded as a string. + +An example `IncidentManagementOncallRotationID` is: `"gid://gitlab/IncidentManagement::OncallRotation/1"`. +""" +scalar IncidentManagementOncallRotationID + +"""Describes an incident management on-call schedule""" +type IncidentManagementOncallSchedule { + """Description of the on-call schedule.""" + description: String + + """Internal ID of the on-call schedule.""" + iid: ID! + + """Name of the on-call schedule.""" + name: String! + oncallUsers: [UserCore!] + + """On-call rotation for the on-call schedule.""" + rotation( + """ID of the on-call rotation.""" + id: IncidentManagementOncallRotationID! + ): IncidentManagementOncallRotation + + """On-call rotations for the on-call schedule.""" + rotations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IncidentManagementOncallRotationConnection! + + """Time zone of the on-call schedule.""" + timezone: String! +} + +"""The connection type for IncidentManagementOncallSchedule.""" +type IncidentManagementOncallScheduleConnection { + """A list of edges.""" + edges: [IncidentManagementOncallScheduleEdge] + + """A list of nodes.""" + nodes: [IncidentManagementOncallSchedule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type IncidentManagementOncallScheduleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IncidentManagementOncallSchedule +} + +"""A block of time for which a participant is on-call.""" +type IncidentManagementOncallShift { + """End time of the on-call shift.""" + endsAt: Time + + """Participant assigned to the on-call shift.""" + participant: OncallParticipantType + + """Start time of the on-call shift.""" + startsAt: Time +} + +"""The connection type for IncidentManagementOncallShift.""" +type IncidentManagementOncallShiftConnection { + """A list of edges.""" + edges: [IncidentManagementOncallShiftEdge] + + """A list of nodes.""" + nodes: [IncidentManagementOncallShift] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type IncidentManagementOncallShiftEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IncidentManagementOncallShift +} + +""" +A `IncidentManagementTimelineEventID` is a global ID. It is encoded as a string. + +An example `IncidentManagementTimelineEventID` is: `"gid://gitlab/IncidentManagement::TimelineEvent/1"`. +""" +scalar IncidentManagementTimelineEventID + +type InstanceSecurityDashboard { + """ + Cluster agents associated with projects selected in the Instance Security Dashboard. + """ + clusterAgents( + """Returns only cluster agents which have vulnerabilities.""" + hasVulnerabilities: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentConnection + + """Projects selected in Instance Security Dashboard.""" + projects( + """ + Search query, which can be for the project name, a path, or a description. + """ + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """Represents vulnerable project counts for each grade.""" + vulnerabilityGrades: [VulnerableProjectsByGrade!]! + + """ + Vulnerability scanners reported on the vulnerabilities from projects selected in Instance Security Dashboard. + """ + vulnerabilityScanners( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityScannerConnection + + """ + Counts for each vulnerability severity from projects selected in Instance Security Dashboard. + """ + vulnerabilitySeveritiesCount( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by scanner.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """Filter vulnerabilities that do or do not have issues.""" + hasIssues: Boolean + + """Filter vulnerabilities that do or do not have a resolution.""" + hasResolution: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + ): VulnerabilitySeveritiesCount +} + +""" +A `IntegrationsPrometheusID` is a global ID. It is encoded as a string. + +An example `IntegrationsPrometheusID` is: `"gid://gitlab/Integrations::Prometheus/1"`. +The older format `"gid://gitlab/PrometheusService/1"` was deprecated in 14.1. +""" +scalar IntegrationsPrometheusID + +"""An ISO 8601-encoded date""" +scalar ISO8601Date + +"""Represents an issuable.""" +union Issuable = Epic | Issue | MergeRequest | WorkItem + +""" +A `IssuableID` is a global ID. It is encoded as a string. + +An example `IssuableID` is: `"gid://gitlab/Issuable/1"`. +""" +scalar IssuableID + +"""Describes an issuable resource link for incident issues""" +type IssuableResourceLink { + """ID of the Issuable resource link.""" + id: IncidentManagementIssuableResourceLinkID! + + """Incident of the resource link.""" + issue: Issue! + + """Web Link to the resource.""" + link: String! + + """Optional text for the link.""" + linkText: String + + """Type of the resource link.""" + linkType: IssuableResourceLinkType! +} + +"""The connection type for IssuableResourceLink.""" +type IssuableResourceLinkConnection { + """A list of edges.""" + edges: [IssuableResourceLinkEdge] + + """A list of nodes.""" + nodes: [IssuableResourceLink] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of IssuableResourceLinkCreate""" +input IssuableResourceLinkCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Incident id to associate the resource link with.""" + id: IssueID! + + """Link of the resource.""" + link: String! + + """Link text of the resource.""" + linkText: String + + """Link type of the resource.""" + linkType: IssuableResourceLinkType +} + +"""Autogenerated return type of IssuableResourceLinkCreate""" +type IssuableResourceLinkCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issuable resource link.""" + issuableResourceLink: IssuableResourceLink +} + +"""Autogenerated input type of IssuableResourceLinkDestroy""" +input IssuableResourceLinkDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Issuable resource link ID to remove.""" + id: IncidentManagementIssuableResourceLinkID! +} + +"""Autogenerated return type of IssuableResourceLinkDestroy""" +type IssuableResourceLinkDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issuable resource link.""" + issuableResourceLink: IssuableResourceLink +} + +"""An edge in a connection.""" +type IssuableResourceLinkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IssuableResourceLink +} + +"""Issuable resource link type enum""" +enum IssuableResourceLinkType { + """General link type""" + general + + """Zoom link type""" + zoom + + """Slack link type""" + slack +} + +"""Fields to perform the search in""" +enum IssuableSearchableField { + """Search in title field.""" + TITLE + + """Search in description field.""" + DESCRIPTION +} + +"""Incident severity""" +enum IssuableSeverity { + """Unknown severity""" + UNKNOWN + + """Low severity""" + LOW + + """Medium severity""" + MEDIUM + + """High severity""" + HIGH + + """Critical severity""" + CRITICAL +} + +"""State of a GitLab issue or merge request""" +enum IssuableState { + """In open state.""" + opened + + """In closed state.""" + closed + + """Discussion has been locked.""" + locked + + """All available.""" + all +} + +type Issue implements CurrentUserTodos & NoteableInterface & Todoable { + """Alert associated to this issue.""" + alertManagementAlert: AlertManagementAlert + + """Assignees of the issue.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """User that created the issue.""" + author: UserCore! + + """Indicates the issue is blocked.""" + blocked: Boolean! + + """Count of issues blocking this issue.""" + blockedByCount: Int + + """Issues blocking this issue.""" + blockedByIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Count of issues this issue is blocking.""" + blockingCount: Int! + + """Issue this issue was closed as a duplicate of.""" + closedAsDuplicateOf: Issue + + """Timestamp of when the issue was closed.""" + closedAt: Time + + """Indicates the issue is confidential.""" + confidential: Boolean! + + """User specific email address for the issue.""" + createNoteEmail: String + + """Timestamp of when the issue was created.""" + createdAt: Time! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Customer relations contacts of the issue.""" + customerRelationsContacts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CustomerRelationsContactConnection + + """Description of the issue.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Collection of design images associated with this issue.""" + designCollection: DesignCollection + + """Indicates discussion is locked on the issue.""" + discussionLocked: Boolean! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Number of downvotes the issue has received.""" + downvotes: Int! + + """Due date of the issue.""" + dueDate: Time + + """ + Indicates if a project has email notifications disabled: `true` if email notifications are disabled. + """ + emailsDisabled: Boolean! + + """Epic to which this issue belongs.""" + epic: Epic + + """ + Escalation policy associated with the issue. Available for issues which support escalation. + """ + escalationPolicy: EscalationPolicyType + + """Escalation status of the issue.""" + escalationStatus: IssueEscalationStatus + + """ + Indicates if the issue belongs to an epic. + Can return true and not show an associated epic when the user has no access to the epic. + """ + hasEpic: Boolean! + + """Current health status.""" + healthStatus: HealthStatus + + """ + Indicates the issue is hidden because the author has been banned. Will always + return `null` if `ban_user_feature_flag` feature flag is disabled. + """ + hidden: Boolean + + """Human-readable time estimate of the issue.""" + humanTimeEstimate: String + + """Human-readable total time reported as spent on the issue.""" + humanTotalTimeSpent: String + + """ID of the issue.""" + id: ID! + + """Internal ID of the issue.""" + iid: ID! + + """Issuable resource links of the incident issue.""" + issuableResourceLinks( + """ID of the incident.""" + incidentId: IssueID! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssuableResourceLinkConnection + + """Iteration of the issue.""" + iteration: Iteration + + """Labels of the issue.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Number of merge requests that close the issue on merge.""" + mergeRequestsCount: Int! + + """Metric images associated to the issue.""" + metricImages: [MetricImage!] + + """Milestone of the issue.""" + milestone: Milestone + + """Indicates if issue got moved from other project.""" + moved: Boolean + + """Updated Issue after it got moved to another project.""" + movedTo: Issue + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """List of participants in the issue.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ID of the issue project.""" + projectId: Int! + + """ + Internal reference of the issue. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """ + Relative position of the issue (used for positioning in epic tree and issue boards). + """ + relativePosition: Int + + """Severity level of the incident.""" + severity: IssuableSeverity + + """Timestamp of when the issue SLA expires.""" + slaDueAt: Time + + """State of the issue.""" + state: IssueState! + + """Indicates whether an issue is published to the status page.""" + statusPagePublishedIncident: Boolean + + """Indicates the currently logged in user is subscribed to the issue.""" + subscribed: Boolean! + + """Task completion status of the issue.""" + taskCompletionStatus: TaskCompletionStatus! + + """Time estimate of the issue.""" + timeEstimate: Int! + + """Timelogs on the issue.""" + timelogs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection! + + """Title of the issue.""" + title: String! + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Total time reported as spent on the issue.""" + totalTimeSpent: Int! + + """Type of the issue.""" + type: IssueType + + """Timestamp of when the issue was last updated.""" + updatedAt: Time! + + """User that last updated the issue.""" + updatedBy: UserCore + + """Number of upvotes the issue has received.""" + upvotes: Int! + + """Number of user discussions in the issue.""" + userDiscussionsCount: Int! + + """Number of user notes of the issue.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: IssuePermissions! + + """Web path of the issue.""" + webPath: String! + + """Web URL of the issue.""" + webUrl: String! + + """Weight of the issue.""" + weight: Int +} + +"""The connection type for Issue.""" +type IssueConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [IssueEdge] + + """A list of nodes.""" + nodes: [Issue] + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """Total weight of issues collection.""" + weight: Int! +} + +"""Iteration ID wildcard values for issue creation""" +enum IssueCreationIterationWildcardId { + """Current iteration.""" + CURRENT +} + +"""An edge in a connection.""" +type IssueEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Issue +} + +"""Issue escalation status values""" +enum IssueEscalationStatus { + """Investigation has not started.""" + TRIGGERED + + """Someone is actively investigating the problem.""" + ACKNOWLEDGED + + """The problem has been addressed.""" + RESOLVED + + """No action will be taken.""" + IGNORED +} + +""" +A `IssueID` is a global ID. It is encoded as a string. + +An example `IssueID` is: `"gid://gitlab/Issue/1"`. +""" +scalar IssueID + +"""Autogenerated input type of IssueMove""" +input IssueMoveInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to move the issue to.""" + targetProjectPath: ID! +} + +"""Autogenerated input type of IssueMoveList""" +input IssueMoveListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the board that the issue is in.""" + boardId: BoardID! + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """ID of the board list that the issue will be moved from.""" + fromListId: ID + + """ID of the board list that the issue will be moved to.""" + toListId: ID + + """ID of issue that should be placed before the current issue.""" + moveBeforeId: ID + + """ID of issue that should be placed after the current issue.""" + moveAfterId: ID + + """ + Position of issue within the board list. Positions start at 0. Use -1 to move to the end of the list. + """ + positionInList: Int + + """ID of the parent epic. NULL when removing the association.""" + epicId: EpicID +} + +"""Autogenerated return type of IssueMoveList""" +type IssueMoveListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated return type of IssueMove""" +type IssueMovePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Check permissions for the current user on a issue""" +type IssuePermissions { + """Indicates the user can perform `admin_issue` on this resource""" + adminIssue: Boolean! + + """Indicates the user can perform `create_design` on this resource""" + createDesign: Boolean! + + """Indicates the user can perform `create_note` on this resource""" + createNote: Boolean! + + """Indicates the user can perform `destroy_design` on this resource""" + destroyDesign: Boolean! + + """Indicates the user can perform `read_design` on this resource""" + readDesign: Boolean! + + """Indicates the user can perform `read_issue` on this resource""" + readIssue: Boolean! + + """Indicates the user can perform `reopen_issue` on this resource""" + reopenIssue: Boolean! + + """Indicates the user can perform `update_issue` on this resource""" + updateIssue: Boolean! +} + +"""Autogenerated input type of IssueSetAssignees""" +input IssueSetAssigneesInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Usernames to assign to the resource. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of IssueSetAssignees""" +type IssueSetAssigneesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetConfidential""" +input IssueSetConfidentialInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Whether or not to set the issue as a confidential.""" + confidential: Boolean! +} + +"""Autogenerated return type of IssueSetConfidential""" +type IssueSetConfidentialPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetCrmContacts""" +input IssueSetCrmContactsInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Customer relations contact IDs to set. Replaces existing contacts by default. + """ + contactIds: [CustomerRelationsContactID!]! + + """Changes the operation mode. Defaults to REPLACE.""" + operationMode: MutationOperationMode +} + +"""Autogenerated return type of IssueSetCrmContacts""" +type IssueSetCrmContactsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetDueDate""" +input IssueSetDueDateInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Desired due date for the issue. Due date is removed if null.""" + dueDate: Time +} + +"""Autogenerated return type of IssueSetDueDate""" +type IssueSetDueDatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetEpic""" +input IssueSetEpicInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the epic to be assigned to the issue, epic will be removed if absent or set to null + """ + epicId: EpicID +} + +"""Autogenerated return type of IssueSetEpic""" +type IssueSetEpicPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetEscalationPolicy""" +input IssueSetEscalationPolicyInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the escalation policy to assign to the issue. Policy will be removed if absent or set to null. + """ + escalationPolicyId: IncidentManagementEscalationPolicyID +} + +"""Autogenerated return type of IssueSetEscalationPolicy""" +type IssueSetEscalationPolicyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetEscalationStatus""" +input IssueSetEscalationStatusInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Set the escalation status.""" + status: IssueEscalationStatus! +} + +"""Autogenerated return type of IssueSetEscalationStatus""" +type IssueSetEscalationStatusPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetIteration""" +input IssueSetIterationInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Iteration to assign to the issue. + + """ + iterationId: IterationID +} + +"""Autogenerated return type of IssueSetIteration""" +type IssueSetIterationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetLocked""" +input IssueSetLockedInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Whether or not to lock discussion on the issue.""" + locked: Boolean! +} + +"""Autogenerated return type of IssueSetLocked""" +type IssueSetLockedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetSeverity""" +input IssueSetSeverityInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Set the incident severity level.""" + severity: IssuableSeverity! +} + +"""Autogenerated return type of IssueSetSeverity""" +type IssueSetSeverityPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetSubscription""" +input IssueSetSubscriptionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Desired state of the subscription.""" + subscribedState: Boolean! + + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! +} + +"""Autogenerated return type of IssueSetSubscription""" +type IssueSetSubscriptionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of IssueSetWeight""" +input IssueSetWeightInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """The desired weight for the issue. If set to null, weight is removed.""" + weight: Int +} + +"""Autogenerated return type of IssueSetWeight""" +type IssueSetWeightPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Values for sorting issues""" +enum IssueSort { + """Due date by ascending order.""" + DUE_DATE_ASC + + """Due date by descending order.""" + DUE_DATE_DESC + + """Relative position by ascending order.""" + RELATIVE_POSITION_ASC + + """Severity from less critical to more critical.""" + SEVERITY_ASC + + """Severity from more critical to less critical.""" + SEVERITY_DESC + + """Title by ascending order.""" + TITLE_ASC + + """Title by descending order.""" + TITLE_DESC + + """Number of upvotes (awarded "thumbs up" emoji) by ascending order.""" + POPULARITY_ASC + + """Number of upvotes (awarded "thumbs up" emoji) by descending order.""" + POPULARITY_DESC + + """Status from triggered to resolved.""" + ESCALATION_STATUS_ASC + + """Status from resolved to triggered.""" + ESCALATION_STATUS_DESC + + """Closed time by ascending order.""" + CLOSED_AT_ASC + + """Closed time by descending order.""" + CLOSED_AT_DESC + + """Weight by ascending order.""" + WEIGHT_ASC + + """Weight by descending order.""" + WEIGHT_DESC + + """Published issues shown last.""" + PUBLISHED_ASC + + """Published issues shown first.""" + PUBLISHED_DESC + + """Issues with earliest SLA due time shown first.""" + SLA_DUE_AT_ASC + + """Issues with latest SLA due time shown first.""" + SLA_DUE_AT_DESC + + """Blocking issues count by ascending order.""" + BLOCKING_ISSUES_ASC + + """Blocking issues count by descending order.""" + BLOCKING_ISSUES_DESC + + """Priority by ascending order.""" + PRIORITY_ASC + + """Priority by descending order.""" + PRIORITY_DESC + + """Label priority by ascending order.""" + LABEL_PRIORITY_ASC + + """Label priority by descending order.""" + LABEL_PRIORITY_DESC + + """Milestone due date by ascending order.""" + MILESTONE_DUE_ASC + + """Milestone due date by descending order.""" + MILESTONE_DUE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""State of a GitLab issue""" +enum IssueState { + """In open state.""" + opened + + """In closed state.""" + closed + + """Discussion has been locked.""" + locked + + """All available.""" + all +} + +"""Values for issue state events""" +enum IssueStateEvent { + """Reopens the issue.""" + REOPEN + + """Closes the issue.""" + CLOSE +} + +"""Represents total number of issues for the represented statuses""" +type IssueStatusCountsType { + """Number of issues with status ALL for the project""" + all: Int + + """Number of issues with status CLOSED for the project""" + closed: Int + + """Number of issues with status OPENED for the project""" + opened: Int +} + +"""Issue type""" +enum IssueType { + """Issue issue type""" + ISSUE + + """Incident issue type""" + INCIDENT + + """Test Case issue type""" + TEST_CASE + + """Requirement issue type""" + REQUIREMENT + + """ + Task issue type. Available only when feature flag `work_items` is enabled. + Introduced in 15.2: This feature is in Alpha. It can be changed or removed at any time. + """ + TASK @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.2.") +} + +"""Represents an iteration object""" +type Iteration implements TimeboxReportInterface { + """Timestamp of iteration creation.""" + createdAt: Time! + + """Description of the iteration.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Timestamp of the iteration due date.""" + dueDate: Time + + """ID of the iteration.""" + id: ID! + + """Internal ID of the iteration.""" + iid: ID! + + """Cadence of the iteration.""" + iterationCadence: IterationCadence! + + """Historically accurate report about the timebox.""" + report( + """ + Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`. + """ + fullPath: String + ): TimeboxReport + + """ + Web path of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. + """ + scopedPath: String + + """ + Web URL of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. + """ + scopedUrl: String + + """ + Sequence number for the iteration when you sort the containing cadence's + iterations by the start and end date. The earliest starting and ending + iteration is assigned 1. + """ + sequence: Int! + + """Timestamp of the iteration start date.""" + startDate: Time + + """State of the iteration.""" + state: IterationState! + + """ + Title of the iteration. Title must be specified unless iteration_cadences feature flag is enabled. + """ + title: String + + """Timestamp of last iteration update.""" + updatedAt: Time! + + """Web path of the iteration.""" + webPath: String! + + """Web URL of the iteration.""" + webUrl: String! +} + +"""Represents an iteration cadence""" +type IterationCadence { + """Whether the iteration cadence is active.""" + active: Boolean + + """ + Whether the iteration cadence should automatically generate upcoming iterations. + """ + automatic: Boolean + + """ + Description of the iteration cadence. Maximum length is 5000 characters. + """ + description: String + + """Duration in weeks of the iterations within this cadence.""" + durationInWeeks: Int + + """Global ID of the iteration cadence.""" + id: IterationsCadenceID! + + """ + Upcoming iterations to be created when iteration cadence is set to automatic. + """ + iterationsInAdvance: Int + + """ + Whether the iteration cadence should roll over issues to the next iteration or not. + """ + rollOver: Boolean! + + """Timestamp of the automation start date.""" + startDate: Time + + """Title of the iteration cadence.""" + title: String! +} + +"""The connection type for IterationCadence.""" +type IterationCadenceConnection { + """A list of edges.""" + edges: [IterationCadenceEdge] + + """A list of nodes.""" + nodes: [IterationCadence] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of IterationCadenceCreate""" +input IterationCadenceCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group where the iteration cadence is created.""" + groupPath: ID! + + """Title of the iteration cadence.""" + title: String + + """Duration in weeks of the iterations within this cadence.""" + durationInWeeks: Int + + """ + Upcoming iterations to be created when iteration cadence is set to automatic. + """ + iterationsInAdvance: Int + + """Timestamp of the automation start date.""" + startDate: Time + + """ + Whether the iteration cadence should automatically generate upcoming iterations. + """ + automatic: Boolean! + + """Whether the iteration cadence is active.""" + active: Boolean! + + """ + Whether the iteration cadence should roll over issues to the next iteration or not. + """ + rollOver: Boolean + + """ + Description of the iteration cadence. Maximum length is 5000 characters. + """ + description: String +} + +"""Autogenerated return type of IterationCadenceCreate""" +type IterationCadenceCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created iteration cadence.""" + iterationCadence: IterationCadence +} + +"""Autogenerated input type of IterationCadenceDestroy""" +input IterationCadenceDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the iteration cadence.""" + id: IterationsCadenceID! +} + +"""Autogenerated return type of IterationCadenceDestroy""" +type IterationCadenceDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Group the iteration cadence belongs to.""" + group: Group! +} + +"""An edge in a connection.""" +type IterationCadenceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: IterationCadence +} + +"""Autogenerated input type of IterationCadenceUpdate""" +input IterationCadenceUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the iteration cadence.""" + id: IterationsCadenceID! + + """Title of the iteration cadence.""" + title: String + + """Duration in weeks of the iterations within this cadence.""" + durationInWeeks: Int + + """ + Upcoming iterations to be created when iteration cadence is set to automatic. + """ + iterationsInAdvance: Int + + """Timestamp of the automation start date.""" + startDate: Time + + """ + Whether the iteration cadence should automatically generate upcoming iterations. + """ + automatic: Boolean + + """Whether the iteration cadence is active.""" + active: Boolean + + """ + Whether the iteration cadence should roll over issues to the next iteration or not. + """ + rollOver: Boolean + + """ + Description of the iteration cadence. Maximum length is 5000 characters. + """ + description: String +} + +"""Autogenerated return type of IterationCadenceUpdate""" +type IterationCadenceUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated iteration cadence.""" + iterationCadence: IterationCadence +} + +"""The connection type for Iteration.""" +type IterationConnection { + """A list of edges.""" + edges: [IterationEdge] + + """A list of nodes.""" + nodes: [Iteration] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of iterationCreate""" +input iterationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project with which the resource is associated.""" + projectPath: ID + + """Full path of the group with which the resource is associated.""" + groupPath: ID + + """ + Global ID of the iteration cadence to be assigned to the new iteration. + """ + iterationsCadenceId: IterationsCadenceID + + """Title of the iteration.""" + title: String + + """Description of the iteration.""" + description: String + + """Start date of the iteration.""" + startDate: String + + """End date of the iteration.""" + dueDate: String +} + +"""Autogenerated return type of iterationCreate""" +type iterationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created iteration.""" + iteration: Iteration +} + +"""Autogenerated input type of IterationDelete""" +input IterationDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the iteration.""" + id: IterationID! +} + +"""Autogenerated return type of IterationDelete""" +type IterationDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Group the iteration belongs to.""" + group: Group! +} + +"""An edge in a connection.""" +type IterationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Iteration +} + +""" +A `IterationID` is a global ID. It is encoded as a string. + +An example `IterationID` is: `"gid://gitlab/Iteration/1"`. +The older format `"gid://gitlab/EEIteration/1"` was deprecated in 13.3. +""" +scalar IterationID + +""" +A `IterationsCadenceID` is a global ID. It is encoded as a string. + +An example `IterationsCadenceID` is: `"gid://gitlab/Iterations::Cadence/1"`. +""" +scalar IterationsCadenceID + +"""Fields to perform the search in""" +enum IterationSearchableField { + """Search in title field.""" + TITLE + + """Search in cadence_title field.""" + CADENCE_TITLE +} + +"""Iteration sort values""" +enum IterationSort { + """Sort by cadence id and due date in ascending order.""" + CADENCE_AND_DUE_DATE_ASC +} + +"""State of a GitLab iteration""" +enum IterationState { + """Upcoming iteration.""" + upcoming + + """Started iteration. Deprecated in 14.1: Use current instead.""" + started @deprecated(reason: "Use current instead. Deprecated in 14.1.") + + """Current iteration.""" + current + + """Open iteration.""" + opened + + """Closed iteration.""" + closed + + """Any iteration.""" + all +} + +"""Iteration ID wildcard values""" +enum IterationWildcardId { + """No iteration is assigned.""" + NONE + + """An iteration is assigned.""" + ANY + + """Current iteration.""" + CURRENT +} + +type JiraImport { + """Timestamp of when the Jira import was created.""" + createdAt: Time + + """Count of issues that failed to import.""" + failedToImportCount: Int! + + """Count of issues that were successfully imported.""" + importedIssuesCount: Int! + + """Project key for the imported Jira project.""" + jiraProjectKey: String! + + """Timestamp of when the Jira import was scheduled.""" + scheduledAt: Time + + """User that started the Jira import.""" + scheduledBy: UserCore + + """Total count of issues that were attempted to import.""" + totalIssueCount: Int! +} + +"""The connection type for JiraImport.""" +type JiraImportConnection { + """A list of edges.""" + edges: [JiraImportEdge] + + """A list of nodes.""" + nodes: [JiraImport] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type JiraImportEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: JiraImport +} + +"""Autogenerated input type of JiraImportStart""" +input JiraImportStartInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project key of the importer Jira project.""" + jiraProjectKey: String! + + """Project name of the importer Jira project.""" + jiraProjectName: String + + """Project to import the Jira project into.""" + projectPath: ID! + + """Mapping of Jira to GitLab users.""" + usersMapping: [JiraUsersMappingInputType!] +} + +"""Autogenerated return type of JiraImportStart""" +type JiraImportStartPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Jira import data after mutation.""" + jiraImport: JiraImport +} + +"""Autogenerated input type of JiraImportUsers""" +input JiraImportUsersInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to import the Jira users into.""" + projectPath: ID! + + """ + Index of the record the import should started at, default 0 (50 records returned). + """ + startAt: Int +} + +"""Autogenerated return type of JiraImportUsers""" +type JiraImportUsersPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Users returned from Jira, matched by email and name if possible.""" + jiraUsers: [JiraUser!] +} + +type JiraProject { + """Key of the Jira project.""" + key: String! + + """Name of the Jira project.""" + name: String + + """ID of the Jira project.""" + projectId: Int! +} + +"""The connection type for JiraProject.""" +type JiraProjectConnection { + """A list of edges.""" + edges: [JiraProjectEdge] + + """A list of nodes.""" + nodes: [JiraProject] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type JiraProjectEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: JiraProject +} + +type JiraService implements Service { + """Indicates if the service is active.""" + active: Boolean + + """List of all Jira projects fetched through Jira REST API.""" + projects( + """Project name or key.""" + name: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): JiraProjectConnection + + """Type of the service.""" + serviceType: ServiceType + + """Class name of the service.""" + type: String +} + +type JiraUser { + """ID of the matched GitLab user.""" + gitlabId: Int + + """Name of the matched GitLab user.""" + gitlabName: String + + """Username of the matched GitLab user.""" + gitlabUsername: String + + """Account ID of the Jira user.""" + jiraAccountId: String! + + """Display name of the Jira user.""" + jiraDisplayName: String! + + """Email of the Jira user, returned only for users with public emails.""" + jiraEmail: String +} + +input JiraUsersMappingInputType { + """ID of the GitLab user.""" + gitlabId: Int + + """Jira account ID of the user.""" + jiraAccountId: String! +} + +enum JobArtifactFileType { + """ARCHIVE job artifact file type.""" + ARCHIVE + + """METADATA job artifact file type.""" + METADATA + + """TRACE job artifact file type.""" + TRACE + + """JUNIT job artifact file type.""" + JUNIT + + """METRICS job artifact file type.""" + METRICS + + """METRICS REFEREE job artifact file type.""" + METRICS_REFEREE + + """NETWORK REFEREE job artifact file type.""" + NETWORK_REFEREE + + """DOTENV job artifact file type.""" + DOTENV + + """COBERTURA job artifact file type.""" + COBERTURA + + """CLUSTER APPLICATIONS job artifact file type.""" + CLUSTER_APPLICATIONS + + """LSIF job artifact file type.""" + LSIF + + """CYCLONEDX job artifact file type.""" + CYCLONEDX + + """SAST job artifact file type.""" + SAST + + """SECRET DETECTION job artifact file type.""" + SECRET_DETECTION + + """DEPENDENCY SCANNING job artifact file type.""" + DEPENDENCY_SCANNING + + """CONTAINER SCANNING job artifact file type.""" + CONTAINER_SCANNING + + """CLUSTER IMAGE SCANNING job artifact file type.""" + CLUSTER_IMAGE_SCANNING + + """DAST job artifact file type.""" + DAST + + """LICENSE SCANNING job artifact file type.""" + LICENSE_SCANNING + + """ACCESSIBILITY job artifact file type.""" + ACCESSIBILITY + + """CODE QUALITY job artifact file type.""" + CODEQUALITY + + """PERFORMANCE job artifact file type.""" + PERFORMANCE + + """BROWSER PERFORMANCE job artifact file type.""" + BROWSER_PERFORMANCE + + """LOAD PERFORMANCE job artifact file type.""" + LOAD_PERFORMANCE + + """TERRAFORM job artifact file type.""" + TERRAFORM + + """REQUIREMENTS job artifact file type.""" + REQUIREMENTS + + """COVERAGE FUZZING job artifact file type.""" + COVERAGE_FUZZING + + """API FUZZING job artifact file type.""" + API_FUZZING +} + +""" +Represents the Geo replication and verification state of a job_artifact. +""" +type JobArtifactRegistry { + """ID of the Job Artifact.""" + artifactId: ID! + + """Timestamp when the JobArtifactRegistry was created""" + createdAt: Time + + """ID of the JobArtifactRegistry""" + id: ID! + + """Error message during sync of the JobArtifactRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the JobArtifactRegistry + """ + lastSyncedAt: Time + + """Timestamp after which the JobArtifactRegistry is resynced""" + retryAt: Time + + """Number of consecutive failed sync attempts of the JobArtifactRegistry""" + retryCount: Int + + """Sync state of the JobArtifactRegistry""" + state: RegistryState + + """Timestamp after which the JobArtifactRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the JobArtifactRegistry + """ + verifiedAt: Time +} + +"""The connection type for JobArtifactRegistry.""" +type JobArtifactRegistryConnection { + """A list of edges.""" + edges: [JobArtifactRegistryEdge] + + """A list of nodes.""" + nodes: [JobArtifactRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type JobArtifactRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: JobArtifactRegistry +} + +"""Autogenerated input type of JobArtifactsDestroy""" +input JobArtifactsDestroyInput { + """ID of the job to mutate.""" + id: CiBuildID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of JobArtifactsDestroy""" +type JobArtifactsDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Number of artifacts deleted.""" + destroyedArtifactsCount: Int! + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job with artifacts to be deleted.""" + job: CiJob +} + +"""Autogenerated input type of JobCancel""" +input JobCancelInput { + """ID of the job to mutate.""" + id: CiBuildID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of JobCancel""" +type JobCancelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job after the mutation.""" + job: CiJob +} + +""" +A `CommitStatusID` is a global ID. It is encoded as a string. + +An example `CommitStatusID` is: `"gid://gitlab/CommitStatus/1"`. +""" +scalar JobID + +union JobNeedUnion = CiBuildNeed | CiJob + +"""The connection type for JobNeedUnion.""" +type JobNeedUnionConnection { + """A list of edges.""" + edges: [JobNeedUnionEdge] + + """A list of nodes.""" + nodes: [JobNeedUnion] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type JobNeedUnionEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: JobNeedUnion +} + +type JobPermissions { + """Indicates the user can perform `read_build` on this resource""" + readBuild: Boolean! + + """Indicates the user can perform `read_job_artifacts` on this resource""" + readJobArtifacts: Boolean! + + """Indicates the user can perform `update_build` on this resource""" + updateBuild: Boolean! +} + +"""Autogenerated input type of JobPlay""" +input JobPlayInput { + """ID of the job to mutate.""" + id: CiBuildID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of JobPlay""" +type JobPlayPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job after the mutation.""" + job: CiJob +} + +"""Autogenerated input type of JobRetry""" +input JobRetryInput { + """ID of the job to mutate.""" + id: CiBuildID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Variables to use when retrying a manual job.""" + variables: [CiVariableInput!] = [] +} + +"""Autogenerated return type of JobRetry""" +type JobRetryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job after the mutation.""" + job: CiJob +} + +"""Autogenerated input type of JobUnschedule""" +input JobUnscheduleInput { + """ID of the job to mutate.""" + id: CiBuildID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of JobUnschedule""" +type JobUnschedulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Job after the mutation.""" + job: CiJob +} + +"""Represents untyped JSON""" +scalar JSON + +"""JSON object as raw string""" +scalar JsonString + +type Kas { + """Indicates whether the Kubernetes Agent Server is enabled.""" + enabled: Boolean! + + """URL used by the Agents to communicate with KAS.""" + externalUrl: String + + """KAS version.""" + version: String +} + +type Label { + """Background color of the label.""" + color: String! + + """When this label was created.""" + createdAt: Time! + + """Description of the label (Markdown rendered as HTML for caching).""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Label ID.""" + id: ID! + + """Text color of the label.""" + textColor: String! + + """Content of the label.""" + title: String! + + """When this label was last updated.""" + updatedAt: Time! +} + +"""The connection type for Label.""" +type LabelConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [LabelEdge] + + """A list of nodes.""" + nodes: [Label] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of LabelCreate""" +input LabelCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project with which the resource is associated.""" + projectPath: ID + + """Full path of the group with which the resource is associated.""" + groupPath: ID + + """Title of the label.""" + title: String! + + """Description of the label.""" + description: String + + """ + The color of the label given in 6-digit hex notation with leading '#' sign + (for example, `#FFAABB`) or one of the CSS color names. + + """ + color: String = "#6699cc" +} + +"""Autogenerated return type of LabelCreate""" +type LabelCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Label after mutation.""" + label: Label +} + +"""An edge in a connection.""" +type LabelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Label +} + +""" +A `LabelID` is a global ID. It is encoded as a string. + +An example `LabelID` is: `"gid://gitlab/Label/1"`. +""" +scalar LabelID + +"""Represents the Geo sync and verification state of an LFS object""" +type LfsObjectRegistry { + """Timestamp when the LfsObjectRegistry was created""" + createdAt: Time + + """ID of the LfsObjectRegistry""" + id: ID! + + """Error message during sync of the LfsObjectRegistry""" + lastSyncFailure: String + + """Timestamp of the most recent successful sync of the LfsObjectRegistry""" + lastSyncedAt: Time + + """ID of the LFS object.""" + lfsObjectId: ID! + + """Timestamp after which the LfsObjectRegistry is resynced""" + retryAt: Time + + """Number of consecutive failed sync attempts of the LfsObjectRegistry""" + retryCount: Int + + """Sync state of the LfsObjectRegistry""" + state: RegistryState + + """Timestamp after which the LfsObjectRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the LfsObjectRegistry + """ + verifiedAt: Time +} + +"""The connection type for LfsObjectRegistry.""" +type LfsObjectRegistryConnection { + """A list of edges.""" + edges: [LfsObjectRegistryEdge] + + """A list of nodes.""" + nodes: [LfsObjectRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type LfsObjectRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: LfsObjectRegistry +} + +"""Represents an entry from the Cloud License history""" +type LicenseHistoryEntry { + """Date when the license was activated.""" + activatedAt: Date + + """Date, including grace period, when licensed features will be blocked.""" + blockChangesAt: Date + + """Company of the licensee.""" + company: String + + """Date when the license was added.""" + createdAt: Date + + """Email of the licensee.""" + email: String + + """Date when the license expires.""" + expiresAt: Date + + """ID of the license extracted from the license data.""" + id: ID! + + """Name of the licensee.""" + name: String + + """Name of the subscription plan.""" + plan: String! + + """Date when the license started.""" + startsAt: Date + + """Type of the license.""" + type: String! + + """Number of paid users in the license.""" + usersInLicenseCount: Int +} + +"""The connection type for LicenseHistoryEntry.""" +type LicenseHistoryEntryConnection { + """A list of edges.""" + edges: [LicenseHistoryEntryEdge] + + """A list of nodes.""" + nodes: [LicenseHistoryEntry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type LicenseHistoryEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: LicenseHistoryEntry +} + +""" +A `ListID` is a global ID. It is encoded as a string. + +An example `ListID` is: `"gid://gitlab/List/1"`. +""" +scalar ListID + +"""List limit metric setting""" +enum ListLimitMetric { + """Limit list by number and total weight of issues.""" + all_metrics + + """Limit list by number of issues.""" + issue_count + + """Limit list by total weight of issues.""" + issue_weights +} + +"""Autogenerated input type of MarkAsSpamSnippet""" +input MarkAsSpamSnippetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the snippet to update.""" + id: SnippetID! +} + +"""Autogenerated return type of MarkAsSpamSnippet""" +type MarkAsSpamSnippetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Snippet after mutation.""" + snippet: Snippet +} + +"""Maven metadata""" +type MavenMetadata { + """App group of the Maven package.""" + appGroup: String! + + """App name of the Maven package.""" + appName: String! + + """App version of the Maven package.""" + appVersion: String + + """Date of creation.""" + createdAt: Time! + + """ID of the metadatum.""" + id: PackagesMavenMetadatumID! + + """Path of the Maven package.""" + path: String! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Possible identifier types for a measurement""" +enum MeasurementIdentifier { + """Project count.""" + PROJECTS + + """User count.""" + USERS + + """Issue count.""" + ISSUES + + """Merge request count.""" + MERGE_REQUESTS + + """Group count.""" + GROUPS + + """Pipeline count.""" + PIPELINES + + """Pipeline count with success status.""" + PIPELINES_SUCCEEDED + + """Pipeline count with failed status.""" + PIPELINES_FAILED + + """Pipeline count with canceled status.""" + PIPELINES_CANCELED + + """Pipeline count with skipped status.""" + PIPELINES_SKIPPED +} + +interface MemberInterface { + """GitLab::Access level.""" + accessLevel: AccessLevel + + """Date and time the membership was created.""" + createdAt: Time + + """User that authorized membership.""" + createdBy: UserCore + + """Date and time the membership expires.""" + expiresAt: Time + + """ID of the member.""" + id: ID! + + """Find a merge request.""" + mergeRequestInteraction( + """Global ID of the merge request.""" + id: MergeRequestID! + ): UserMergeRequestInteraction + + """Date and time the membership was last updated.""" + updatedAt: Time + + """User that is associated with the member object.""" + user: UserCore +} + +"""The connection type for MemberInterface.""" +type MemberInterfaceConnection { + """A list of edges.""" + edges: [MemberInterfaceEdge] + + """A list of nodes.""" + nodes: [MemberInterface] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MemberInterfaceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MemberInterface +} + +"""Values for sorting members""" +enum MemberSort { + """Access level ascending order.""" + ACCESS_LEVEL_ASC + + """Access level descending order.""" + ACCESS_LEVEL_DESC + + """User's full name ascending order.""" + USER_FULL_NAME_ASC + + """User's full name descending order.""" + USER_FULL_NAME_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Represents the merge access level of a branch protection.""" +type MergeAccessLevel { + """GitLab::Access level.""" + accessLevel: Int! + + """Human readable representation for this access level.""" + accessLevelDescription: String! + + """Group associated with this access level.""" + group: Group + + """User associated with this access level.""" + user: UserCore +} + +"""The connection type for MergeAccessLevel.""" +type MergeAccessLevelConnection { + """A list of edges.""" + edges: [MergeAccessLevelEdge] + + """A list of nodes.""" + nodes: [MergeAccessLevel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeAccessLevelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeAccessLevel +} + +type MergeRequest implements CurrentUserTodos & NoteableInterface & Todoable { + """Indicates if members of the target project can push to the fork.""" + allowCollaboration: Boolean + + """ + Information relating to rules that must be satisfied to merge this merge request. + """ + approvalState: MergeRequestApprovalState! + + """Number of approvals left.""" + approvalsLeft: Int + + """Number of approvals required.""" + approvalsRequired: Int + + """ + Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. + """ + approved: Boolean! + + """Users who approved the merge request.""" + approvedBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Assignees of the merge request.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestAssigneeConnection + + """User who created this merge request.""" + author: MergeRequestAuthor + + """Indicates if auto merge is enabled for the merge request.""" + autoMergeEnabled: Boolean! + + """Selected auto merge strategy.""" + autoMergeStrategy: String + + """Array of available auto merge strategies.""" + availableAutoMergeStrategies: [String!] + + """Number of commits in the merge request.""" + commitCount: Int + + """Merge request commits.""" + commits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitConnection + + """Merge request commits excluding merge commits.""" + commitsWithoutMergeCommits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitConnection + + """Users who have added commits to the merge request.""" + committers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """Indicates if the merge request has conflicts.""" + conflicts: Boolean! + + """Timestamp of when the merge request was created.""" + createdAt: Time! + + """To-do items for the current user.""" + currentUserTodos( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """State of the to-do items.""" + state: TodoStateEnum + ): TodoConnection! + + """Default merge commit message of the merge request.""" + defaultMergeCommitMessage: String + + """Default squash commit message of the merge request.""" + defaultSquashCommitMessage: String + + """ + Description of the merge request (Markdown rendered as HTML for caching). + """ + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ + Detailed merge status of the merge request. Introduced in 15.3: This feature + is in Alpha. It can be changed or removed at any time. + """ + detailedMergeStatus: DetailedMergeStatus @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """Diff head SHA of the merge request.""" + diffHeadSha: String + + """ + References of the base SHA, the head SHA, and the start SHA for this merge request. + """ + diffRefs: DiffRefs + + """Details about which files were changed in this merge request.""" + diffStats( + """Specific file path.""" + path: String + ): [DiffStats!] + + """Summary of which files were changed in this merge request.""" + diffStatsSummary: DiffStatsSummary + + """Indicates if comments on the merge request are locked to members only.""" + discussionLocked: Boolean! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Indicates if the source branch is behind the target branch.""" + divergedFromTargetBranch: Boolean! + + """Number of downvotes for the merge request.""" + downvotes: Int! + + """Indicates if the merge request is a draft.""" + draft: Boolean! + + """ + Indicates if the project settings will lead to source branch deletion after merge. + """ + forceRemoveSourceBranch: Boolean + + """Indicates if the merge request has CI.""" + hasCi: Boolean! + + """Indicates if the source branch has any security reports.""" + hasSecurityReports: Boolean! + + """Pipeline running on the branch HEAD of the merge request.""" + headPipeline: Pipeline + + """Human-readable time estimate of the merge request.""" + humanTimeEstimate: String + + """Human-readable total time reported as spent on the merge request.""" + humanTotalTimeSpent: String + + """ID of the merge request.""" + id: ID! + + """Internal ID of the merge request.""" + iid: String! + + """Commit SHA of the merge request if merge is in progress.""" + inProgressMergeCommitSha: String + + """Labels of the merge request.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """SHA of the merge request commit (set once merged).""" + mergeCommitSha: String + + """Error message due to a merge error.""" + mergeError: String + + """Indicates if a merge is currently occurring.""" + mergeOngoing: Boolean! + + """Status of the merge request. Deprecated in 14.0: This was renamed.""" + mergeStatus: String @deprecated(reason: "This was renamed. Please use `MergeRequest.mergeStatusEnum`. Deprecated in 14.0.") + + """Merge status of the merge request.""" + mergeStatusEnum: MergeStatus + + """Number of merge requests in the merge train.""" + mergeTrainsCount: Int + + """ + User who merged this merge request or set it to merge when pipeline succeeds. + """ + mergeUser: UserCore + + """ + Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). + """ + mergeWhenPipelineSucceeds: Boolean + + """Indicates if the merge request is mergeable.""" + mergeable: Boolean! + + """ + Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. + """ + mergeableDiscussionsState: Boolean + + """Timestamp of when the merge request was merged, null if not merged.""" + mergedAt: Time + + """Milestone of the merge request.""" + milestone: Milestone + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """ + Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. + """ + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestParticipantConnection + + """ + Pipelines for the merge request. Note: for performance reasons, no more than + the most recent 500 pipelines will be returned. + """ + pipelines( + """Filter pipelines by their status.""" + status: PipelineStatusEnum + + """Filter pipelines by scope.""" + scope: PipelineScopeEnum + + """Filter pipelines by the ref they are run for.""" + ref: String + + """Filter pipelines by the sha of the commit they are run for.""" + sha: String + + """Filter pipelines by their source.""" + source: String + + """Pipelines updated after this date.""" + updatedAfter: Time + + """Pipelines updated before this date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Alias for target_project.""" + project: Project! + + """ID of the merge request project.""" + projectId: Int! + + """Rebase commit SHA of the merge request.""" + rebaseCommitSha: String + + """ + Indicates if there is a rebase currently in progress for the merge request. + """ + rebaseInProgress: Boolean! + + """ + Internal reference of the merge request. Returned in shortened format by default. + """ + reference( + """ + Boolean option specifying whether the reference should be returned in full. + """ + full: Boolean = false + ): String! + + """Users from whom a review has been requested.""" + reviewers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestReviewerConnection + + """Indicates if the merge request is created by @GitLab-Security-Bot.""" + securityAutoFix: Boolean + + """Indicates if the target branch security reports are out of date.""" + securityReportsUpToDateOnTargetBranch: Boolean! + + """Indicates if the merge request will be rebased.""" + shouldBeRebased: Boolean! + + """ + Indicates if the source branch of the merge request will be deleted after merge. + """ + shouldRemoveSourceBranch: Boolean + + """Source branch of the merge request.""" + sourceBranch: String! + + """Indicates if the source branch of the merge request exists.""" + sourceBranchExists: Boolean! + + """Indicates if the source branch is protected.""" + sourceBranchProtected: Boolean! + + """Source project of the merge request.""" + sourceProject: Project + + """ID of the merge request source project.""" + sourceProjectId: Int + + """Indicates if squash on merge is enabled.""" + squash: Boolean! + + """Indicates if squash on merge is enabled.""" + squashOnMerge: Boolean! + + """State of the merge request.""" + state: MergeRequestState! + + """ + Indicates if the currently logged in user is subscribed to this merge request. + """ + subscribed: Boolean! + + """ + Suggested reviewers for merge request. Returns `null` if `suggested_reviewers` + feature flag is disabled. This flag is disabled by default and only available + on GitLab.com because the feature is experimental and is subject to change + without notice. Introduced in 15.4: This feature is in Alpha. It can be + changed or removed at any time. + """ + suggestedReviewers: SuggestedReviewersType @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.4.") + + """Target branch of the merge request.""" + targetBranch: String! + + """Indicates if the target branch of the merge request exists.""" + targetBranchExists: Boolean! + + """Target project of the merge request.""" + targetProject: Project! + + """ID of the merge request target project.""" + targetProjectId: Int! + + """Completion status of tasks""" + taskCompletionStatus: TaskCompletionStatus! + + """Time estimate of the merge request.""" + timeEstimate: Int! + + """Timelogs on the merge request.""" + timelogs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection! + + """Title of the merge request.""" + title: String! + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Total time reported as spent on the merge request.""" + totalTimeSpent: Int! + + """Timestamp of when the merge request was last updated.""" + updatedAt: Time! + + """Number of upvotes for the merge request.""" + upvotes: Int! + + """Number of user discussions in the merge request.""" + userDiscussionsCount: Int + + """User notes count of the merge request.""" + userNotesCount: Int + + """Permissions for the current user on the resource""" + userPermissions: MergeRequestPermissions! + + """Web URL of the merge request.""" + webUrl: String +} + +"""Autogenerated input type of MergeRequestAccept""" +input MergeRequestAcceptInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """How to merge this merge request.""" + strategy: MergeStrategyEnum + + """Custom merge commit message.""" + commitMessage: String + + """HEAD SHA at the time when this merge was requested.""" + sha: String! + + """Custom squash commit message (if squash is true).""" + squashCommitMessage: String + + """Should the source branch be removed.""" + shouldRemoveSourceBranch: Boolean + + """Squash commits on the source branch before merge.""" + squash: Boolean = false +} + +"""Autogenerated return type of MergeRequestAccept""" +type MergeRequestAcceptPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +""" +Information relating to rules that must be satisfied to merge this merge request. +""" +type MergeRequestApprovalState { + """ + Indicates if the merge request approval rules are overwritten for the merge request. + """ + approvalRulesOverwritten: Boolean + + """List of approval rules associated with the merge request.""" + rules: [ApprovalRule!] +} + +"""A user assigned to a merge request.""" +type MergeRequestAssignee implements User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """Details of this user's interactions with the merge request.""" + mergeRequestInteraction: UserMergeRequestInteraction + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +"""The connection type for MergeRequestAssignee.""" +type MergeRequestAssigneeConnection { + """A list of edges.""" + edges: [MergeRequestAssigneeEdge] + + """A list of nodes.""" + nodes: [MergeRequestAssignee] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestAssigneeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestAssignee +} + +"""The author of the merge request.""" +type MergeRequestAuthor implements User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """Details of this user's interactions with the merge request.""" + mergeRequestInteraction: UserMergeRequestInteraction + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +"""The connection type for MergeRequest.""" +type MergeRequestConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [MergeRequestEdge] + + """A list of nodes.""" + nodes: [MergeRequest] + + """Information to aid in pagination.""" + pageInfo: PageInfo! + + """ + Total sum of time to merge, in seconds, for the collection of merge requests. + """ + totalTimeToMerge: Float +} + +"""Autogenerated input type of MergeRequestCreate""" +input MergeRequestCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project full path the merge request is associated with.""" + projectPath: ID! + + """Title of the merge request.""" + title: String! + + """Source branch of the merge request.""" + sourceBranch: String! + + """Target branch of the merge request.""" + targetBranch: String! + + """ + Description of the merge request (Markdown rendered as HTML for caching). + """ + description: String + + """Labels of the merge request.""" + labels: [String!] +} + +"""Autogenerated return type of MergeRequestCreate""" +type MergeRequestCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Represents the Geo sync and verification state of a Merge Request diff""" +type MergeRequestDiffRegistry { + """Timestamp when the MergeRequestDiffRegistry was created""" + createdAt: Time + + """ID of the MergeRequestDiffRegistry""" + id: ID! + + """Error message during sync of the MergeRequestDiffRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the MergeRequestDiffRegistry + """ + lastSyncedAt: Time + + """ID of the Merge Request diff.""" + mergeRequestDiffId: ID! + + """Timestamp after which the MergeRequestDiffRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the MergeRequestDiffRegistry + """ + retryCount: Int + + """Sync state of the MergeRequestDiffRegistry""" + state: RegistryState + + """Timestamp after which the MergeRequestDiffRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the MergeRequestDiffRegistry + """ + verifiedAt: Time +} + +"""The connection type for MergeRequestDiffRegistry.""" +type MergeRequestDiffRegistryConnection { + """A list of edges.""" + edges: [MergeRequestDiffRegistryEdge] + + """A list of nodes.""" + nodes: [MergeRequestDiffRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestDiffRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestDiffRegistry +} + +"""An edge in a connection.""" +type MergeRequestEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequest +} + +""" +A `MergeRequestID` is a global ID. It is encoded as a string. + +An example `MergeRequestID` is: `"gid://gitlab/MergeRequest/1"`. +""" +scalar MergeRequestID + +"""New state to apply to a merge request.""" +enum MergeRequestNewState { + """Open the merge request if it is closed.""" + OPEN + + """Close the merge request if it is open.""" + CLOSED +} + +"""A user participating in a merge request.""" +type MergeRequestParticipant implements User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """Details of this user's interactions with the merge request.""" + mergeRequestInteraction: UserMergeRequestInteraction + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +"""The connection type for MergeRequestParticipant.""" +type MergeRequestParticipantConnection { + """A list of edges.""" + edges: [MergeRequestParticipantEdge] + + """A list of nodes.""" + nodes: [MergeRequestParticipant] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestParticipantEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestParticipant +} + +"""Check permissions for the current user on a merge request""" +type MergeRequestPermissions { + """Indicates the user can perform `admin_merge_request` on this resource""" + adminMergeRequest: Boolean! + + """Indicates the user can perform `can_merge` on this resource""" + canMerge: Boolean! + + """ + Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource + """ + cherryPickOnCurrentMergeRequest: Boolean! + + """Indicates the user can perform `create_note` on this resource""" + createNote: Boolean! + + """ + Indicates the user can perform `push_to_source_branch` on this resource + """ + pushToSourceBranch: Boolean! + + """Indicates the user can perform `read_merge_request` on this resource""" + readMergeRequest: Boolean! + + """Indicates the user can perform `remove_source_branch` on this resource""" + removeSourceBranch: Boolean! + + """ + Indicates the user can perform `revert_on_current_merge_request` on this resource + """ + revertOnCurrentMergeRequest: Boolean! + + """Indicates the user can perform `update_merge_request` on this resource""" + updateMergeRequest: Boolean! +} + +"""A user assigned to a merge request as a reviewer.""" +type MergeRequestReviewer implements User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """Details of this user's interactions with the merge request.""" + mergeRequestInteraction: UserMergeRequestInteraction + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +"""The connection type for MergeRequestReviewer.""" +type MergeRequestReviewerConnection { + """A list of edges.""" + edges: [MergeRequestReviewerEdge] + + """A list of nodes.""" + nodes: [MergeRequestReviewer] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MergeRequestReviewerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MergeRequestReviewer +} + +"""Autogenerated input type of MergeRequestReviewerRereview""" +input MergeRequestReviewerRereviewInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + User ID for the user that has been requested for a new review. + + """ + userId: UserID! +} + +"""Autogenerated return type of MergeRequestReviewerRereview""" +type MergeRequestReviewerRereviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""State of a review of a GitLab merge request.""" +enum MergeRequestReviewState { + """The merge request is unreviewed.""" + UNREVIEWED + + """The merge request is reviewed.""" + REVIEWED +} + +"""Autogenerated input type of MergeRequestSetAssignees""" +input MergeRequestSetAssigneesInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Usernames to assign to the resource. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of MergeRequestSetAssignees""" +type MergeRequestSetAssigneesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetDraft""" +input MergeRequestSetDraftInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Whether or not to set the merge request as a draft. + + """ + draft: Boolean! +} + +"""Autogenerated return type of MergeRequestSetDraft""" +type MergeRequestSetDraftPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetLabels""" +input MergeRequestSetLabelsInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Label IDs to set. Replaces existing labels by default. + + """ + labelIds: [LabelID!]! + + """ + Changes the operation mode. Defaults to REPLACE. + + """ + operationMode: MutationOperationMode +} + +"""Autogenerated return type of MergeRequestSetLabels""" +type MergeRequestSetLabelsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetLocked""" +input MergeRequestSetLockedInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Whether or not to lock the merge request. + + """ + locked: Boolean! +} + +"""Autogenerated return type of MergeRequestSetLocked""" +type MergeRequestSetLockedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetMilestone""" +input MergeRequestSetMilestoneInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Milestone to assign to the merge request. + + """ + milestoneId: MilestoneID +} + +"""Autogenerated return type of MergeRequestSetMilestone""" +type MergeRequestSetMilestonePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetReviewers""" +input MergeRequestSetReviewersInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Usernames of reviewers to assign. Replaces existing reviewers by default. + """ + reviewerUsernames: [String!]! + + """Operation to perform. Defaults to REPLACE.""" + operationMode: MutationOperationMode = REPLACE +} + +"""Autogenerated return type of MergeRequestSetReviewers""" +type MergeRequestSetReviewersPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Autogenerated input type of MergeRequestSetSubscription""" +input MergeRequestSetSubscriptionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Desired state of the subscription.""" + subscribedState: Boolean! + + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! +} + +"""Autogenerated return type of MergeRequestSetSubscription""" +type MergeRequestSetSubscriptionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Values for sorting merge requests""" +enum MergeRequestSort { + """Merge time by ascending order.""" + MERGED_AT_ASC + + """Merge time by descending order.""" + MERGED_AT_DESC + + """Closed time by ascending order.""" + CLOSED_AT_ASC + + """Closed time by descending order.""" + CLOSED_AT_DESC + + """Title by ascending order.""" + TITLE_ASC + + """Title by descending order.""" + TITLE_DESC + + """Priority by ascending order.""" + PRIORITY_ASC + + """Priority by descending order.""" + PRIORITY_DESC + + """Label priority by ascending order.""" + LABEL_PRIORITY_ASC + + """Label priority by descending order.""" + LABEL_PRIORITY_DESC + + """Milestone due date by ascending order.""" + MILESTONE_DUE_ASC + + """Milestone due date by descending order.""" + MILESTONE_DUE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +input MergeRequestsResolverNegatedParams { + """ + Array of label names. All resolved merge requests will not have these labels. + """ + labels: [String!] + + """Title of the milestone.""" + milestoneTitle: String +} + +"""State of a GitLab merge request""" +enum MergeRequestState { + """Merge request has been merged.""" + merged + + """In open state.""" + opened + + """In closed state.""" + closed + + """Discussion has been locked.""" + locked + + """All available.""" + all +} + +"""Autogenerated input type of MergeRequestUpdate""" +input MergeRequestUpdateInput { + """Project the merge request to mutate is in.""" + projectPath: ID! + + """IID of the merge request to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Title of the merge request.""" + title: String + + """Target branch of the merge request.""" + targetBranch: String + + """ + Description of the merge request (Markdown rendered as HTML for caching). + """ + description: String + + """Action to perform to change the state.""" + state: MergeRequestNewState +} + +"""Autogenerated return type of MergeRequestUpdate""" +type MergeRequestUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Merge request after mutation.""" + mergeRequest: MergeRequest +} + +"""Representation of whether a GitLab merge request can be merged.""" +enum MergeStatus { + """Merge status has not been checked.""" + UNCHECKED + + """Currently checking for mergeability.""" + CHECKING + + """There are no conflicts between the source and target branches.""" + CAN_BE_MERGED + + """There are conflicts between the source and target branches.""" + CANNOT_BE_MERGED + + """Currently unchecked. The previous state was `CANNOT_BE_MERGED`.""" + CANNOT_BE_MERGED_RECHECK +} + +enum MergeStrategyEnum { + """Use the merge_train merge strategy.""" + MERGE_TRAIN + + """Use the add_to_merge_train_when_pipeline_succeeds merge strategy.""" + ADD_TO_MERGE_TRAIN_WHEN_PIPELINE_SUCCEEDS + + """Use the merge_when_pipeline_succeeds merge strategy.""" + MERGE_WHEN_PIPELINE_SUCCEEDS +} + +type Metadata { + """Metadata about KAS.""" + kas: Kas! + + """Revision.""" + revision: String! + + """Version.""" + version: String! +} + +"""Represents a metric image upload""" +type MetricImage { + """File name of the metric image.""" + fileName: String + + """File path of the metric image.""" + filePath: String + + """ID of the metric upload.""" + id: ID! + + """Internal ID of the metric upload.""" + iid: ID! + + """URL of the metric source.""" + url: String! +} + +type MetricsDashboard { + """Annotations added to the dashboard.""" + annotations( + """ + Timestamp marking date and time from which annotations need to be fetched. + """ + from: Time! + + """ + Timestamp marking date and time to which annotations need to be fetched. + """ + to: Time + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MetricsDashboardAnnotationConnection + + """Path to a file with the dashboard definition.""" + path: String + + """Dashboard schema validation warnings.""" + schemaValidationWarnings: [String!] +} + +type MetricsDashboardAnnotation { + """Description of the annotation.""" + description: String + + """Timestamp marking end of annotated time span.""" + endingAt: Time + + """ID of the annotation.""" + id: ID! + + """ID of a dashboard panel to which the annotation should be scoped.""" + panelId: String + + """Timestamp marking start of annotated time span.""" + startingAt: Time +} + +"""The connection type for MetricsDashboardAnnotation.""" +type MetricsDashboardAnnotationConnection { + """A list of edges.""" + edges: [MetricsDashboardAnnotationEdge] + + """A list of nodes.""" + nodes: [MetricsDashboardAnnotation] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MetricsDashboardAnnotationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: MetricsDashboardAnnotation +} + +""" +A `MetricsDashboardAnnotationID` is a global ID. It is encoded as a string. + +An example `MetricsDashboardAnnotationID` is: `"gid://gitlab/Metrics::Dashboard::Annotation/1"`. +""" +scalar MetricsDashboardAnnotationID + +"""Represents a milestone""" +type Milestone implements TimeboxReportInterface { + """Timestamp of milestone creation.""" + createdAt: Time! + + """Description of the milestone.""" + description: String + + """Timestamp of the milestone due date.""" + dueDate: Time + + """ + Expired state of the milestone (a milestone is expired when the due date is + past the current date). Defaults to `false` when due date has not been set. + """ + expired: Boolean! + + """Indicates if milestone is at group level.""" + groupMilestone: Boolean! + + """ID of the milestone.""" + id: ID! + + """Internal ID of the milestone.""" + iid: ID! + + """Indicates if milestone is at project level.""" + projectMilestone: Boolean! + + """Releases associated with this milestone.""" + releases( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseConnection + + """Historically accurate report about the timebox.""" + report( + """ + Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`. + """ + fullPath: String + ): TimeboxReport + + """Timestamp of the milestone start date.""" + startDate: Time + + """State of the milestone.""" + state: MilestoneStateEnum! + + """Milestone statistics.""" + stats: MilestoneStats + + """Indicates if milestone is at subgroup level.""" + subgroupMilestone: Boolean! + + """Title of the milestone.""" + title: String! + + """Timestamp of last milestone update.""" + updatedAt: Time! + + """Web path of the milestone.""" + webPath: String! +} + +"""The connection type for Milestone.""" +type MilestoneConnection { + """A list of edges.""" + edges: [MilestoneEdge] + + """A list of nodes.""" + nodes: [Milestone] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type MilestoneEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Milestone +} + +""" +A `MilestoneID` is a global ID. It is encoded as a string. + +An example `MilestoneID` is: `"gid://gitlab/Milestone/1"`. +""" +scalar MilestoneID + +"""Values for sorting milestones""" +enum MilestoneSort { + """Milestone due date by ascending order.""" + DUE_DATE_ASC + + """Milestone due date by descending order.""" + DUE_DATE_DESC + + """ + Group milestones in this order: non-expired milestones with due dates, + non-expired milestones without due dates and expired milestones then sort by + due date in ascending order. + """ + EXPIRED_LAST_DUE_DATE_ASC + + """ + Group milestones in this order: non-expired milestones with due dates, + non-expired milestones without due dates and expired milestones then sort by + due date in descending order. + """ + EXPIRED_LAST_DUE_DATE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Current state of milestone""" +enum MilestoneStateEnum { + """Milestone is currently active.""" + active + + """Milestone is closed.""" + closed +} + +"""Contains statistics about a milestone""" +type MilestoneStats { + """Number of closed issues associated with the milestone.""" + closedIssuesCount: Int + + """Total number of issues associated with the milestone.""" + totalIssuesCount: Int +} + +"""Milestone ID wildcard values""" +enum MilestoneWildcardId { + """No milestone is assigned.""" + NONE + + """Milestone is assigned.""" + ANY + + """Milestone assigned is open and started (start date <= today).""" + STARTED + + """Milestone assigned is due in the future (due date > today).""" + UPCOMING +} + +"""The position to which the adjacent object should be moved""" +enum MoveType { + """Adjacent object is moved before the object that is being moved.""" + before + + """Adjacent object is moved after the object that is being moved.""" + after +} + +type Mutation { + addProjectToSecurityDashboard( + """Parameters for AddProjectToSecurityDashboard""" + input: AddProjectToSecurityDashboardInput! + ): AddProjectToSecurityDashboardPayload + adminSidekiqQueuesDeleteJobs( + """Parameters for AdminSidekiqQueuesDeleteJobs""" + input: AdminSidekiqQueuesDeleteJobsInput! + ): AdminSidekiqQueuesDeleteJobsPayload + alertSetAssignees( + """Parameters for AlertSetAssignees""" + input: AlertSetAssigneesInput! + ): AlertSetAssigneesPayload + alertTodoCreate( + """Parameters for AlertTodoCreate""" + input: AlertTodoCreateInput! + ): AlertTodoCreatePayload + apiFuzzingCiConfigurationCreate( + """Parameters for ApiFuzzingCiConfigurationCreate""" + input: ApiFuzzingCiConfigurationCreateInput! + ): ApiFuzzingCiConfigurationCreatePayload @deprecated(reason: "The configuration snippet is now generated client-side. Deprecated in 15.1.") + artifactDestroy( + """Parameters for ArtifactDestroy""" + input: ArtifactDestroyInput! + ): ArtifactDestroyPayload + auditEventsStreamingHeadersCreate( + """Parameters for AuditEventsStreamingHeadersCreate""" + input: AuditEventsStreamingHeadersCreateInput! + ): AuditEventsStreamingHeadersCreatePayload + auditEventsStreamingHeadersDestroy( + """Parameters for AuditEventsStreamingHeadersDestroy""" + input: AuditEventsStreamingHeadersDestroyInput! + ): AuditEventsStreamingHeadersDestroyPayload + auditEventsStreamingHeadersUpdate( + """Parameters for AuditEventsStreamingHeadersUpdate""" + input: AuditEventsStreamingHeadersUpdateInput! + ): AuditEventsStreamingHeadersUpdatePayload + awardEmojiAdd( + """Parameters for AwardEmojiAdd""" + input: AwardEmojiAddInput! + ): AwardEmojiAddPayload + awardEmojiRemove( + """Parameters for AwardEmojiRemove""" + input: AwardEmojiRemoveInput! + ): AwardEmojiRemovePayload + awardEmojiToggle( + """Parameters for AwardEmojiToggle""" + input: AwardEmojiToggleInput! + ): AwardEmojiTogglePayload + boardEpicCreate( + """Parameters for BoardEpicCreate""" + input: BoardEpicCreateInput! + ): BoardEpicCreatePayload + boardListCreate( + """Parameters for BoardListCreate""" + input: BoardListCreateInput! + ): BoardListCreatePayload + boardListUpdateLimitMetrics( + """Parameters for BoardListUpdateLimitMetrics""" + input: BoardListUpdateLimitMetricsInput! + ): BoardListUpdateLimitMetricsPayload + + """**BETA** This endpoint is subject to change without notice.""" + bulkEnableDevopsAdoptionNamespaces( + """Parameters for BulkEnableDevopsAdoptionNamespaces""" + input: BulkEnableDevopsAdoptionNamespacesInput! + ): BulkEnableDevopsAdoptionNamespacesPayload + bulkRunnerDelete( + """Parameters for BulkRunnerDelete""" + input: BulkRunnerDeleteInput! + ): BulkRunnerDeletePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + ciCdSettingsUpdate( + """Parameters for CiCdSettingsUpdate""" + input: CiCdSettingsUpdateInput! + ): CiCdSettingsUpdatePayload @deprecated(reason: "This was renamed. Please use `ProjectCiCdSettingsUpdate`. Deprecated in 15.0.") + ciJobTokenScopeAddProject( + """Parameters for CiJobTokenScopeAddProject""" + input: CiJobTokenScopeAddProjectInput! + ): CiJobTokenScopeAddProjectPayload + ciJobTokenScopeRemoveProject( + """Parameters for CiJobTokenScopeRemoveProject""" + input: CiJobTokenScopeRemoveProjectInput! + ): CiJobTokenScopeRemoveProjectPayload + clusterAgentDelete( + """Parameters for ClusterAgentDelete""" + input: ClusterAgentDeleteInput! + ): ClusterAgentDeletePayload + clusterAgentTokenCreate( + """Parameters for ClusterAgentTokenCreate""" + input: ClusterAgentTokenCreateInput! + ): ClusterAgentTokenCreatePayload + clusterAgentTokenRevoke( + """Parameters for ClusterAgentTokenRevoke""" + input: ClusterAgentTokenRevokeInput! + ): ClusterAgentTokenRevokePayload + commitCreate( + """Parameters for CommitCreate""" + input: CommitCreateInput! + ): CommitCreatePayload + + """ + Configure Container Scanning for a project by enabling Container Scanning in a new or modified + `.gitlab-ci.yml` file in a new branch. The new branch and a URL to + create a merge request are part of the response. + + """ + configureContainerScanning( + """Parameters for ConfigureContainerScanning""" + input: ConfigureContainerScanningInput! + ): ConfigureContainerScanningPayload + + """ + Configure Dependency Scanning for a project by enabling Dependency Scanning in a new or modified + `.gitlab-ci.yml` file in a new branch. The new branch and a URL to + create a Merge Request are a part of the response. + + """ + configureDependencyScanning( + """Parameters for ConfigureDependencyScanning""" + input: ConfigureDependencyScanningInput! + ): ConfigureDependencyScanningPayload + + """ + Configure SAST for a project by enabling SAST in a new or modified + `.gitlab-ci.yml` file in a new branch. The new branch and a URL to + create a Merge Request are a part of the response. + + """ + configureSast( + """Parameters for ConfigureSast""" + input: ConfigureSastInput! + ): ConfigureSastPayload + + """ + Enable SAST IaC for a project in a new or + modified `.gitlab-ci.yml` file in a new branch. The new + branch and a URL to create a merge request are a part of the + response. + + """ + configureSastIac( + """Parameters for ConfigureSastIac""" + input: ConfigureSastIacInput! + ): ConfigureSastIacPayload + + """ + Configure Secret Detection for a project by enabling Secret Detection + in a new or modified `.gitlab-ci.yml` file in a new branch. The new + branch and a URL to create a Merge Request are a part of the + response. + + """ + configureSecretDetection( + """Parameters for ConfigureSecretDetection""" + input: ConfigureSecretDetectionInput! + ): ConfigureSecretDetectionPayload + corpusCreate( + """Parameters for CorpusCreate""" + input: CorpusCreateInput! + ): CorpusCreatePayload + createAlertIssue( + """Parameters for CreateAlertIssue""" + input: CreateAlertIssueInput! + ): CreateAlertIssuePayload + createAnnotation( + """Parameters for CreateAnnotation""" + input: CreateAnnotationInput! + ): CreateAnnotationPayload + createBoard( + """Parameters for CreateBoard""" + input: CreateBoardInput! + ): CreateBoardPayload + createBranch( + """Parameters for CreateBranch""" + input: CreateBranchInput! + ): CreateBranchPayload + createClusterAgent( + """Parameters for CreateClusterAgent""" + input: CreateClusterAgentInput! + ): CreateClusterAgentPayload + createComplianceFramework( + """Parameters for CreateComplianceFramework""" + input: CreateComplianceFrameworkInput! + ): CreateComplianceFrameworkPayload + createCustomEmoji( + """Parameters for CreateCustomEmoji""" + input: CreateCustomEmojiInput! + ): CreateCustomEmojiPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.") + createDiffNote( + """Parameters for CreateDiffNote""" + input: CreateDiffNoteInput! + ): CreateDiffNotePayload + createEpic( + """Parameters for CreateEpic""" + input: CreateEpicInput! + ): CreateEpicPayload + createImageDiffNote( + """Parameters for CreateImageDiffNote""" + input: CreateImageDiffNoteInput! + ): CreateImageDiffNotePayload + createIssue( + """Parameters for CreateIssue""" + input: CreateIssueInput! + ): CreateIssuePayload + createIteration( + """Parameters for CreateIteration""" + input: CreateIterationInput! + ): CreateIterationPayload @deprecated(reason: "Use iterationCreate. Deprecated in 14.0.") + + """ + Creates a Note. + If the body of the Note contains only quick actions, + the Note will be destroyed during an update, and no Note will be + returned. + + """ + createNote( + """Parameters for CreateNote""" + input: CreateNoteInput! + ): CreateNotePayload + createRequirement( + """Parameters for CreateRequirement""" + input: CreateRequirementInput! + ): CreateRequirementPayload + createSnippet( + """Parameters for CreateSnippet""" + input: CreateSnippetInput! + ): CreateSnippetPayload + createTestCase( + """Parameters for CreateTestCase""" + input: CreateTestCaseInput! + ): CreateTestCasePayload + customerRelationsContactCreate( + """Parameters for CustomerRelationsContactCreate""" + input: CustomerRelationsContactCreateInput! + ): CustomerRelationsContactCreatePayload + customerRelationsContactUpdate( + """Parameters for CustomerRelationsContactUpdate""" + input: CustomerRelationsContactUpdateInput! + ): CustomerRelationsContactUpdatePayload + customerRelationsOrganizationCreate( + """Parameters for CustomerRelationsOrganizationCreate""" + input: CustomerRelationsOrganizationCreateInput! + ): CustomerRelationsOrganizationCreatePayload + customerRelationsOrganizationUpdate( + """Parameters for CustomerRelationsOrganizationUpdate""" + input: CustomerRelationsOrganizationUpdateInput! + ): CustomerRelationsOrganizationUpdatePayload + dastOnDemandScanCreate( + """Parameters for DastOnDemandScanCreate""" + input: DastOnDemandScanCreateInput! + ): DastOnDemandScanCreatePayload + dastProfileCreate( + """Parameters for DastProfileCreate""" + input: DastProfileCreateInput! + ): DastProfileCreatePayload + dastProfileDelete( + """Parameters for DastProfileDelete""" + input: DastProfileDeleteInput! + ): DastProfileDeletePayload + dastProfileRun( + """Parameters for DastProfileRun""" + input: DastProfileRunInput! + ): DastProfileRunPayload + dastProfileUpdate( + """Parameters for DastProfileUpdate""" + input: DastProfileUpdateInput! + ): DastProfileUpdatePayload + dastScannerProfileCreate( + """Parameters for DastScannerProfileCreate""" + input: DastScannerProfileCreateInput! + ): DastScannerProfileCreatePayload + dastScannerProfileDelete( + """Parameters for DastScannerProfileDelete""" + input: DastScannerProfileDeleteInput! + ): DastScannerProfileDeletePayload + dastScannerProfileUpdate( + """Parameters for DastScannerProfileUpdate""" + input: DastScannerProfileUpdateInput! + ): DastScannerProfileUpdatePayload + dastSiteProfileCreate( + """Parameters for DastSiteProfileCreate""" + input: DastSiteProfileCreateInput! + ): DastSiteProfileCreatePayload + dastSiteProfileDelete( + """Parameters for DastSiteProfileDelete""" + input: DastSiteProfileDeleteInput! + ): DastSiteProfileDeletePayload + dastSiteProfileUpdate( + """Parameters for DastSiteProfileUpdate""" + input: DastSiteProfileUpdateInput! + ): DastSiteProfileUpdatePayload + dastSiteTokenCreate( + """Parameters for DastSiteTokenCreate""" + input: DastSiteTokenCreateInput! + ): DastSiteTokenCreatePayload + dastSiteValidationCreate( + """Parameters for DastSiteValidationCreate""" + input: DastSiteValidationCreateInput! + ): DastSiteValidationCreatePayload + dastSiteValidationRevoke( + """Parameters for DastSiteValidationRevoke""" + input: DastSiteValidationRevokeInput! + ): DastSiteValidationRevokePayload + deleteAnnotation( + """Parameters for DeleteAnnotation""" + input: DeleteAnnotationInput! + ): DeleteAnnotationPayload + designManagementDelete( + """Parameters for DesignManagementDelete""" + input: DesignManagementDeleteInput! + ): DesignManagementDeletePayload + designManagementMove( + """Parameters for DesignManagementMove""" + input: DesignManagementMoveInput! + ): DesignManagementMovePayload + designManagementUpload( + """Parameters for DesignManagementUpload""" + input: DesignManagementUploadInput! + ): DesignManagementUploadPayload + destroyBoard( + """Parameters for DestroyBoard""" + input: DestroyBoardInput! + ): DestroyBoardPayload + destroyBoardList( + """Parameters for DestroyBoardList""" + input: DestroyBoardListInput! + ): DestroyBoardListPayload + destroyComplianceFramework( + """Parameters for DestroyComplianceFramework""" + input: DestroyComplianceFrameworkInput! + ): DestroyComplianceFrameworkPayload + destroyContainerRepository( + """Parameters for DestroyContainerRepository""" + input: DestroyContainerRepositoryInput! + ): DestroyContainerRepositoryPayload + destroyContainerRepositoryTags( + """Parameters for DestroyContainerRepositoryTags""" + input: DestroyContainerRepositoryTagsInput! + ): DestroyContainerRepositoryTagsPayload + destroyCustomEmoji( + """Parameters for DestroyCustomEmoji""" + input: DestroyCustomEmojiInput! + ): DestroyCustomEmojiPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 13.6.") + destroyEpicBoard( + """Parameters for DestroyEpicBoard""" + input: DestroyEpicBoardInput! + ): DestroyEpicBoardPayload + destroyNote( + """Parameters for DestroyNote""" + input: DestroyNoteInput! + ): DestroyNotePayload + destroyPackage( + """Parameters for DestroyPackage""" + input: DestroyPackageInput! + ): DestroyPackagePayload + destroyPackageFile( + """Parameters for DestroyPackageFile""" + input: DestroyPackageFileInput! + ): DestroyPackageFilePayload + destroyPackageFiles( + """Parameters for DestroyPackageFiles""" + input: DestroyPackageFilesInput! + ): DestroyPackageFilesPayload + destroySnippet( + """Parameters for DestroySnippet""" + input: DestroySnippetInput! + ): DestroySnippetPayload + + """**BETA** This endpoint is subject to change without notice.""" + disableDevopsAdoptionNamespace( + """Parameters for DisableDevopsAdoptionNamespace""" + input: DisableDevopsAdoptionNamespaceInput! + ): DisableDevopsAdoptionNamespacePayload + + """Toggles the resolved state of a discussion""" + discussionToggleResolve( + """Parameters for DiscussionToggleResolve""" + input: DiscussionToggleResolveInput! + ): DiscussionToggleResolvePayload + + """ + A mutation that does not perform any changes. + + This is expected to be used for testing of endpoints, to verify + that a user has mutation access. + + """ + echoCreate( + """Parameters for EchoCreate""" + input: EchoCreateInput! + ): EchoCreatePayload + + """**BETA** This endpoint is subject to change without notice.""" + enableDevopsAdoptionNamespace( + """Parameters for EnableDevopsAdoptionNamespace""" + input: EnableDevopsAdoptionNamespaceInput! + ): EnableDevopsAdoptionNamespacePayload + + """ + **Deprecated** This endpoint is planned to be removed along with + certificate-based clusters. [See this + epic](https://gitlab.com/groups/gitlab-org/configure/-/epics/8) for more information. + """ + environmentsCanaryIngressUpdate( + """Parameters for EnvironmentsCanaryIngressUpdate""" + input: EnvironmentsCanaryIngressUpdateInput! + ): EnvironmentsCanaryIngressUpdatePayload + epicAddIssue( + """Parameters for EpicAddIssue""" + input: EpicAddIssueInput! + ): EpicAddIssuePayload + epicBoardCreate( + """Parameters for EpicBoardCreate""" + input: EpicBoardCreateInput! + ): EpicBoardCreatePayload + epicBoardListCreate( + """Parameters for EpicBoardListCreate""" + input: EpicBoardListCreateInput! + ): EpicBoardListCreatePayload + + """Destroys an epic board list.""" + epicBoardListDestroy( + """Parameters for EpicBoardListDestroy""" + input: EpicBoardListDestroyInput! + ): EpicBoardListDestroyPayload + epicBoardUpdate( + """Parameters for EpicBoardUpdate""" + input: EpicBoardUpdateInput! + ): EpicBoardUpdatePayload + epicMoveList( + """Parameters for EpicMoveList""" + input: EpicMoveListInput! + ): EpicMoveListPayload + epicSetSubscription( + """Parameters for EpicSetSubscription""" + input: EpicSetSubscriptionInput! + ): EpicSetSubscriptionPayload + epicTreeReorder( + """Parameters for EpicTreeReorder""" + input: EpicTreeReorderInput! + ): EpicTreeReorderPayload + escalationPolicyCreate( + """Parameters for EscalationPolicyCreate""" + input: EscalationPolicyCreateInput! + ): EscalationPolicyCreatePayload + escalationPolicyDestroy( + """Parameters for EscalationPolicyDestroy""" + input: EscalationPolicyDestroyInput! + ): EscalationPolicyDestroyPayload + escalationPolicyUpdate( + """Parameters for EscalationPolicyUpdate""" + input: EscalationPolicyUpdateInput! + ): EscalationPolicyUpdatePayload + exportRequirements( + """Parameters for ExportRequirements""" + input: ExportRequirementsInput! + ): ExportRequirementsPayload + externalAuditEventDestinationCreate( + """Parameters for ExternalAuditEventDestinationCreate""" + input: ExternalAuditEventDestinationCreateInput! + ): ExternalAuditEventDestinationCreatePayload + externalAuditEventDestinationDestroy( + """Parameters for ExternalAuditEventDestinationDestroy""" + input: ExternalAuditEventDestinationDestroyInput! + ): ExternalAuditEventDestinationDestroyPayload + externalAuditEventDestinationUpdate( + """Parameters for ExternalAuditEventDestinationUpdate""" + input: ExternalAuditEventDestinationUpdateInput! + ): ExternalAuditEventDestinationUpdatePayload + gitlabSubscriptionActivate( + """Parameters for GitlabSubscriptionActivate""" + input: GitlabSubscriptionActivateInput! + ): GitlabSubscriptionActivatePayload + groupUpdate( + """Parameters for GroupUpdate""" + input: GroupUpdateInput! + ): GroupUpdatePayload + httpIntegrationCreate( + """Parameters for HttpIntegrationCreate""" + input: HttpIntegrationCreateInput! + ): HttpIntegrationCreatePayload + httpIntegrationDestroy( + """Parameters for HttpIntegrationDestroy""" + input: HttpIntegrationDestroyInput! + ): HttpIntegrationDestroyPayload + httpIntegrationResetToken( + """Parameters for HttpIntegrationResetToken""" + input: HttpIntegrationResetTokenInput! + ): HttpIntegrationResetTokenPayload + httpIntegrationUpdate( + """Parameters for HttpIntegrationUpdate""" + input: HttpIntegrationUpdateInput! + ): HttpIntegrationUpdatePayload + issuableResourceLinkCreate( + """Parameters for IssuableResourceLinkCreate""" + input: IssuableResourceLinkCreateInput! + ): IssuableResourceLinkCreatePayload + issuableResourceLinkDestroy( + """Parameters for IssuableResourceLinkDestroy""" + input: IssuableResourceLinkDestroyInput! + ): IssuableResourceLinkDestroyPayload + issueMove( + """Parameters for IssueMove""" + input: IssueMoveInput! + ): IssueMovePayload + issueMoveList( + """Parameters for IssueMoveList""" + input: IssueMoveListInput! + ): IssueMoveListPayload + issueSetAssignees( + """Parameters for IssueSetAssignees""" + input: IssueSetAssigneesInput! + ): IssueSetAssigneesPayload + issueSetConfidential( + """Parameters for IssueSetConfidential""" + input: IssueSetConfidentialInput! + ): IssueSetConfidentialPayload + issueSetCrmContacts( + """Parameters for IssueSetCrmContacts""" + input: IssueSetCrmContactsInput! + ): IssueSetCrmContactsPayload + issueSetDueDate( + """Parameters for IssueSetDueDate""" + input: IssueSetDueDateInput! + ): IssueSetDueDatePayload + issueSetEpic( + """Parameters for IssueSetEpic""" + input: IssueSetEpicInput! + ): IssueSetEpicPayload + issueSetEscalationPolicy( + """Parameters for IssueSetEscalationPolicy""" + input: IssueSetEscalationPolicyInput! + ): IssueSetEscalationPolicyPayload + issueSetEscalationStatus( + """Parameters for IssueSetEscalationStatus""" + input: IssueSetEscalationStatusInput! + ): IssueSetEscalationStatusPayload + issueSetIteration( + """Parameters for IssueSetIteration""" + input: IssueSetIterationInput! + ): IssueSetIterationPayload + issueSetLocked( + """Parameters for IssueSetLocked""" + input: IssueSetLockedInput! + ): IssueSetLockedPayload + issueSetSeverity( + """Parameters for IssueSetSeverity""" + input: IssueSetSeverityInput! + ): IssueSetSeverityPayload + issueSetSubscription( + """Parameters for IssueSetSubscription""" + input: IssueSetSubscriptionInput! + ): IssueSetSubscriptionPayload + issueSetWeight( + """Parameters for IssueSetWeight""" + input: IssueSetWeightInput! + ): IssueSetWeightPayload + iterationCadenceCreate( + """Parameters for IterationCadenceCreate""" + input: IterationCadenceCreateInput! + ): IterationCadenceCreatePayload + iterationCadenceDestroy( + """Parameters for IterationCadenceDestroy""" + input: IterationCadenceDestroyInput! + ): IterationCadenceDestroyPayload + iterationCadenceUpdate( + """Parameters for IterationCadenceUpdate""" + input: IterationCadenceUpdateInput! + ): IterationCadenceUpdatePayload + iterationCreate( + """Parameters for iterationCreate""" + input: iterationCreateInput! + ): iterationCreatePayload + iterationDelete( + """Parameters for IterationDelete""" + input: IterationDeleteInput! + ): IterationDeletePayload + jiraImportStart( + """Parameters for JiraImportStart""" + input: JiraImportStartInput! + ): JiraImportStartPayload + jiraImportUsers( + """Parameters for JiraImportUsers""" + input: JiraImportUsersInput! + ): JiraImportUsersPayload + jobArtifactsDestroy( + """Parameters for JobArtifactsDestroy""" + input: JobArtifactsDestroyInput! + ): JobArtifactsDestroyPayload + jobCancel( + """Parameters for JobCancel""" + input: JobCancelInput! + ): JobCancelPayload + jobPlay( + """Parameters for JobPlay""" + input: JobPlayInput! + ): JobPlayPayload + jobRetry( + """Parameters for JobRetry""" + input: JobRetryInput! + ): JobRetryPayload + jobUnschedule( + """Parameters for JobUnschedule""" + input: JobUnscheduleInput! + ): JobUnschedulePayload + labelCreate( + """Parameters for LabelCreate""" + input: LabelCreateInput! + ): LabelCreatePayload + markAsSpamSnippet( + """Parameters for MarkAsSpamSnippet""" + input: MarkAsSpamSnippetInput! + ): MarkAsSpamSnippetPayload + + """ + Accepts a merge request. + When accepted, the source branch will be merged into the target branch, either + immediately if possible, or using one of the automatic merge strategies. + + """ + mergeRequestAccept( + """Parameters for MergeRequestAccept""" + input: MergeRequestAcceptInput! + ): MergeRequestAcceptPayload + mergeRequestCreate( + """Parameters for MergeRequestCreate""" + input: MergeRequestCreateInput! + ): MergeRequestCreatePayload + mergeRequestReviewerRereview( + """Parameters for MergeRequestReviewerRereview""" + input: MergeRequestReviewerRereviewInput! + ): MergeRequestReviewerRereviewPayload + mergeRequestSetAssignees( + """Parameters for MergeRequestSetAssignees""" + input: MergeRequestSetAssigneesInput! + ): MergeRequestSetAssigneesPayload + mergeRequestSetDraft( + """Parameters for MergeRequestSetDraft""" + input: MergeRequestSetDraftInput! + ): MergeRequestSetDraftPayload + mergeRequestSetLabels( + """Parameters for MergeRequestSetLabels""" + input: MergeRequestSetLabelsInput! + ): MergeRequestSetLabelsPayload + mergeRequestSetLocked( + """Parameters for MergeRequestSetLocked""" + input: MergeRequestSetLockedInput! + ): MergeRequestSetLockedPayload + mergeRequestSetMilestone( + """Parameters for MergeRequestSetMilestone""" + input: MergeRequestSetMilestoneInput! + ): MergeRequestSetMilestonePayload + mergeRequestSetReviewers( + """Parameters for MergeRequestSetReviewers""" + input: MergeRequestSetReviewersInput! + ): MergeRequestSetReviewersPayload + mergeRequestSetSubscription( + """Parameters for MergeRequestSetSubscription""" + input: MergeRequestSetSubscriptionInput! + ): MergeRequestSetSubscriptionPayload + + """Update attributes of a merge request""" + mergeRequestUpdate( + """Parameters for MergeRequestUpdate""" + input: MergeRequestUpdateInput! + ): MergeRequestUpdatePayload + namespaceBanDestroy( + """Parameters for NamespaceBanDestroy""" + input: NamespaceBanDestroyInput! + ): NamespaceBanDestroyPayload + namespaceCiCdSettingsUpdate( + """Parameters for NamespaceCiCdSettingsUpdate""" + input: NamespaceCiCdSettingsUpdateInput! + ): NamespaceCiCdSettingsUpdatePayload + namespaceIncreaseStorageTemporarily( + """Parameters for NamespaceIncreaseStorageTemporarily""" + input: NamespaceIncreaseStorageTemporarilyInput! + ): NamespaceIncreaseStorageTemporarilyPayload + oncallRotationCreate( + """Parameters for OncallRotationCreate""" + input: OncallRotationCreateInput! + ): OncallRotationCreatePayload + oncallRotationDestroy( + """Parameters for OncallRotationDestroy""" + input: OncallRotationDestroyInput! + ): OncallRotationDestroyPayload + oncallRotationUpdate( + """Parameters for OncallRotationUpdate""" + input: OncallRotationUpdateInput! + ): OncallRotationUpdatePayload + oncallScheduleCreate( + """Parameters for OncallScheduleCreate""" + input: OncallScheduleCreateInput! + ): OncallScheduleCreatePayload + oncallScheduleDestroy( + """Parameters for OncallScheduleDestroy""" + input: OncallScheduleDestroyInput! + ): OncallScheduleDestroyPayload + oncallScheduleUpdate( + """Parameters for OncallScheduleUpdate""" + input: OncallScheduleUpdateInput! + ): OncallScheduleUpdatePayload + pagesMarkOnboardingComplete( + """Parameters for PagesMarkOnboardingComplete""" + input: PagesMarkOnboardingCompleteInput! + ): PagesMarkOnboardingCompletePayload + pipelineCancel( + """Parameters for PipelineCancel""" + input: PipelineCancelInput! + ): PipelineCancelPayload + pipelineDestroy( + """Parameters for PipelineDestroy""" + input: PipelineDestroyInput! + ): PipelineDestroyPayload + pipelineRetry( + """Parameters for PipelineRetry""" + input: PipelineRetryInput! + ): PipelineRetryPayload + projectCiCdSettingsUpdate( + """Parameters for ProjectCiCdSettingsUpdate""" + input: ProjectCiCdSettingsUpdateInput! + ): ProjectCiCdSettingsUpdatePayload + + """Assign (or unset) a compliance framework to a project.""" + projectSetComplianceFramework( + """Parameters for ProjectSetComplianceFramework""" + input: ProjectSetComplianceFrameworkInput! + ): ProjectSetComplianceFrameworkPayload + projectSetLocked( + """Parameters for ProjectSetLocked""" + input: ProjectSetLockedInput! + ): ProjectSetLockedPayload + prometheusIntegrationCreate( + """Parameters for PrometheusIntegrationCreate""" + input: PrometheusIntegrationCreateInput! + ): PrometheusIntegrationCreatePayload + prometheusIntegrationResetToken( + """Parameters for PrometheusIntegrationResetToken""" + input: PrometheusIntegrationResetTokenInput! + ): PrometheusIntegrationResetTokenPayload + prometheusIntegrationUpdate( + """Parameters for PrometheusIntegrationUpdate""" + input: PrometheusIntegrationUpdateInput! + ): PrometheusIntegrationUpdatePayload + promoteToEpic( + """Parameters for PromoteToEpic""" + input: PromoteToEpicInput! + ): PromoteToEpicPayload + releaseAssetLinkCreate( + """Parameters for ReleaseAssetLinkCreate""" + input: ReleaseAssetLinkCreateInput! + ): ReleaseAssetLinkCreatePayload + releaseAssetLinkDelete( + """Parameters for ReleaseAssetLinkDelete""" + input: ReleaseAssetLinkDeleteInput! + ): ReleaseAssetLinkDeletePayload + releaseAssetLinkUpdate( + """Parameters for ReleaseAssetLinkUpdate""" + input: ReleaseAssetLinkUpdateInput! + ): ReleaseAssetLinkUpdatePayload + releaseCreate( + """Parameters for ReleaseCreate""" + input: ReleaseCreateInput! + ): ReleaseCreatePayload + releaseDelete( + """Parameters for ReleaseDelete""" + input: ReleaseDeleteInput! + ): ReleaseDeletePayload + releaseUpdate( + """Parameters for ReleaseUpdate""" + input: ReleaseUpdateInput! + ): ReleaseUpdatePayload + removeProjectFromSecurityDashboard( + """Parameters for RemoveProjectFromSecurityDashboard""" + input: RemoveProjectFromSecurityDashboardInput! + ): RemoveProjectFromSecurityDashboardPayload + + """ + Repositions a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`) + """ + repositionImageDiffNote( + """Parameters for RepositionImageDiffNote""" + input: RepositionImageDiffNoteInput! + ): RepositionImageDiffNotePayload + runnerDelete( + """Parameters for RunnerDelete""" + input: RunnerDeleteInput! + ): RunnerDeletePayload + runnerUpdate( + """Parameters for RunnerUpdate""" + input: RunnerUpdateInput! + ): RunnerUpdatePayload + runnersRegistrationTokenReset( + """Parameters for RunnersRegistrationTokenReset""" + input: RunnersRegistrationTokenResetInput! + ): RunnersRegistrationTokenResetPayload + savedReplyCreate( + """Parameters for SavedReplyCreate""" + input: SavedReplyCreateInput! + ): SavedReplyCreatePayload + savedReplyDestroy( + """Parameters for SavedReplyDestroy""" + input: SavedReplyDestroyInput! + ): SavedReplyDestroyPayload + savedReplyUpdate( + """Parameters for SavedReplyUpdate""" + input: SavedReplyUpdateInput! + ): SavedReplyUpdatePayload + + """ + Commits the `policy_yaml` content to the assigned security policy project for the given project (`full_path`) + """ + scanExecutionPolicyCommit( + """Parameters for ScanExecutionPolicyCommit""" + input: ScanExecutionPolicyCommitInput! + ): ScanExecutionPolicyCommitPayload + securityFindingCreateIssue( + """Parameters for SecurityFindingCreateIssue""" + input: SecurityFindingCreateIssueInput! + ): SecurityFindingCreateIssuePayload + securityFindingDismiss( + """Parameters for SecurityFindingDismiss""" + input: SecurityFindingDismissInput! + ): SecurityFindingDismissPayload + + """ + Assigns the specified project(`security_policy_project_id`) as security policy + project for the given project(`full_path`). If the project already has a + security policy project, this reassigns the project's security policy project + with the given `security_policy_project_id` + """ + securityPolicyProjectAssign( + """Parameters for SecurityPolicyProjectAssign""" + input: SecurityPolicyProjectAssignInput! + ): SecurityPolicyProjectAssignPayload + + """ + Creates and assigns a security policy project for the given project (`full_path`) + """ + securityPolicyProjectCreate( + """Parameters for SecurityPolicyProjectCreate""" + input: SecurityPolicyProjectCreateInput! + ): SecurityPolicyProjectCreatePayload + + """ + Unassigns the security policy project for the given project (`full_path`). + """ + securityPolicyProjectUnassign( + """Parameters for SecurityPolicyProjectUnassign""" + input: SecurityPolicyProjectUnassignInput! + ): SecurityPolicyProjectUnassignPayload + securityTrainingUpdate( + """Parameters for SecurityTrainingUpdate""" + input: SecurityTrainingUpdateInput! + ): SecurityTrainingUpdatePayload + terraformStateDelete( + """Parameters for TerraformStateDelete""" + input: TerraformStateDeleteInput! + ): TerraformStateDeletePayload + terraformStateLock( + """Parameters for TerraformStateLock""" + input: TerraformStateLockInput! + ): TerraformStateLockPayload + terraformStateUnlock( + """Parameters for TerraformStateUnlock""" + input: TerraformStateUnlockInput! + ): TerraformStateUnlockPayload + timelineEventCreate( + """Parameters for TimelineEventCreate""" + input: TimelineEventCreateInput! + ): TimelineEventCreatePayload + timelineEventDestroy( + """Parameters for TimelineEventDestroy""" + input: TimelineEventDestroyInput! + ): TimelineEventDestroyPayload + timelineEventPromoteFromNote( + """Parameters for TimelineEventPromoteFromNote""" + input: TimelineEventPromoteFromNoteInput! + ): TimelineEventPromoteFromNotePayload + timelineEventUpdate( + """Parameters for TimelineEventUpdate""" + input: TimelineEventUpdateInput! + ): TimelineEventUpdatePayload + timelogCreate( + """Parameters for TimelogCreate""" + input: TimelogCreateInput! + ): TimelogCreatePayload + timelogDelete( + """Parameters for TimelogDelete""" + input: TimelogDeleteInput! + ): TimelogDeletePayload + todoCreate( + """Parameters for TodoCreate""" + input: TodoCreateInput! + ): TodoCreatePayload + todoMarkDone( + """Parameters for TodoMarkDone""" + input: TodoMarkDoneInput! + ): TodoMarkDonePayload + todoRestore( + """Parameters for TodoRestore""" + input: TodoRestoreInput! + ): TodoRestorePayload + todoRestoreMany( + """Parameters for TodoRestoreMany""" + input: TodoRestoreManyInput! + ): TodoRestoreManyPayload + todosMarkAllDone( + """Parameters for TodosMarkAllDone""" + input: TodosMarkAllDoneInput! + ): TodosMarkAllDonePayload + updateAlertStatus( + """Parameters for UpdateAlertStatus""" + input: UpdateAlertStatusInput! + ): UpdateAlertStatusPayload + updateBoard( + """Parameters for UpdateBoard""" + input: UpdateBoardInput! + ): UpdateBoardPayload + updateBoardEpicUserPreferences( + """Parameters for UpdateBoardEpicUserPreferences""" + input: UpdateBoardEpicUserPreferencesInput! + ): UpdateBoardEpicUserPreferencesPayload + updateBoardList( + """Parameters for UpdateBoardList""" + input: UpdateBoardListInput! + ): UpdateBoardListPayload + updateComplianceFramework( + """Parameters for UpdateComplianceFramework""" + input: UpdateComplianceFrameworkInput! + ): UpdateComplianceFrameworkPayload + updateContainerExpirationPolicy( + """Parameters for UpdateContainerExpirationPolicy""" + input: UpdateContainerExpirationPolicyInput! + ): UpdateContainerExpirationPolicyPayload + updateDependencyProxyImageTtlGroupPolicy( + """Parameters for UpdateDependencyProxyImageTtlGroupPolicy""" + input: UpdateDependencyProxyImageTtlGroupPolicyInput! + ): UpdateDependencyProxyImageTtlGroupPolicyPayload + + """ + These settings can be adjusted by the group Owner or Maintainer. However, in + GitLab 16.0, we will be limiting this to the Owner role. + [GitLab-#364441](https://gitlab.com/gitlab-org/gitlab/-/issues/364441) + proposes making this change to match the permissions level in the user interface. + """ + updateDependencyProxySettings( + """Parameters for UpdateDependencyProxySettings""" + input: UpdateDependencyProxySettingsInput! + ): UpdateDependencyProxySettingsPayload + updateEpic( + """Parameters for UpdateEpic""" + input: UpdateEpicInput! + ): UpdateEpicPayload + updateEpicBoardList( + """Parameters for UpdateEpicBoardList""" + input: UpdateEpicBoardListInput! + ): UpdateEpicBoardListPayload + + """ + Updates a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`). + If the body of the Note contains only quick actions, + the Note will be destroyed during an update, and no Note will be + returned. + + + """ + updateImageDiffNote( + """Parameters for UpdateImageDiffNote""" + input: UpdateImageDiffNoteInput! + ): UpdateImageDiffNotePayload + updateIssue( + """Parameters for UpdateIssue""" + input: UpdateIssueInput! + ): UpdateIssuePayload + updateIteration( + """Parameters for UpdateIteration""" + input: UpdateIterationInput! + ): UpdateIterationPayload + updateNamespacePackageSettings( + """Parameters for UpdateNamespacePackageSettings""" + input: UpdateNamespacePackageSettingsInput! + ): UpdateNamespacePackageSettingsPayload + + """ + Updates a Note. + If the body of the Note contains only quick actions, + the Note will be destroyed during an update, and no Note will be + returned. + + """ + updateNote( + """Parameters for UpdateNote""" + input: UpdateNoteInput! + ): UpdateNotePayload + updatePackagesCleanupPolicy( + """Parameters for UpdatePackagesCleanupPolicy""" + input: UpdatePackagesCleanupPolicyInput! + ): UpdatePackagesCleanupPolicyPayload + updateRequirement( + """Parameters for UpdateRequirement""" + input: UpdateRequirementInput! + ): UpdateRequirementPayload + updateSnippet( + """Parameters for UpdateSnippet""" + input: UpdateSnippetInput! + ): UpdateSnippetPayload + + """Deletes an upload.""" + uploadDelete( + """Parameters for UploadDelete""" + input: UploadDeleteInput! + ): UploadDeletePayload + userCalloutCreate( + """Parameters for UserCalloutCreate""" + input: UserCalloutCreateInput! + ): UserCalloutCreatePayload + userPreferencesUpdate( + """Parameters for UserPreferencesUpdate""" + input: UserPreferencesUpdateInput! + ): UserPreferencesUpdatePayload + vulnerabilityConfirm( + """Parameters for VulnerabilityConfirm""" + input: VulnerabilityConfirmInput! + ): VulnerabilityConfirmPayload + vulnerabilityCreate( + """Parameters for VulnerabilityCreate""" + input: VulnerabilityCreateInput! + ): VulnerabilityCreatePayload + vulnerabilityDismiss( + """Parameters for VulnerabilityDismiss""" + input: VulnerabilityDismissInput! + ): VulnerabilityDismissPayload + vulnerabilityExternalIssueLinkCreate( + """Parameters for VulnerabilityExternalIssueLinkCreate""" + input: VulnerabilityExternalIssueLinkCreateInput! + ): VulnerabilityExternalIssueLinkCreatePayload + vulnerabilityExternalIssueLinkDestroy( + """Parameters for VulnerabilityExternalIssueLinkDestroy""" + input: VulnerabilityExternalIssueLinkDestroyInput! + ): VulnerabilityExternalIssueLinkDestroyPayload + vulnerabilityFindingDismiss( + """Parameters for VulnerabilityFindingDismiss""" + input: VulnerabilityFindingDismissInput! + ): VulnerabilityFindingDismissPayload @deprecated(reason: "Use VulnerabilityDismiss for vulnerabilities or SecurityFindingDismiss for pipeline findings. Deprecated in 15.5.") + vulnerabilityResolve( + """Parameters for VulnerabilityResolve""" + input: VulnerabilityResolveInput! + ): VulnerabilityResolvePayload + vulnerabilityRevertToDetected( + """Parameters for VulnerabilityRevertToDetected""" + input: VulnerabilityRevertToDetectedInput! + ): VulnerabilityRevertToDetectedPayload + + """ + Creates a work item. Available only when feature flag `work_items` is enabled. + Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time. + """ + workItemCreate( + """Parameters for WorkItemCreate""" + input: WorkItemCreateInput! + ): WorkItemCreatePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") + + """ + Creates a work item from a task in another work item's description. Available + only when feature flag `work_items` is enabled. Introduced in 15.1: This + feature is in Alpha. It can be changed or removed at any time. + """ + workItemCreateFromTask( + """Parameters for WorkItemCreateFromTask""" + input: WorkItemCreateFromTaskInput! + ): WorkItemCreateFromTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") + + """ + Deletes a work item. Available only when feature flag `work_items` is enabled. + Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time. + """ + workItemDelete( + """Parameters for WorkItemDelete""" + input: WorkItemDeleteInput! + ): WorkItemDeletePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") + + """ + Deletes a task in a work item's description. Available only when feature flag + `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can + be changed or removed at any time. + """ + workItemDeleteTask( + """Parameters for WorkItemDeleteTask""" + input: WorkItemDeleteTaskInput! + ): WorkItemDeleteTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") + + """ + Updates a work item by Global ID. Available only when feature flag + `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can + be changed or removed at any time. + """ + workItemUpdate( + """Parameters for WorkItemUpdate""" + input: WorkItemUpdateInput! + ): WorkItemUpdatePayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") + + """ + Updates a work item's task by Global ID. Available only when feature flag + `work_items` is enabled. Introduced in 15.1: This feature is in Alpha. It can + be changed or removed at any time. + """ + workItemUpdateTask( + """Parameters for WorkItemUpdateTask""" + input: WorkItemUpdateTaskInput! + ): WorkItemUpdateTaskPayload @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") +} + +"""Different toggles for changing mutator behavior""" +enum MutationOperationMode { + """Performs a replace operation.""" + REPLACE + + """Performs an append operation.""" + APPEND + + """Performs a removal operation.""" + REMOVE +} + +type Namespace { + """Size limit for repositories in the namespace in bytes.""" + actualRepositorySizeLimit: Float + + """Additional storage purchased for the root namespace in bytes.""" + additionalPurchasedStorageSize: Float + + """Compliance frameworks available to projects in this namespace.""" + complianceFrameworks( + """Global ID of a specific compliance framework to return.""" + id: ComplianceManagementFrameworkID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ComplianceFrameworkConnection + + """ + Includes at least one project where the repository size exceeds the limit. + """ + containsLockedProjects: Boolean! + + """ + Indicates if the cross_project_pipeline feature is available for the namespace. + """ + crossProjectPipelineAvailable: Boolean! + + """Description of the namespace.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Full name of the namespace.""" + fullName: String! + + """Full path of the namespace.""" + fullPath: ID! + + """ID of the namespace.""" + id: ID! + + """Status of the temporary storage increase.""" + isTemporaryStorageIncreaseEnabled: Boolean! + + """Indicates if Large File Storage (LFS) is enabled for namespace.""" + lfsEnabled: Boolean + + """Name of the namespace.""" + name: String! + + """Package settings for the namespace.""" + packageSettings: PackageSettings + + """Path of the namespace.""" + path: String! + + """Projects within this namespace.""" + projects( + """Include also subgroup projects.""" + includeSubgroups: Boolean = false + + """Search project with most similar names or paths.""" + search: String = null + + """Sort projects by this criteria.""" + sort: NamespaceProjectSort = null + + """Filter projects by IDs.""" + ids: [ID!] = null + + """Returns only the projects which have code coverage.""" + hasCodeCoverage: Boolean = false + + """Returns only the projects which have vulnerabilities.""" + hasVulnerabilities: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! + + """ + Number of projects in the root namespace where the repository size exceeds the limit. + """ + repositorySizeExcessProjectCount: Int! + + """Indicates if users can request access to namespace.""" + requestAccessEnabled: Boolean + + """ + Aggregated storage statistics of the namespace. Only available for root namespaces. + """ + rootStorageStatistics: RootStorageStatistics + + """Scan Execution Policies of the namespace.""" + scanExecutionPolicies( + """ + Filters policies by the action scan type. Only these scan types are + supported: `dast`, `secret_detection`, `cluster_image_scanning`, + `container_scanning`, `sast`. + """ + actionScanTypes: [SecurityReportTypeEnum!] + + """Filter policies by the given policy relationship.""" + relationship: SecurityPolicyRelationType = DIRECT + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScanExecutionPolicyConnection + + """Shared runners availability for the namespace and its descendants.""" + sharedRunnersSetting: SharedRunnersSetting + + """Total storage limit of the root namespace in bytes.""" + storageSizeLimit: Float + + """Date until the temporary storage increase is active.""" + temporaryStorageIncreaseEndsOn: Time + + """ + Timelog categories for the namespace. Introduced in 15.3: This feature is in + Alpha. It can be changed or removed at any time. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """Total repository size of all projects in the root namespace in bytes.""" + totalRepositorySize: Float + + """ + Total excess repository size of all projects in the root namespace in bytes. + """ + totalRepositorySizeExcess: Float + + """Visibility of the namespace.""" + visibility: String +} + +type NamespaceBan { + """Global ID of the namespace ban.""" + id: GlobalID! + + """Root namespace to which the ban applies.""" + namespace: Namespace! + + """User to which the namespace ban applies.""" + user: UserCore! +} + +"""Autogenerated input type of NamespaceBanDestroy""" +input NamespaceBanDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the namespace ban to remove.""" + id: NamespacesNamespaceBanID! +} + +"""Autogenerated return type of NamespaceBanDestroy""" +type NamespaceBanDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Namespace Ban.""" + namespaceBan: NamespaceBan +} + +type NamespaceCiCdSetting { + """ + Indicates if stale runners directly belonging to this namespace should be periodically pruned. + """ + allowStaleRunnerPruning: Boolean + + """Namespace the CI/CD settings belong to.""" + namespace: Namespace +} + +"""Autogenerated input type of NamespaceCiCdSettingsUpdate""" +input NamespaceCiCdSettingsUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Indicates if stale runners directly belonging to this namespace should be periodically pruned. + """ + allowStaleRunnerPruning: Boolean + + """Full path of the namespace the settings belong to.""" + fullPath: ID! +} + +"""Autogenerated return type of NamespaceCiCdSettingsUpdate""" +type NamespaceCiCdSettingsUpdatePayload { + """CI/CD settings after mutation.""" + ciCdSettings: NamespaceCiCdSetting! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The connection type for Namespace.""" +type NamespaceConnection { + """A list of edges.""" + edges: [NamespaceEdge] + + """A list of nodes.""" + nodes: [Namespace] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type NamespaceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Namespace +} + +""" +A `NamespaceID` is a global ID. It is encoded as a string. + +An example `NamespaceID` is: `"gid://gitlab/Namespace/1"`. +""" +scalar NamespaceID + +"""Autogenerated input type of NamespaceIncreaseStorageTemporarily""" +input NamespaceIncreaseStorageTemporarilyInput { + """Global ID of the namespace to mutate.""" + id: NamespaceID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of NamespaceIncreaseStorageTemporarily""" +type NamespaceIncreaseStorageTemporarilyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Namespace after mutation.""" + namespace: Namespace +} + +"""Values for sorting projects""" +enum NamespaceProjectSort { + """Most similar to the search query.""" + SIMILARITY + + """Sort by storage size.""" + STORAGE +} + +""" +A `NamespacesNamespaceBanID` is a global ID. It is encoded as a string. + +An example `NamespacesNamespaceBanID` is: `"gid://gitlab/Namespaces::NamespaceBan/1"`. +""" +scalar NamespacesNamespaceBanID + +input NegatedBoardIssueInput { + """Filter by label name.""" + labelName: [String] + + """Filter by author username.""" + authorUsername: String + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """List of IIDs of issues. For example `["1", "2"]`.""" + iids: [String!] + + """Filter by milestone title.""" + milestoneTitle: String + + """Filter by assignee username.""" + assigneeUsername: [String] + + """Filter by release tag.""" + releaseTag: String + + """Filter by the given issue types.""" + types: [IssueType!] + + """Filter by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """Filter by epic ID. Incompatible with epicWildcardId.""" + epicId: EpicID + + """Filter by iteration title.""" + iterationTitle: String + + """Filter by weight.""" + weight: String + + """ + Filter by a list of iteration IDs. Incompatible with iterationWildcardId. + """ + iterationId: [IterationID!] + + """Filter by iteration ID wildcard.""" + iterationWildcardId: NegatedIterationWildcardId +} + +input NegatedEpicBoardIssueInput { + """Filter by label name.""" + labelName: [String] + + """Filter by author username.""" + authorUsername: String + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String +} + +input NegatedEpicFilterInput { + """Filter by label name.""" + labelName: [String] + + """Filter by author username.""" + authorUsername: String + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String +} + +input NegatedIssueFilterInput { + """ID of a user not assigned to the issues.""" + assigneeId: String + + """Usernames of users not assigned to the issue.""" + assigneeUsernames: [String!] + + """Username of a user who didn't author the issue.""" + authorUsername: String + + """List of IIDs of issues to exclude. For example, `[1, 2]`.""" + iids: [String!] + + """Labels not applied to this issue.""" + labelName: [String!] + + """Milestone not applied to this issue.""" + milestoneTitle: [String!] + + """Filter by negated milestone wildcard values.""" + milestoneWildcardId: NegatedMilestoneWildcardId + + """Filter by reaction emoji applied by the current user.""" + myReactionEmoji: String + + """ + Release tag not associated with the issue's milestone. Ignored when parent is a group. + """ + releaseTag: [String!] + + """Filters out issues by the given issue types.""" + types: [IssueType!] + + """ID of an epic not associated with the issues.""" + epicId: String + + """Weight not applied to the issue.""" + weight: String + + """List of iteration Global IDs not applied to the issue.""" + iterationId: [ID!] + + """Filter by negated iteration ID wildcard.""" + iterationWildcardId: IterationWildcardId +} + +"""Negated Iteration ID wildcard values""" +enum NegatedIterationWildcardId { + """Current iteration.""" + CURRENT +} + +"""Negated Milestone ID wildcard values""" +enum NegatedMilestoneWildcardId { + """Milestone assigned is open and yet to be started (start date > today).""" + STARTED + + """Milestone assigned is open but due in the past (due date <= today).""" + UPCOMING +} + +"""Represents the network policy""" +type NetworkPolicy { + """Indicates whether this policy is enabled.""" + enabled: Boolean! + + """Environments where this policy is applied.""" + environments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EnvironmentConnection + + """Indicates whether this policy is created from AutoDevops.""" + fromAutoDevops: Boolean! + + """Kind of the policy.""" + kind: NetworkPolicyKind! + + """Name of the policy.""" + name: String! + + """Namespace of the policy.""" + namespace: String! + + """Timestamp of when the policy YAML was last updated.""" + updatedAt: Time! + + """YAML definition of the policy.""" + yaml: String! +} + +"""The connection type for NetworkPolicy.""" +type NetworkPolicyConnection { + """A list of edges.""" + edges: [NetworkPolicyEdge] + + """A list of nodes.""" + nodes: [NetworkPolicy] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type NetworkPolicyEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: NetworkPolicy +} + +"""Kind of the network policy""" +enum NetworkPolicyKind { + """Policy kind of Cilium Network Policy.""" + CiliumNetworkPolicy + + """Policy kind of Network Policy.""" + NetworkPolicy +} + +type Note implements ResolvableInterface { + """User who wrote this note.""" + author: UserCore! + + """Content of the note.""" + body: String! + + """The GitLab Flavored Markdown rendering of `note`""" + bodyHtml: String + + """ + Indicates if this note is confidential. Deprecated in 15.3: This was renamed. + """ + confidential: Boolean @deprecated(reason: "This was renamed. Please use `internal`. Deprecated in 15.3.") + + """Timestamp of the note creation.""" + createdAt: Time! + + """Discussion this note is a part of.""" + discussion: Discussion + + """ID of the note.""" + id: NoteID! + + """Indicates if this note is internal.""" + internal: Boolean + + """Position of this note on a diff.""" + position: DiffPosition + + """Project associated with the note.""" + project: Project + + """Indicates if the object can be resolved.""" + resolvable: Boolean! + + """Indicates if the object is resolved.""" + resolved: Boolean! + + """Timestamp of when the object was resolved.""" + resolvedAt: Time + + """User who resolved the object.""" + resolvedBy: UserCore + + """Indicates whether this note was created by the system or by a user.""" + system: Boolean! + + """Name of the icon corresponding to a system note.""" + systemNoteIconName: String + + """Timestamp of the note's last activity.""" + updatedAt: Time! + + """URL to view this Note in the Web UI.""" + url: String + + """Permissions for the current user on the resource""" + userPermissions: NotePermissions! +} + +""" +A `NoteableID` is a global ID. It is encoded as a string. + +An example `NoteableID` is: `"gid://gitlab/Noteable/1"`. +""" +scalar NoteableID + +interface NoteableInterface { + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! +} + +"""Represents an object that supports notes.""" +union NoteableType = Design | Issue | MergeRequest + +"""The connection type for Note.""" +type NoteConnection { + """A list of edges.""" + edges: [NoteEdge] + + """A list of nodes.""" + nodes: [Note] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type NoteEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Note +} + +""" +A `NoteID` is a global ID. It is encoded as a string. + +An example `NoteID` is: `"gid://gitlab/Note/1"`. +""" +scalar NoteID + +type NotePermissions { + """Indicates the user can perform `admin_note` on this resource""" + adminNote: Boolean! + + """Indicates the user can perform `award_emoji` on this resource""" + awardEmoji: Boolean! + + """Indicates the user can perform `create_note` on this resource""" + createNote: Boolean! + + """Indicates the user can perform `read_note` on this resource""" + readNote: Boolean! + + """Indicates the user can perform `reposition_note` on this resource""" + repositionNote: Boolean! + + """Indicates the user can perform `resolve_note` on this resource""" + resolveNote: Boolean! +} + +"""Nuget dependency link metadata""" +type NugetDependencyLinkMetadata { + """ID of the metadatum.""" + id: PackagesNugetDependencyLinkMetadatumID! + + """Target framework of the dependency link package.""" + targetFramework: String! +} + +"""Nuget metadata""" +type NugetMetadata { + """Icon URL of the Nuget package.""" + iconUrl: String + + """ID of the metadatum.""" + id: PackagesNugetMetadatumID! + + """License URL of the Nuget package.""" + licenseUrl: String + + """Project URL of the Nuget package.""" + projectUrl: String +} + +"""The rotation participant and color palette""" +type OncallParticipantType { + """Color palette to assign to the on-call user. For example "blue".""" + colorPalette: String + + """ + Color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user. + """ + colorWeight: String + + """ID of the on-call participant.""" + id: IncidentManagementOncallParticipantID! + + """User who is participating.""" + user: UserCore! +} + +"""The connection type for OncallParticipantType.""" +type OncallParticipantTypeConnection { + """A list of edges.""" + edges: [OncallParticipantTypeEdge] + + """A list of nodes.""" + nodes: [OncallParticipantType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type OncallParticipantTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: OncallParticipantType +} + +"""Active period time range for on-call rotation""" +input OncallRotationActivePeriodInputType { + """ + Start of the rotation active period in 24 hour format. For example, "18:30". + """ + startTime: String! + + """ + End of the rotation active period in 24 hour format. For example, "18:30". + """ + endTime: String! +} + +"""Active period time range for on-call rotation""" +type OncallRotationActivePeriodType { + """End of the rotation active period.""" + endTime: String + + """Start of the rotation active period.""" + startTime: String +} + +"""Autogenerated input type of OncallRotationCreate""" +input OncallRotationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the on-call schedule in.""" + projectPath: ID! + + """IID of the on-call schedule to create the on-call rotation in.""" + scheduleIid: String! + + """Name of the on-call rotation.""" + name: String! + + """ + Start date and time of the on-call rotation, in the timezone of the on-call schedule. + """ + startsAt: OncallRotationDateInputType! + + """ + End date and time of the on-call rotation, in the timezone of the on-call schedule. + """ + endsAt: OncallRotationDateInputType + + """Rotation length of the on-call rotation.""" + rotationLength: OncallRotationLengthInputType! + + """Active period of time that the on-call rotation should take place.""" + activePeriod: OncallRotationActivePeriodInputType + + """ + Usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies. + """ + participants: [OncallUserInputType!]! +} + +"""Autogenerated return type of OncallRotationCreate""" +type OncallRotationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call rotation.""" + oncallRotation: IncidentManagementOncallRotation +} + +"""Date input type for on-call rotation""" +input OncallRotationDateInputType { + """Date component of the date in YYYY-MM-DD format.""" + date: String! + + """Time component of the date in 24hr HH:MM format.""" + time: String! +} + +"""Autogenerated input type of OncallRotationDestroy""" +input OncallRotationDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to remove the on-call schedule from.""" + projectPath: ID! + + """IID of the on-call schedule to the on-call rotation belongs to.""" + scheduleIid: String! + + """ID of the on-call rotation to remove.""" + id: IncidentManagementOncallRotationID! +} + +"""Autogenerated return type of OncallRotationDestroy""" +type OncallRotationDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call rotation.""" + oncallRotation: IncidentManagementOncallRotation +} + +"""The rotation length of the on-call rotation""" +input OncallRotationLengthInputType { + """Rotation length of the on-call rotation.""" + length: Int! + + """Unit of the rotation length of the on-call rotation.""" + unit: OncallRotationUnitEnum! +} + +"""Rotation length unit of an on-call rotation""" +enum OncallRotationUnitEnum { + """Hours""" + HOURS + + """Days""" + DAYS + + """Weeks""" + WEEKS +} + +"""Autogenerated input type of OncallRotationUpdate""" +input OncallRotationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the on-call schedule to create the on-call rotation in.""" + id: IncidentManagementOncallRotationID! + + """Name of the on-call rotation.""" + name: String + + """ + Start date and time of the on-call rotation, in the timezone of the on-call schedule. + """ + startsAt: OncallRotationDateInputType + + """ + End date and time of the on-call rotation, in the timezone of the on-call schedule. + """ + endsAt: OncallRotationDateInputType + + """Rotation length of the on-call rotation.""" + rotationLength: OncallRotationLengthInputType + + """Active period of time that the on-call rotation should take place.""" + activePeriod: OncallRotationActivePeriodInputType + + """ + Usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies. + """ + participants: [OncallUserInputType!] +} + +"""Autogenerated return type of OncallRotationUpdate""" +type OncallRotationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call rotation.""" + oncallRotation: IncidentManagementOncallRotation +} + +"""Autogenerated input type of OncallScheduleCreate""" +input OncallScheduleCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the on-call schedule in.""" + projectPath: ID! + + """Name of the on-call schedule.""" + name: String! + + """Description of the on-call schedule.""" + description: String + + """Timezone of the on-call schedule.""" + timezone: String! +} + +"""Autogenerated return type of OncallScheduleCreate""" +type OncallScheduleCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call schedule.""" + oncallSchedule: IncidentManagementOncallSchedule +} + +"""Autogenerated input type of OncallScheduleDestroy""" +input OncallScheduleDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to remove the on-call schedule from.""" + projectPath: ID! + + """On-call schedule internal ID to remove.""" + iid: String! +} + +"""Autogenerated return type of OncallScheduleDestroy""" +type OncallScheduleDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call schedule.""" + oncallSchedule: IncidentManagementOncallSchedule +} + +"""Autogenerated input type of OncallScheduleUpdate""" +input OncallScheduleUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to update the on-call schedule in.""" + projectPath: ID! + + """On-call schedule internal ID to update.""" + iid: String! + + """Name of the on-call schedule.""" + name: String + + """Description of the on-call schedule.""" + description: String + + """Timezone of the on-call schedule.""" + timezone: String +} + +"""Autogenerated return type of OncallScheduleUpdate""" +type OncallScheduleUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """On-call schedule.""" + oncallSchedule: IncidentManagementOncallSchedule +} + +"""The rotation user and color palette""" +input OncallUserInputType { + """ + Username of the user to participate in the on-call rotation. For example, `"user_one"`. + """ + username: String! + + """ + Value of DataVisualizationColorEnum. The color from the palette to assign to the on-call user. + """ + colorPalette: DataVisualizationColorEnum + + """ + Color weight to assign to for the on-call user. To view on-call schedules in + GitLab, do not provide a value below 500. A value between 500 and 950 ensures + sufficient contrast. + """ + colorWeight: DataVisualizationWeightEnum +} + +interface OrchestrationPolicy { + """Description of the policy.""" + description: String! + + """Indicates whether this policy is enabled.""" + enabled: Boolean! + + """Name of the policy.""" + name: String! + + """Timestamp of when the policy YAML was last updated.""" + updatedAt: Time! + + """YAML definition of the policy.""" + yaml: String! +} + +"""Values for sorting organizations""" +enum OrganizationSort { + """Name in ascending order.""" + NAME_ASC + + """Name in descending order.""" + NAME_DESC + + """Description in ascending order.""" + DESCRIPTION_ASC + + """Description in descending order.""" + DESCRIPTION_DESC + + """Default Rate in ascending order.""" + DEFAULT_RATE_ASC + + """Default Rate in descending order.""" + DEFAULT_RATE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +""" +Represents the total number of organizations for the represented states. +""" +type OrganizationStateCounts { + """Number of organizations with state `ACTIVE`""" + active: Int + + """Number of organizations with state `ALL`""" + all: Int + + """Number of organizations with state `INACTIVE`""" + inactive: Int +} + +"""Represents a package with pipelines in the Package Registry""" +type Package { + """Whether the user can destroy the package.""" + canDestroy: Boolean! + + """Date of creation.""" + createdAt: Time! + + """ID of the package.""" + id: PackagesPackageID! + + """Package metadata.""" + metadata: PackageMetadata + + """Name of the package.""" + name: String! + + """Package type.""" + packageType: PackageTypeEnum! + + """ + Pipelines that built the package. Max page size 20. + + """ + pipelines( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Project where the package is stored.""" + project: Project! + + """Package status.""" + status: PackageStatus! + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Version string.""" + version: String +} + +"""Represents a package in the Package Registry""" +type PackageBase { + """Whether the user can destroy the package.""" + canDestroy: Boolean! + + """Date of creation.""" + createdAt: Time! + + """ID of the package.""" + id: PackagesPackageID! + + """Package metadata.""" + metadata: PackageMetadata + + """Name of the package.""" + name: String! + + """Package type.""" + packageType: PackageTypeEnum! + + """Project where the package is stored.""" + project: Project! + + """Package status.""" + status: PackageStatus! + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Version string.""" + version: String +} + +"""The connection type for PackageBase.""" +type PackageBaseConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PackageBaseEdge] + + """A list of nodes.""" + nodes: [PackageBase] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageBaseEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageBase +} + +"""Represents a composer JSON file""" +type PackageComposerJsonType { + """License set in the Composer JSON file.""" + license: String + + """Name set in the Composer JSON file.""" + name: String + + """Type set in the Composer JSON file.""" + type: String + + """Version set in the Composer JSON file.""" + version: String +} + +"""The connection type for Package.""" +type PackageConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PackageEdge] + + """A list of nodes.""" + nodes: [Package] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Represents a package dependency.""" +type PackageDependency { + """ID of the dependency.""" + id: PackagesDependencyID! + + """Name of the dependency.""" + name: String! + + """Version pattern of the dependency.""" + versionPattern: String! +} + +"""Represents a package dependency link""" +type PackageDependencyLink { + """Dependency.""" + dependency: PackageDependency + + """Dependency type.""" + dependencyType: PackageDependencyType! + + """ID of the dependency link.""" + id: PackagesDependencyLinkID! + + """Dependency link metadata.""" + metadata: DependencyLinkMetadata +} + +"""The connection type for PackageDependencyLink.""" +type PackageDependencyLinkConnection { + """A list of edges.""" + edges: [PackageDependencyLinkEdge] + + """A list of nodes.""" + nodes: [PackageDependencyLink] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageDependencyLinkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageDependencyLink +} + +enum PackageDependencyType { + """dependencies dependency type""" + DEPENDENCIES + + """devDependencies dependency type""" + DEV_DEPENDENCIES + + """bundleDependencies dependency type""" + BUNDLE_DEPENDENCIES + + """peerDependencies dependency type""" + PEER_DEPENDENCIES +} + +"""Represents a package details in the Package Registry""" +type PackageDetailsType { + """Whether the user can destroy the package.""" + canDestroy: Boolean! + + """Url of the Composer setup endpoint.""" + composerConfigRepositoryUrl: String + + """Url of the Composer endpoint.""" + composerUrl: String + + """Url of the Conan project endpoint.""" + conanUrl: String + + """Date of creation.""" + createdAt: Time! + + """Dependency link.""" + dependencyLinks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageDependencyLinkConnection + + """ID of the package.""" + id: PackagesPackageID! + + """Last time that a file of this package was downloaded.""" + lastDownloadedAt: Time + + """Url of the Maven project endpoint.""" + mavenUrl: String + + """Package metadata.""" + metadata: PackageMetadata + + """Name of the package.""" + name: String! + + """Url of the NPM project endpoint.""" + npmUrl: String + + """Url of the Nuget project endpoint.""" + nugetUrl: String + + """Package files.""" + packageFiles( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageFileConnection + + """Package type.""" + packageType: PackageTypeEnum! + + """ + Pipelines that built the package. Max page size 20. + + """ + pipelines( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Project where the package is stored.""" + project: Project! + + """Url of the PyPi project setup endpoint.""" + pypiSetupUrl: String + + """Url of the PyPi project endpoint.""" + pypiUrl: String + + """Package status.""" + status: PackageStatus! + + """Package tags.""" + tags( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageTagConnection + + """Date of most recent update.""" + updatedAt: Time! + + """Version string.""" + version: String + + """Other versions of the package.""" + versions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageBaseConnection +} + +"""An edge in a connection.""" +type PackageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Package +} + +"""Represents a package file""" +type PackageFile { + """Created date.""" + createdAt: Time! + + """Download path of the package file.""" + downloadPath: String! + + """Md5 of the package file.""" + fileMd5: String + + """File metadata.""" + fileMetadata: PackageFileMetadata + + """Name of the package file.""" + fileName: String! + + """Sha1 of the package file.""" + fileSha1: String + + """Sha256 of the package file.""" + fileSha256: String + + """ID of the file.""" + id: PackagesPackageFileID! + + """Size of the package file.""" + size: String! + + """Updated date.""" + updatedAt: Time! +} + +"""The connection type for PackageFile.""" +type PackageFileConnection { + """A list of edges.""" + edges: [PackageFileEdge] + + """A list of nodes.""" + nodes: [PackageFile] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageFileEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageFile +} + +"""Represents metadata associated with a Package file""" +interface PackageFileMetadata { + """Date of creation.""" + createdAt: Time! + + """Date of most recent update.""" + updatedAt: Time! +} + +"""Represents the Geo sync and verification state of a package file""" +type PackageFileRegistry { + """Timestamp when the PackageFileRegistry was created""" + createdAt: Time + + """ID of the PackageFileRegistry""" + id: ID! + + """Error message during sync of the PackageFileRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the PackageFileRegistry + """ + lastSyncedAt: Time + + """ID of the PackageFile.""" + packageFileId: ID! + + """Timestamp after which the PackageFileRegistry is resynced""" + retryAt: Time + + """Number of consecutive failed sync attempts of the PackageFileRegistry""" + retryCount: Int + + """Sync state of the PackageFileRegistry""" + state: RegistryState + + """Timestamp after which the PackageFileRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the PackageFileRegistry + """ + verifiedAt: Time +} + +"""The connection type for PackageFileRegistry.""" +type PackageFileRegistryConnection { + """A list of edges.""" + edges: [PackageFileRegistryEdge] + + """A list of nodes.""" + nodes: [PackageFileRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageFileRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageFileRegistry +} + +"""Values for sorting group packages""" +enum PackageGroupSort { + """Ordered by project path in descending order.""" + PROJECT_PATH_DESC + + """Ordered by project path in ascending order.""" + PROJECT_PATH_ASC + + """Ordered by created_at in descending order.""" + CREATED_DESC + + """Ordered by created_at in ascending order.""" + CREATED_ASC + + """Ordered by name in descending order.""" + NAME_DESC + + """Ordered by name in ascending order.""" + NAME_ASC + + """Ordered by version in descending order.""" + VERSION_DESC + + """Ordered by version in ascending order.""" + VERSION_ASC + + """Ordered by type in descending order.""" + TYPE_DESC + + """Ordered by type in ascending order.""" + TYPE_ASC +} + +"""Represents a Helm dependency""" +type PackageHelmDependencyType { + """Alias of the dependency.""" + alias: String + + """Condition of the dependency.""" + condition: String + + """Indicates the dependency is enabled.""" + enabled: Boolean + + """Import-values of the dependency.""" + importValues: [JSON!] + + """Name of the dependency.""" + name: String + + """Repository of the dependency.""" + repository: String + + """Tags of the dependency.""" + tags: [String!] + + """Version of the dependency.""" + version: String +} + +"""Represents a Helm maintainer""" +type PackageHelmMaintainerType { + """Email of the maintainer.""" + email: String + + """Name of the maintainer.""" + name: String + + """URL of the maintainer.""" + url: String +} + +"""Represents the contents of a Helm Chart.yml file""" +type PackageHelmMetadataType { + """Annotations for the chart.""" + annotations: JSON + + """API version of the chart.""" + apiVersion: String! + + """App version of the chart.""" + appVersion: String + + """Condition for the chart.""" + condition: String + + """Dependencies of the chart.""" + dependencies: [PackageHelmDependencyType!] + + """Indicates if the chart is deprecated.""" + deprecated: Boolean + + """Description of the chart.""" + description: String + + """URL of the home page.""" + home: String + + """URL to an SVG or PNG image for the chart.""" + icon: String + + """Keywords for the chart.""" + keywords: [String!] + + """Kubernetes versions for the chart.""" + kubeVersion: String + + """Maintainers of the chart.""" + maintainers: [PackageHelmMaintainerType!] + + """Name of the chart.""" + name: String! + + """URLs of the source code for the chart.""" + sources: [String!] + + """Tags for the chart.""" + tags: String + + """Type of the chart.""" + type: String + + """Version of the chart.""" + version: String! +} + +"""Represents metadata associated with a Package""" +union PackageMetadata = ComposerMetadata | ConanMetadata | MavenMetadata | NugetMetadata | PypiMetadata + +enum PackagesCleanupKeepDuplicatedPackageFilesEnum { + """Value to keep all package files""" + ALL_PACKAGE_FILES + + """Value to keep 1 package files""" + ONE_PACKAGE_FILE + + """Value to keep 10 package files""" + TEN_PACKAGE_FILES + + """Value to keep 20 package files""" + TWENTY_PACKAGE_FILES + + """Value to keep 30 package files""" + THIRTY_PACKAGE_FILES + + """Value to keep 40 package files""" + FORTY_PACKAGE_FILES + + """Value to keep 50 package files""" + FIFTY_PACKAGE_FILES +} + +""" +A packages cleanup policy designed to keep only packages and packages assets that matter most +""" +type PackagesCleanupPolicy { + """Number of duplicated package files to retain.""" + keepNDuplicatedPackageFiles: PackagesCleanupKeepDuplicatedPackageFilesEnum! + + """Next time that this packages cleanup policy will be executed.""" + nextRunAt: Time +} + +""" +A `PackagesConanFileMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesConanFileMetadatumID` is: `"gid://gitlab/Packages::Conan::FileMetadatum/1"`. +""" +scalar PackagesConanFileMetadatumID + +""" +A `PackagesConanMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesConanMetadatumID` is: `"gid://gitlab/Packages::Conan::Metadatum/1"`. +""" +scalar PackagesConanMetadatumID + +""" +A `PackagesDependencyID` is a global ID. It is encoded as a string. + +An example `PackagesDependencyID` is: `"gid://gitlab/Packages::Dependency/1"`. +""" +scalar PackagesDependencyID + +""" +A `PackagesDependencyLinkID` is a global ID. It is encoded as a string. + +An example `PackagesDependencyLinkID` is: `"gid://gitlab/Packages::DependencyLink/1"`. +""" +scalar PackagesDependencyLinkID + +"""Namespace-level Package Registry settings""" +type PackageSettings { + """ + When generic_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + genericDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate generic packages are allowed for this namespace. + """ + genericDuplicatesAllowed: Boolean! + + """ + When maven_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + mavenDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Maven packages are allowed for this namespace. + """ + mavenDuplicatesAllowed: Boolean! +} + +""" +A `PackagesMavenMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesMavenMetadatumID` is: `"gid://gitlab/Packages::Maven::Metadatum/1"`. +""" +scalar PackagesMavenMetadatumID + +""" +A `PackagesNugetDependencyLinkMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesNugetDependencyLinkMetadatumID` is: `"gid://gitlab/Packages::Nuget::DependencyLinkMetadatum/1"`. +""" +scalar PackagesNugetDependencyLinkMetadatumID + +""" +A `PackagesNugetMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesNugetMetadatumID` is: `"gid://gitlab/Packages::Nuget::Metadatum/1"`. +""" +scalar PackagesNugetMetadatumID + +"""Values for sorting package""" +enum PackageSort { + """Ordered by created_at in descending order.""" + CREATED_DESC + + """Ordered by created_at in ascending order.""" + CREATED_ASC + + """Ordered by name in descending order.""" + NAME_DESC + + """Ordered by name in ascending order.""" + NAME_ASC + + """Ordered by version in descending order.""" + VERSION_DESC + + """Ordered by version in ascending order.""" + VERSION_ASC + + """Ordered by type in descending order.""" + TYPE_DESC + + """Ordered by type in ascending order.""" + TYPE_ASC +} + +""" +A `PackagesPackageFileID` is a global ID. It is encoded as a string. + +An example `PackagesPackageFileID` is: `"gid://gitlab/Packages::PackageFile/1"`. +""" +scalar PackagesPackageFileID + +""" +A `PackagesPackageID` is a global ID. It is encoded as a string. + +An example `PackagesPackageID` is: `"gid://gitlab/Packages::Package/1"`. +""" +scalar PackagesPackageID + +""" +A `PackagesPypiMetadatumID` is a global ID. It is encoded as a string. + +An example `PackagesPypiMetadatumID` is: `"gid://gitlab/Packages::Pypi::Metadatum/1"`. +""" +scalar PackagesPypiMetadatumID + +enum PackageStatus { + """Packages with a default status""" + DEFAULT + + """Packages with a hidden status""" + HIDDEN + + """Packages with a processing status""" + PROCESSING + + """Packages with a error status""" + ERROR + + """Packages with a pending_destruction status""" + PENDING_DESTRUCTION +} + +"""Represents a package tag""" +type PackageTag { + """Created date.""" + createdAt: Time! + + """ID of the tag.""" + id: ID! + + """Name of the tag.""" + name: String! + + """Updated date.""" + updatedAt: Time! +} + +"""The connection type for PackageTag.""" +type PackageTagConnection { + """A list of edges.""" + edges: [PackageTagEdge] + + """A list of nodes.""" + nodes: [PackageTag] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PackageTagEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PackageTag +} + +enum PackageTypeEnum { + """Packages from the Maven package manager""" + MAVEN + + """Packages from the npm package manager""" + NPM + + """Packages from the Conan package manager""" + CONAN + + """Packages from the Nuget package manager""" + NUGET + + """Packages from the PyPI package manager""" + PYPI + + """Packages from the Composer package manager""" + COMPOSER + + """Packages from the Generic package manager""" + GENERIC + + """Packages from the Golang package manager""" + GOLANG + + """Packages from the Debian package manager""" + DEBIAN + + """Packages from the Rubygems package manager""" + RUBYGEMS + + """Packages from the Helm package manager""" + HELM + + """Packages from the Terraform Module package manager""" + TERRAFORM_MODULE + + """Packages from the Rpm package manager""" + RPM +} + +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +""" +Represents the Geo replication and verification state of a pages_deployment +""" +type PagesDeploymentRegistry { + """Timestamp when the PagesDeploymentRegistry was created""" + createdAt: Time + + """ID of the PagesDeploymentRegistry""" + id: ID! + + """Error message during sync of the PagesDeploymentRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the PagesDeploymentRegistry + """ + lastSyncedAt: Time + + """ID of the Pages Deployment.""" + pagesDeploymentId: ID! + + """Timestamp after which the PagesDeploymentRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the PagesDeploymentRegistry + """ + retryCount: Int + + """Sync state of the PagesDeploymentRegistry""" + state: RegistryState + + """Timestamp after which the PagesDeploymentRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the PagesDeploymentRegistry + """ + verifiedAt: Time +} + +"""The connection type for PagesDeploymentRegistry.""" +type PagesDeploymentRegistryConnection { + """A list of edges.""" + edges: [PagesDeploymentRegistryEdge] + + """A list of nodes.""" + nodes: [PagesDeploymentRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PagesDeploymentRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PagesDeploymentRegistry +} + +"""Autogenerated input type of PagesMarkOnboardingComplete""" +input PagesMarkOnboardingCompleteInput { + """Full path of the project.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of PagesMarkOnboardingComplete""" +type PagesMarkOnboardingCompletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """ + Indicates the new onboarding_complete state of the project's Pages metadata. + """ + onboardingComplete: Boolean! +} + +""" +Represents a file or directory in the project repository that has been locked. +""" +type PathLock { + """ID of the path lock.""" + id: PathLockID! + + """Locked path.""" + path: String + + """User that has locked this path.""" + user: UserCore +} + +"""The connection type for PathLock.""" +type PathLockConnection { + """A list of edges.""" + edges: [PathLockEdge] + + """A list of nodes.""" + nodes: [PathLock] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PathLockEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PathLock +} + +""" +A `PathLockID` is a global ID. It is encoded as a string. + +An example `PathLockID` is: `"gid://gitlab/PathLock/1"`. +""" +scalar PathLockID + +"""String or integer.""" +scalar PayloadAlertFieldPathSegment + +type Pipeline { + """Indicates if the pipeline is active.""" + active: Boolean! + + """Base SHA of the source branch.""" + beforeSha: String + + """Specifies if a pipeline can be canceled.""" + cancelable: Boolean! + + """Code Quality degradations reported on the pipeline.""" + codeQualityReports( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CodeQualityDegradationConnection + + """Git commit of the pipeline.""" + commit: Commit + + """Path to the commit that triggered the pipeline.""" + commitPath: String + + """Timestamp of the pipeline's commit.""" + committedAt: Time + + """Indicates if a pipeline is complete.""" + complete: Boolean! + + """ + Configuration source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE, + AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE, + BRIDGE_SOURCE, PARAMETER_SOURCE, COMPLIANCE_SOURCE) + """ + configSource: PipelineConfigSourceEnum + + """Coverage percentage.""" + coverage: Float + + """Timestamp of the pipeline's creation.""" + createdAt: Time! + + """DAST profile associated with the pipeline.""" + dastProfile: DastProfile + + """Detailed status of the pipeline.""" + detailedStatus: DetailedStatus! + + """Pipelines this pipeline will trigger.""" + downstream( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """Duration of the pipeline in seconds.""" + duration: Int + + """Timestamp of the pipeline's completion.""" + finishedAt: Time + + """ID of the pipeline.""" + id: ID! + + """Internal ID of the pipeline.""" + iid: String! + + """Specific job in this pipeline, either by name or ID.""" + job( + """ID of the job.""" + id: JobID + + """Name of the job.""" + name: String + ): CiJob + + """Job artifacts of the pipeline.""" + jobArtifacts: [CiJobArtifact!] + + """Jobs belonging to the pipeline.""" + jobs( + """Filter jobs by the type of security report they produce.""" + securityReportTypes: [SecurityReportTypeEnum!] + + """Filter jobs by status.""" + statuses: [CiJobStatus!] + + """Filter jobs by retry-status.""" + retried: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Event type of the pipeline associated with a merge request.""" + mergeRequestEventType: PipelineMergeRequestEventType + + """Relative path to the pipeline's page.""" + path: String + + """Project the pipeline belongs to.""" + project: Project + + """How long the pipeline was queued before starting.""" + queuedDuration: Duration + + """Reference to the branch from which the pipeline was triggered.""" + ref: String + + """Reference path to the branch from which the pipeline was triggered.""" + refPath: String + + """Specifies if a pipeline can be retried.""" + retryable: Boolean! + + """Vulnerability findings reported on the pipeline.""" + securityReportFindings( + """Filter vulnerability findings by report type.""" + reportType: [String!] + + """Filter vulnerability findings by severity.""" + severity: [String!] + + """Filter vulnerability findings by Scanner.externalId.""" + scanner: [String!] + + """Filter vulnerability findings by state.""" + state: [VulnerabilityState!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineSecurityReportFindingConnection + + """ + Vulnerability and scanned resource counts for each security scanner of the pipeline. + """ + securityReportSummary: SecurityReportSummary + + """SHA of the pipeline's commit.""" + sha( + """Format of the SHA.""" + format: ShaFormat + ): String + + """Job where pipeline was triggered from.""" + sourceJob: CiJob + + """Stages of the pipeline.""" + stages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiStageConnection + + """Timestamp when the pipeline was started.""" + startedAt: Time + + """ + Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, PENDING, + RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED) + """ + status: PipelineStatusEnum! + + """Summary of the test report generated by the pipeline.""" + testReportSummary: TestReportSummary! + + """A specific test suite in a pipeline test report.""" + testSuite( + """IDs of the builds used to run the test suite.""" + buildIds: [ID!]! + ): TestSuite + + """Timestamp of the pipeline's last activity.""" + updatedAt: Time! + + """Pipeline that triggered the pipeline.""" + upstream: Pipeline + + """Pipeline user.""" + user: UserCore + + """Permissions for the current user on the resource""" + userPermissions: PipelinePermissions! + + """Indicates if the pipeline has jobs with `needs` dependencies.""" + usesNeeds: Boolean + + """Pipeline warning messages.""" + warningMessages: [PipelineMessage!] + + """Indicates if a pipeline has warnings.""" + warnings: Boolean! +} + +type PipelineAnalytics { + """Labels for the monthly pipeline count.""" + monthPipelinesLabels: [String!] + + """Total monthly successful pipeline count.""" + monthPipelinesSuccessful: [Int!] + + """Total monthly pipeline count.""" + monthPipelinesTotals: [Int!] + + """Pipeline times labels.""" + pipelineTimesLabels: [String!] + + """Pipeline times.""" + pipelineTimesValues: [Int!] + + """Labels for the weekly pipeline count.""" + weekPipelinesLabels: [String!] + + """Total weekly successful pipeline count.""" + weekPipelinesSuccessful: [Int!] + + """Total weekly pipeline count.""" + weekPipelinesTotals: [Int!] + + """Labels for the yearly pipeline count.""" + yearPipelinesLabels: [String!] + + """Total yearly successful pipeline count.""" + yearPipelinesSuccessful: [Int!] + + """Total yearly pipeline count.""" + yearPipelinesTotals: [Int!] +} + +"""Represents the Geo sync and verification state of a pipeline artifact""" +type PipelineArtifactRegistry { + """Timestamp when the PipelineArtifactRegistry was created""" + createdAt: Time + + """ID of the PipelineArtifactRegistry""" + id: ID! + + """Error message during sync of the PipelineArtifactRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the PipelineArtifactRegistry + """ + lastSyncedAt: Time + + """ID of the pipeline artifact.""" + pipelineArtifactId: ID! + + """Timestamp after which the PipelineArtifactRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the PipelineArtifactRegistry + """ + retryCount: Int + + """Sync state of the PipelineArtifactRegistry""" + state: RegistryState + + """Timestamp after which the PipelineArtifactRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the PipelineArtifactRegistry + """ + verifiedAt: Time +} + +"""The connection type for PipelineArtifactRegistry.""" +type PipelineArtifactRegistryConnection { + """A list of edges.""" + edges: [PipelineArtifactRegistryEdge] + + """A list of nodes.""" + nodes: [PipelineArtifactRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PipelineArtifactRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineArtifactRegistry +} + +"""Autogenerated input type of PipelineCancel""" +input PipelineCancelInput { + """ID of the pipeline to mutate.""" + id: CiPipelineID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of PipelineCancel""" +type PipelineCancelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +enum PipelineConfigSourceEnum { + """Unknown source.""" + UNKNOWN_SOURCE + + """Repository source.""" + REPOSITORY_SOURCE + + """Auto DevOps source.""" + AUTO_DEVOPS_SOURCE + + """Webide source.""" + WEBIDE_SOURCE + + """Remote source.""" + REMOTE_SOURCE + + """External project source.""" + EXTERNAL_PROJECT_SOURCE + + """Bridge source.""" + BRIDGE_SOURCE + + """Parameter source.""" + PARAMETER_SOURCE + + """Compliance source.""" + COMPLIANCE_SOURCE +} + +"""The connection type for Pipeline.""" +type PipelineConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PipelineEdge] + + """A list of nodes.""" + nodes: [Pipeline] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Represents pipeline counts for the project""" +type PipelineCounts { + """Total number of pipelines for the project.""" + all: Int + + """Number of pipelines with scope FINISHED for the project""" + finished: Int + + """Number of pipelines with scope PENDING for the project""" + pending: Int + + """Number of pipelines with scope RUNNING for the project""" + running: Int +} + +"""Autogenerated input type of PipelineDestroy""" +input PipelineDestroyInput { + """ID of the pipeline to mutate.""" + id: CiPipelineID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of PipelineDestroy""" +type PipelineDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type PipelineEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Pipeline +} + +"""Event type of the pipeline associated with a merge request""" +enum PipelineMergeRequestEventType { + """ + Pipeline run on the changes from the source branch combined with the target branch. + """ + MERGED_RESULT + + """Pipeline run on the changes in the merge request source branch.""" + DETACHED + + """Pipeline ran as part of a merge train.""" + MERGE_TRAIN +} + +type PipelineMessage { + """Content of the pipeline message.""" + content: String! + + """ID of the pipeline message.""" + id: ID! +} + +type PipelinePermissions { + """Indicates the user can perform `admin_pipeline` on this resource""" + adminPipeline: Boolean! + + """Indicates the user can perform `destroy_pipeline` on this resource""" + destroyPipeline: Boolean! + + """Indicates the user can perform `update_pipeline` on this resource""" + updatePipeline: Boolean! +} + +"""Autogenerated input type of PipelineRetry""" +input PipelineRetryInput { + """ID of the pipeline to mutate.""" + id: CiPipelineID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of PipelineRetry""" +type PipelineRetryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Pipeline after mutation.""" + pipeline: Pipeline +} + +type PipelineSchedule { + """Indicates if a pipeline schedule is active.""" + active: Boolean! + + """Cron notation for the schedule.""" + cron: String! + + """Timezone for the pipeline schedule.""" + cronTimezone: String! + + """Description of the pipeline schedule.""" + description: String + + """Indicates if a pipelines schedule belongs to a tag.""" + forTag: Boolean! + + """ID of the pipeline schedule.""" + id: ID! + + """Last pipeline object.""" + lastPipeline: Pipeline + + """Time when the next pipeline will run.""" + nextRunAt: Time! + + """Owner of the pipeline schedule.""" + owner: UserCore! + + """Time when the next pipeline will run.""" + realNextRun: Time! + + """Git ref for the pipeline schedule.""" + refForDisplay: String + + """Path to the ref that triggered the pipeline.""" + refPath: String + + """Permissions for the current user on the resource""" + userPermissions: PipelineSchedulePermissions! +} + +"""The connection type for PipelineSchedule.""" +type PipelineScheduleConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [PipelineScheduleEdge] + + """A list of nodes.""" + nodes: [PipelineSchedule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PipelineScheduleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineSchedule +} + +type PipelineSchedulePermissions { + """ + Indicates the user can perform `admin_pipeline_schedule` on this resource + """ + adminPipelineSchedule: Boolean! + + """ + Indicates the user can perform `play_pipeline_schedule` on this resource + """ + playPipelineSchedule: Boolean! + + """ + Indicates the user can perform `take_ownership_pipeline_schedule` on this resource + """ + takeOwnershipPipelineSchedule: Boolean! + + """ + Indicates the user can perform `update_pipeline_schedule` on this resource + """ + updatePipelineSchedule: Boolean! +} + +enum PipelineScheduleStatus { + """Active pipeline schedules.""" + ACTIVE + + """Inactive pipeline schedules.""" + INACTIVE +} + +enum PipelineScopeEnum { + """Pipeline is running.""" + RUNNING + + """Pipeline has not started running yet.""" + PENDING + + """Pipeline has completed.""" + FINISHED + + """Branches.""" + BRANCHES + + """Tags.""" + TAGS +} + +"""Represents vulnerability finding of a security report on the pipeline.""" +type PipelineSecurityReportFinding { + """List of assets associated with the vulnerability.""" + assets: [AssetType!] + + """ + Type of the security report that found the vulnerability. Deprecated in 15.4: + This field will be removed from the Finding domain model. + """ + confidence: String @deprecated(reason: "This field will be removed from the Finding domain model. Deprecated in 15.4.") + + """Description of the vulnerability finding.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Evidence for the vulnerability.""" + evidence: VulnerabilityEvidence + + """Indicates whether the vulnerability is a false positive.""" + falsePositive: Boolean + + """Identifiers of the vulnerability finding.""" + identifiers: [VulnerabilityIdentifier!]! + + """List of links associated with the vulnerability.""" + links: [VulnerabilityLink!] + + """ + Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. + """ + location: VulnerabilityLocation + + """Name of the vulnerability finding. Deprecated in 15.1: Use `title`.""" + name: String @deprecated(reason: "Use `title`. Deprecated in 15.1.") + + """Project on which the vulnerability finding was found.""" + project: Project + + """ + Name of the vulnerability finding. Deprecated in 15.1: The + `project_fingerprint` attribute is being deprecated. Use `uuid` to identify findings. + """ + projectFingerprint: String @deprecated(reason: "The `project_fingerprint` attribute is being deprecated. Use `uuid` to identify findings. Deprecated in 15.1.") + + """Type of the security report that found the vulnerability finding.""" + reportType: VulnerabilityReportType + + """Scanner metadata for the vulnerability.""" + scanner: VulnerabilityScanner + + """Severity of the vulnerability finding.""" + severity: VulnerabilitySeverity + + """URL to the vulnerability's details page.""" + solution: String + + """Finding status.""" + state: VulnerabilityState + + """Title of the vulnerability finding.""" + title: String + + """Name of the vulnerability finding.""" + uuid: String +} + +"""The connection type for PipelineSecurityReportFinding.""" +type PipelineSecurityReportFindingConnection { + """A list of edges.""" + edges: [PipelineSecurityReportFindingEdge] + + """A list of nodes.""" + nodes: [PipelineSecurityReportFinding] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PipelineSecurityReportFindingEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PipelineSecurityReportFinding +} + +enum PipelineStatusEnum { + """Pipeline has been created.""" + CREATED + + """ + A resource (for example, a runner) that the pipeline requires to run is unavailable. + """ + WAITING_FOR_RESOURCE + + """Pipeline is preparing to run.""" + PREPARING + + """Pipeline has not started running yet.""" + PENDING + + """Pipeline is running.""" + RUNNING + + """At least one stage of the pipeline failed.""" + FAILED + + """Pipeline completed successfully.""" + SUCCESS + + """Pipeline was canceled before completion.""" + CANCELED + + """Pipeline was skipped.""" + SKIPPED + + """Pipeline needs to be manually started.""" + MANUAL + + """Pipeline is scheduled to run.""" + SCHEDULED +} + +type Project { + """Size limit for the repository in bytes.""" + actualRepositorySizeLimit: Float + + """Agent configurations defined by the project""" + agentConfigurations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AgentConfigurationConnection + + """A single Alert Management alert of the project.""" + alertManagementAlert( + """IID of the alert. For example, "1".""" + iid: String + + """Alerts with the specified statues. For example, `[TRIGGERED]`.""" + statuses: [AlertManagementStatus!] + + """Sort alerts by this criteria.""" + sort: AlertManagementAlertSort + + """Filter query for given domain.""" + domain: AlertManagementDomainFilter! = operations + + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + ): AlertManagementAlert + + """Counts of alerts by status for the project.""" + alertManagementAlertStatusCounts( + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + ): AlertManagementAlertStatusCountsType + + """Alert Management alerts of the project.""" + alertManagementAlerts( + """IID of the alert. For example, "1".""" + iid: String + + """Alerts with the specified statues. For example, `[TRIGGERED]`.""" + statuses: [AlertManagementStatus!] + + """Sort alerts by this criteria.""" + sort: AlertManagementAlertSort + + """Filter query for given domain.""" + domain: AlertManagementDomainFilter! = operations + + """Search query for title, description, service, or monitoring_tool.""" + search: String + + """Username of a user assigned to the issue.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AlertManagementAlertConnection + + """HTTP Integrations which can receive alerts for the project.""" + alertManagementHttpIntegrations( + """ID of the integration.""" + id: AlertManagementHttpIntegrationID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AlertManagementHttpIntegrationConnection + + """Integrations which can receive alerts for the project.""" + alertManagementIntegrations( + """ID of the integration.""" + id: GlobalID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): AlertManagementIntegrationConnection + + """Extract alert fields from payload for custom mapping.""" + alertManagementPayloadFields( + """Sample payload for extracting alert fields for custom mappings.""" + payloadExample: String! + ): [AlertManagementPayloadAlertField!] + + """ + If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge + requests of the project can also be merged with skipped jobs. + """ + allowMergeOnSkippedPipeline: Boolean + + """API fuzzing configuration for the project. """ + apiFuzzingCiConfiguration: ApiFuzzingCiConfiguration + + """Indicates the archived status of the project.""" + archived: Boolean + + """ + Indicates if issues referenced by merge requests and commits within the default branch are closed automatically. + """ + autocloseReferencedIssues: Boolean + + """URL to avatar image file of the project.""" + avatarUrl: String + + """A single board of the project.""" + board( + """ID of the board.""" + id: BoardID! + ): Board + + """Boards of the project.""" + boards( + """Find a board by its ID.""" + id: BoardID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """Branch rules configured for the project.""" + branchRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BranchRuleConnection + + """CI/CD settings for the project.""" + ciCdSettings: ProjectCiCdSetting + + """Path of the CI configuration file.""" + ciConfigPathOrDefault: String! + + """ + CI/CD config variable. Introduced in 15.3: This feature is in Alpha. It can be changed or removed at any time. + """ + ciConfigVariables( + """Sha.""" + sha: String! + ): [CiConfigVariable!] @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """The CI Job Tokens scope of access.""" + ciJobTokenScope: CiJobTokenScopeType + + """Find a single CI/CD template by name.""" + ciTemplate( + """ + Name of the CI/CD template to search for. Template must be formatted as `Name.gitlab-ci.yml`. + """ + name: String! + ): CiTemplate + + """List of the project's CI/CD variables.""" + ciVariables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiProjectVariableConnection + + """Find a single cluster agent by name.""" + clusterAgent( + """Returns only cluster agents which have vulnerabilities.""" + hasVulnerabilities: Boolean + + """Name of the cluster agent.""" + name: String! + ): ClusterAgent + + """Cluster agents associated with the project.""" + clusterAgents( + """Returns only cluster agents which have vulnerabilities.""" + hasVulnerabilities: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ClusterAgentConnection + + """Code coverage summary associated with the project.""" + codeCoverageSummary: CodeCoverageSummary + + """Compliance frameworks associated with the project.""" + complianceFrameworks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ComplianceFrameworkConnection + + """Container expiration policy of the project.""" + containerExpirationPolicy: ContainerExpirationPolicy + + """Indicates if Container Registry is enabled for the current user""" + containerRegistryEnabled: Boolean + + """Container repositories of the project.""" + containerRepositories( + """Filter the container repositories by their name.""" + name: String + + """Sort container repositories by this criteria.""" + sort: ContainerRepositorySort = created_desc + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ContainerRepositoryConnection + + """Number of container repositories in the project.""" + containerRepositoriesCount: Int! + + """Find corpuses of the project.""" + corpuses( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CoverageFuzzingCorpusConnection + + """Timestamp of the project creation.""" + createdAt: Time + + """DAST Profile associated with the project.""" + dastProfile( + """Filter DAST Profiles by whether or not they have a schedule.""" + hasDastProfileSchedule: Boolean + + """ID of the DAST Profile.""" + id: DastProfileID! + ): DastProfile + + """DAST Profiles associated with the project.""" + dastProfiles( + """Filter DAST Profiles by whether or not they have a schedule.""" + hasDastProfileSchedule: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DastProfileConnection + + """DAST scanner profiles associated with the project.""" + dastScannerProfiles( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DastScannerProfileConnection + + """DAST Site Profile associated with the project.""" + dastSiteProfile( + """ID of the site profile.""" + id: DastSiteProfileID! + ): DastSiteProfile + + """DAST Site Profiles associated with the project.""" + dastSiteProfiles( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DastSiteProfileConnection + + """DAST Site Validations associated with the project.""" + dastSiteValidations( + """Normalized URL of the target to be scanned.""" + normalizedTargetUrls: [String!] + + """Status of the site validation.""" + status: DastSiteValidationStatusEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DastSiteValidationConnection + + """Details of the deployment of the project.""" + deployment( + """Project-level internal ID of the Deployment.""" + iid: ID! + ): DeploymentDetails + + """Short description of the project.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Project's DORA metrics.""" + dora: Dora + + """A single environment of the project.""" + environment( + """Name of the environment.""" + name: String + + """Search query for environment name.""" + search: String + + """States of environments that should be included in result.""" + states: [String!] + ): Environment + + """Environments of the project.""" + environments( + """Name of the environment.""" + name: String + + """Search query for environment name.""" + search: String + + """States of environments that should be included in result.""" + states: [String!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EnvironmentConnection + + """Namespaces in which the current user can fork the project into.""" + forkTargets( + """Search query for path or name.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NamespaceConnection + + """Number of times the project has been forked.""" + forksCount: Int! + + """Full path of the project.""" + fullPath: ID! + + """Grafana integration details for the project.""" + grafanaIntegration: GrafanaIntegration + + """Group of the project.""" + group: Group + + """URL to connect to the project via HTTPS.""" + httpUrlToRepo: String + + """ID of the project.""" + id: ID! + + """Status of import background job of the project.""" + importStatus: String + + """Incident Management escalation policies of the project.""" + incidentManagementEscalationPolicies( + """Fuzzy search by escalation policy name.""" + name: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): EscalationPolicyTypeConnection + + """Incident Management escalation policy of the project.""" + incidentManagementEscalationPolicy( + """Fuzzy search by escalation policy name.""" + name: String + + """ID of the escalation policy.""" + id: IncidentManagementEscalationPolicyID! + ): EscalationPolicyType + + """Incident Management On-call schedules of the project.""" + incidentManagementOncallSchedules( + """IIDs of on-call schedules.""" + iids: [ID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IncidentManagementOncallScheduleConnection + + """Incident Management Timeline event associated with the incident.""" + incidentManagementTimelineEvent( + """ID of the incident.""" + incidentId: IssueID! + + """ID of the timeline event.""" + id: IncidentManagementTimelineEventID! + ): TimelineEventType + + """Incident Management Timeline events associated with the incident.""" + incidentManagementTimelineEvents( + """ID of the incident.""" + incidentId: IssueID! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelineEventTypeConnection + + """A single issue of the project.""" + issue( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to this issue.""" + labelName: [String] + + """Milestone applied to this issue.""" + milestoneTitle: [String] + + """Username of the author of the issue.""" + authorUsername: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Issues created before this date.""" + createdBefore: Time + + """Issues created after this date.""" + createdAfter: Time + + """Issues updated before this date.""" + updatedBefore: Time + + """Issues updated after this date.""" + updatedAfter: Time + + """Issues closed before this date.""" + closedBefore: Time + + """Issues closed after this date.""" + closedAfter: Time + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """Sort issues by this criteria.""" + sort: IssueSort = created_desc + + """Current state of this issue.""" + state: IssuableState + + """List of iteration Global IDs applied to the issue.""" + iterationId: [ID] + + """Filter by iteration ID wildcard.""" + iterationWildcardId: IterationWildcardId + + """ + ID of an epic associated with the issues, "none" and "any" values are supported. + """ + epicId: String + + """Whether to include subepics when filtering issues by epicId.""" + includeSubepics: Boolean + + """Weight applied to the issue, "none" and "any" values are supported.""" + weight: String + + """Health status of the issue, "none" and "any" values are supported.""" + healthStatusFilter: HealthStatusFilter + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + ): Issue + + """Counts of issues by status for the project.""" + issueStatusCounts( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to this issue.""" + labelName: [String] + + """Milestone applied to this issue.""" + milestoneTitle: [String] + + """Username of the author of the issue.""" + authorUsername: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Issues created before this date.""" + createdBefore: Time + + """Issues created after this date.""" + createdAfter: Time + + """Issues updated before this date.""" + updatedBefore: Time + + """Issues updated after this date.""" + updatedAfter: Time + + """Issues closed before this date.""" + closedBefore: Time + + """Issues closed after this date.""" + closedAfter: Time + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + ): IssueStatusCountsType + + """Issues of the project.""" + issues( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of issues. For example, `["1", "2"]`.""" + iids: [String!] + + """Labels applied to this issue.""" + labelName: [String] + + """Milestone applied to this issue.""" + milestoneTitle: [String] + + """Username of the author of the issue.""" + authorUsername: String + + """Usernames of users assigned to the issue.""" + assigneeUsernames: [String!] + + """ + ID of a user assigned to the issues. Wildcard values "NONE" and "ANY" are supported. + """ + assigneeId: String + + """Issues created before this date.""" + createdBefore: Time + + """Issues created after this date.""" + createdAfter: Time + + """Issues updated before this date.""" + updatedBefore: Time + + """Issues updated after this date.""" + updatedAfter: Time + + """Issues closed before this date.""" + closedBefore: Time + + """Issues closed after this date.""" + closedAfter: Time + + """Filter issues by the given issue types.""" + types: [IssueType!] + + """Filter issues by milestone ID wildcard.""" + milestoneWildcardId: MilestoneWildcardId + + """ + Filter by reaction emoji applied by the current user. Wildcard values "NONE" and "ANY" are supported. + """ + myReactionEmoji: String + + """ + Filter for confidential issues. If "false", excludes confidential issues. If "true", returns only confidential issues. + """ + confidential: Boolean + + """Negated arguments.""" + not: NegatedIssueFilterInput + + """ID of a contact assigned to the issues.""" + crmContactId: String + + """ID of an organization assigned to the issues.""" + crmOrganizationId: String + + """Sort issues by this criteria.""" + sort: IssueSort = created_desc + + """Current state of this issue.""" + state: IssuableState + + """List of iteration Global IDs applied to the issue.""" + iterationId: [ID] + + """Filter by iteration ID wildcard.""" + iterationWildcardId: IterationWildcardId + + """ + ID of an epic associated with the issues, "none" and "any" values are supported. + """ + epicId: String + + """Whether to include subepics when filtering issues by epicId.""" + includeSubepics: Boolean + + """Weight applied to the issue, "none" and "any" values are supported.""" + weight: String + + """Health status of the issue, "none" and "any" values are supported.""" + healthStatusFilter: HealthStatusFilter + + """Release tag associated with the issue's milestone.""" + releaseTag: [String!] + + """Filter issues by release tag ID wildcard.""" + releaseTagWildcardId: ReleaseTagWildcardId + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection + + """Indicates if Issues are enabled for the current user""" + issuesEnabled: Boolean + + """Find iteration cadences.""" + iterationCadences( + """Global ID of the iteration cadence to look up.""" + id: IterationsCadenceID + + """Fuzzy search by title.""" + title: String + + """Duration in weeks of the iterations within this cadence.""" + durationInWeeks: Int + + """ + Whether the iteration cadence should automatically generate upcoming iterations. + """ + automatic: Boolean + + """Whether the iteration cadence is active.""" + active: Boolean + + """Whether to include ancestor groups to search iterations cadences in.""" + includeAncestorGroups: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IterationCadenceConnection + + """Find iterations.""" + iterations( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Filter iterations by state.""" + state: IterationState + + """ + Query used for fuzzy-searching in the fields selected in the argument `in`. Returns all iterations if empty. + """ + search: String + + """ + Fields in which the fuzzy-search should be performed with the query given in + the argument `search`. Defaults to `[title]`. + """ + in: [IterationSearchableField!] + + """Global ID of the Iteration to look up.""" + id: ID + + """Internal ID of the Iteration to look up.""" + iid: ID + + """Whether to include ancestor iterations. Defaults to true.""" + includeAncestors: Boolean + + """Global iteration cadence IDs by which to look up the iterations.""" + iterationCadenceIds: [IterationsCadenceID!] + + """ + List iterations by sort order. If unspecified, an arbitrary order (subject to change) is used. + """ + sort: IterationSort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): IterationConnection + + """Status of Jira import background job of the project.""" + jiraImportStatus: String + + """Jira imports into the project.""" + jiraImports( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): JiraImportConnection + + """One job belonging to the project, selected by ID.""" + job( + """ID of the job.""" + id: JobID! + ): CiJob + + """ + Jobs of a project. This field can only be resolved for one project in any single request. + """ + jobs( + """Filter jobs by status.""" + statuses: [CiJobStatus!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Indicates if CI/CD pipeline jobs are enabled for the current user.""" + jobsEnabled: Boolean + + """Label available on this project.""" + label( + """Title of the label.""" + title: String! + ): Label + + """Labels available on this project.""" + labels( + """Search term to find labels with.""" + searchTerm: String + + """Include labels from ancestor groups.""" + includeAncestorGroups: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Timestamp of the project last activity.""" + lastActivityAt: Time + + """Indicates if the project has Large File Storage (LFS) enabled.""" + lfsEnabled: Boolean + + """Template used to create merge commit message in merge requests.""" + mergeCommitTemplate: String + + """A single merge request of the project.""" + mergeRequest( + """IID of the merge request, for example `1`.""" + iid: String! + ): MergeRequest + + """Merge requests of the project.""" + mergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Indicates if Merge Requests are enabled for the current user""" + mergeRequestsEnabled: Boolean + + """ + Indicates if no merge commits should be created and all merges should instead + be fast-forwarded, which means that merging is only allowed if the branch + could be fast-forwarded. + """ + mergeRequestsFfOnlyEnabled: Boolean + + """Milestones of the project.""" + milestones( + """List items overlapping the given timeframe.""" + timeframe: Timeframe + + """Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`.""" + ids: [ID!] + + """Filter milestones by state.""" + state: MilestoneStateEnum + + """Title of the milestone.""" + title: String + + """Search string for the title.""" + searchTitle: String + + """Date the milestone contains.""" + containingDate: Time + + """Sort milestones by this criteria.""" + sort: MilestoneSort = DUE_DATE_ASC + + """ + Also return milestones in the project's parent group and its ancestors. + """ + includeAncestors: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MilestoneConnection + + """Name of the project (without namespace).""" + name: String! + + """Full name of the project with its namespace.""" + nameWithNamespace: String! + + """Namespace of the project.""" + namespace: Namespace + + """ + Network Policies of the project Deprecated in 14.8: Network policies are + deprecated and will be removed in GitLab 16.0. Since GitLab 15.0 this field + returns no data. + """ + networkPolicies( + """Global ID of the environment to filter policies.""" + environmentId: EnvironmentID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NetworkPolicyConnection @deprecated(reason: "Network policies are deprecated and will be removed in GitLab 16.0. Since GitLab 15.0 this field returns no data. Deprecated in 14.8.") + + """ + Indicates if merge requests of the project can only be merged when all the discussions are resolved. + """ + onlyAllowMergeIfAllDiscussionsAreResolved: Boolean + + """ + Indicates if merge requests of the project can only be merged with successful jobs. + """ + onlyAllowMergeIfPipelineSucceeds: Boolean + + """Number of open issues for the project.""" + openIssuesCount: Int + + """Packages of the project.""" + packages( + """Sort packages by this criteria.""" + sort: PackageSort = CREATED_DESC + + """Search a package by name.""" + packageName: String = null + + """Filter a package by type.""" + packageType: PackageTypeEnum = null + + """Filter a package by status.""" + status: PackageStatus = null + + """Include versionless packages.""" + includeVersionless: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PackageConnection + + """Packages cleanup policy for the project.""" + packagesCleanupPolicy: PackagesCleanupPolicy + + """Path of the project.""" + path: String! + + """The project's path locks.""" + pathLocks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PathLockConnection + + """Build pipeline of the project.""" + pipeline( + """IID of the Pipeline. For example, "1".""" + iid: ID + + """ + SHA of the Pipeline. For example, "dyd0f15ay83993f5ab66k927w28673882x99100b". + """ + sha: String + ): Pipeline + + """Pipeline analytics.""" + pipelineAnalytics: PipelineAnalytics + + """Build pipeline counts of the project.""" + pipelineCounts( + """Filter pipelines by the ref they are run for.""" + ref: String + + """Filter pipelines by the SHA of the commit they are run for.""" + sha: String + + """Filter pipelines by their source.""" + source: String + ): PipelineCounts + + """ + Pipeline schedules of the project. This field can only be resolved for one project per request. + """ + pipelineSchedules( + """Filter pipeline schedules by active status.""" + status: PipelineScheduleStatus + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineScheduleConnection + + """Build pipelines of the project.""" + pipelines( + """Filter pipelines by their status.""" + status: PipelineStatusEnum + + """Filter pipelines by scope.""" + scope: PipelineScopeEnum + + """Filter pipelines by the ref they are run for.""" + ref: String + + """Filter pipelines by the sha of the commit they are run for.""" + sha: String + + """Filter pipelines by their source.""" + source: String + + """Pipelines updated after this date.""" + updatedAfter: Time + + """Pipelines updated before this date.""" + updatedBefore: Time + + """Filter pipelines by the user that triggered the pipeline.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): PipelineConnection + + """ + Indicates if a link to create or view a merge request should display after a + push to Git repositories of the project from the command line. + """ + printingMergeRequestLinkEnabled: Boolean + + """Members of the project.""" + projectMembers( + """Search query.""" + search: String + + """sort query.""" + sort: MemberSort + + """Filter members by the given member relations.""" + relations: [ProjectMemberRelation!] = [DIRECT, INHERITED] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MemberInterfaceConnection + + """ + Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts. + """ + publicJobs: Boolean + + """Project's push rules settings.""" + pushRules: PushRules + + """List of recently visited boards of the project. Maximum size is 4.""" + recentIssueBoards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BoardConnection + + """A single release of the project.""" + release( + """Name of the tag associated to the release.""" + tagName: String! + ): Release + + """Releases of the project.""" + releases( + """Sort releases by this criteria.""" + sort: ReleaseSort = RELEASED_AT_DESC + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseConnection + + """ + Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project. + """ + removeSourceBranchAfterMerge: Boolean + + """Git repository of the project.""" + repository: Repository + + """Size of repository that exceeds the limit in bytes.""" + repositorySizeExcess: Float + + """Indicates if users can request member access to the project.""" + requestAccessEnabled: Boolean + + """Find a single requirement.""" + requirement( + """List requirements by sort order.""" + sort: Sort + + """Filter requirements by state.""" + state: RequirementState + + """Search query for requirement title.""" + search: String + + """Filter requirements by author username.""" + authorUsername: [String!] + + """IID of the requirement, e.g., "1".""" + iid: ID + + """List of IIDs of requirements, e.g., `[1, 2]`.""" + iids: [ID!] + + """State of latest requirement test report.""" + lastTestReportState: RequirementStatusFilter + ): Requirement + + """Number of requirements for the project by their state.""" + requirementStatesCount: RequirementStatesCount + + """Find requirements.""" + requirements( + """List requirements by sort order.""" + sort: Sort + + """Filter requirements by state.""" + state: RequirementState + + """Search query for requirement title.""" + search: String + + """Filter requirements by author username.""" + authorUsername: [String!] + + """IID of the requirement, e.g., "1".""" + iid: ID + + """List of IIDs of requirements, e.g., `[1, 2]`.""" + iids: [ID!] + + """State of latest requirement test report.""" + lastTestReportState: RequirementStatusFilter + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RequirementConnection + + """SAST CI configuration for the project.""" + sastCiConfiguration: SastCiConfiguration + + """Scan Execution Policies of the project""" + scanExecutionPolicies( + """ + Filters policies by the action scan type. Only these scan types are + supported: `dast`, `secret_detection`, `cluster_image_scanning`, + `container_scanning`, `sast`. + """ + actionScanTypes: [SecurityReportTypeEnum!] + + """Filter policies by the given policy relationship.""" + relationship: SecurityPolicyRelationType = DIRECT + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScanExecutionPolicyConnection + + """Scan Result Policies of the project""" + scanResultPolicies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScanResultPolicyConnection + + """Path to project's security dashboard.""" + securityDashboardPath: String + + """Information about security analyzers used in the project.""" + securityScanners: SecurityScanners + + """List of security training providers for the project""" + securityTrainingProviders( + """Filter the list by only enabled security trainings.""" + onlyEnabled: Boolean + ): [ProjectSecurityTraining!] + + """ + Security training URLs for the enabled training providers of the project. + """ + securityTrainingUrls( + """List of external IDs of vulnerability identifiers.""" + identifierExternalIds: [String!]! + + """Filename to filter security training URLs by programming language.""" + filename: String + ): [SecurityTrainingUrl!] + + """Detailed version of a Sentry error on the project.""" + sentryDetailedError( + """ID of the Sentry issue.""" + id: GitlabErrorTrackingDetailedErrorID! + ): SentryDetailedError + + """Paginated collection of Sentry errors on the project.""" + sentryErrors: SentryErrorCollection + + """E-mail address of the Service Desk.""" + serviceDeskAddress: String + + """Indicates if the project has Service Desk enabled.""" + serviceDeskEnabled: Boolean + + """Project services.""" + services( + """Indicates if the integration is active.""" + active: Boolean + + """Type of integration.""" + type: ServiceType + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ServiceConnection + + """Indicates if shared runners are enabled for the project.""" + sharedRunnersEnabled: Boolean + + """Snippets of the project.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Indicates if Snippets are enabled for the current user""" + snippetsEnabled: Boolean + + """Template used to create squash commit message in merge requests.""" + squashCommitTemplate: String + + """Indicates if `squashReadOnly` is enabled.""" + squashReadOnly: Boolean! + + """URL to connect to the project via SSH.""" + sshUrlToRepo: String + + """Number of times the project has been starred.""" + starCount: Int! + + """Statistics of the project.""" + statistics: ProjectStatistics + + """Commit message used to apply merge request suggestions.""" + suggestionCommitMessage: String + + """ + List of project topics (not Git tags). Deprecated in 13.12: Use `topics`. + """ + tagList: String @deprecated(reason: "Use `topics`. Deprecated in 13.12.") + + """Find a single Terraform state by name.""" + terraformState( + """Name of the Terraform state.""" + name: String! + ): TerraformState + + """Terraform states associated with the project.""" + terraformStates( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TerraformStateConnection + + """ + Timelog categories for the project. Introduced in 15.3: This feature is in + Alpha. It can be changed or removed at any time. + """ + timelogCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimeTrackingTimelogCategoryConnection @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """Time logged on issues and merge requests in the project.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """List of project topics.""" + topics: [String!] + + """Permissions for the current user on the resource""" + userPermissions: ProjectPermissions! + + """Visibility of the project.""" + visibility: String + + """Vulnerabilities reported on the project.""" + vulnerabilities( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by VulnerabilityScanner.externalId.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """List vulnerabilities by sort order.""" + sort: VulnerabilitySort = severity_desc + + """ + Returns only the vulnerabilities which have been resolved on default branch. + """ + hasResolution: Boolean + + """Returns only the vulnerabilities which have linked issues.""" + hasIssues: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType` + of `cluster_image_scanning` are only included with this filter. + """ + clusterId: [ClustersClusterID!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityConnection + + """The historical number of vulnerabilities per day for the project.""" + vulnerabilitiesCountByDay( + """First day for which to fetch vulnerability history.""" + startDate: ISO8601Date! + + """Last day for which to fetch vulnerability history.""" + endDate: ISO8601Date! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilitiesCountByDayConnection + + """Container images reported on the project vulnerabilities.""" + vulnerabilityImages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityContainerImageConnection + + """Vulnerability scanners reported on the project vulnerabilities.""" + vulnerabilityScanners( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityScannerConnection + + """Counts for each vulnerability severity in the project.""" + vulnerabilitySeveritiesCount( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by scanner.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """Filter vulnerabilities that do or do not have issues.""" + hasIssues: Boolean + + """Filter vulnerabilities that do or do not have a resolution.""" + hasResolution: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + ): VulnerabilitySeveritiesCount + + """Web URL of the project.""" + webUrl: String + + """Indicates if Wikis are enabled for the current user""" + wikiEnabled: Boolean + + """ + Work item types available to the project. Returns `null` if `work_items` + feature flag is disabled. This flag is disabled by default, because the + feature is experimental and is subject to change without notice. + """ + workItemTypes( + """ + If `true`, only taskable work item types will be returned. Argument is + experimental and can be removed in the future without notice. + """ + taskable: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemTypeConnection + + """ + Work items of the project. Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time. + """ + workItems( + """Search query for title or description.""" + search: String + + """ + Specify the fields to perform the search in. + Defaults to `[TITLE, DESCRIPTION]`. Requires the `search` argument.' + + """ + in: [IssuableSearchableField!] + + """IID of the issue. For example, "1".""" + iid: String + + """List of IIDs of work items. For example, `["1", "2"]`.""" + iids: [String!] + + """Sort work items by this criteria.""" + sort: WorkItemSort = created_desc + + """Current state of this work item.""" + state: IssuableState + + """Filter work items by the given work item types.""" + types: [IssueType!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemConnection @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") +} + +type ProjectCiCdSetting { + """ + Indicates CI job tokens generated in this project have restricted access to resources. + """ + jobTokenScopeEnabled: Boolean + + """Whether to keep the latest builds artifacts.""" + keepLatestArtifact: Boolean + + """Whether merge pipelines are enabled.""" + mergePipelinesEnabled: Boolean + + """Whether merge trains are enabled.""" + mergeTrainsEnabled: Boolean + + """Project the CI/CD settings belong to.""" + project: Project +} + +"""Autogenerated input type of ProjectCiCdSettingsUpdate""" +input ProjectCiCdSettingsUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full Path of the project the settings belong to.""" + fullPath: ID! + + """Indicates if the latest artifact should be kept for this project.""" + keepLatestArtifact: Boolean + + """ + Indicates CI job tokens generated in this project have restricted access to resources. + """ + jobTokenScopeEnabled: Boolean + + """Indicates if merge pipelines are enabled for the project.""" + mergePipelinesEnabled: Boolean + + """Indicates if merge trains are enabled for the project.""" + mergeTrainsEnabled: Boolean +} + +"""Autogenerated return type of ProjectCiCdSettingsUpdate""" +type ProjectCiCdSettingsUpdatePayload { + """CI/CD settings after mutation.""" + ciCdSettings: ProjectCiCdSetting! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The connection type for Project.""" +type ProjectConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [ProjectEdge] + + """A list of nodes.""" + nodes: [Project] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProjectEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Project +} + +""" +A `ProjectID` is a global ID. It is encoded as a string. + +An example `ProjectID` is: `"gid://gitlab/Project/1"`. +""" +scalar ProjectID + +"""Represents a Project Membership""" +type ProjectMember implements MemberInterface { + """GitLab::Access level.""" + accessLevel: AccessLevel + + """Date and time the membership was created.""" + createdAt: Time + + """User that authorized membership.""" + createdBy: UserCore + + """Date and time the membership expires.""" + expiresAt: Time + + """ID of the member.""" + id: ID! + + """Find a merge request.""" + mergeRequestInteraction( + """Global ID of the merge request.""" + id: MergeRequestID! + ): UserMergeRequestInteraction + + """Project that User is a member of.""" + project: Project + + """Date and time the membership was last updated.""" + updatedAt: Time + + """User that is associated with the member object.""" + user: UserCore + + """Permissions for the current user on the resource""" + userPermissions: ProjectPermissions! +} + +"""The connection type for ProjectMember.""" +type ProjectMemberConnection { + """A list of edges.""" + edges: [ProjectMemberEdge] + + """A list of nodes.""" + nodes: [ProjectMember] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProjectMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ProjectMember +} + +"""Project member relation""" +enum ProjectMemberRelation { + """Direct members""" + DIRECT + + """Inherited members""" + INHERITED + + """Descendants members""" + DESCENDANTS + + """Invited Groups members""" + INVITED_GROUPS +} + +type ProjectPermissions { + """Indicates the user can perform `admin_operations` on this resource""" + adminOperations: Boolean! + + """Indicates the user can perform `admin_path_locks` on this resource""" + adminPathLocks: Boolean! + + """Indicates the user can perform `admin_project` on this resource""" + adminProject: Boolean! + + """Indicates the user can perform `admin_remote_mirror` on this resource""" + adminRemoteMirror: Boolean! + + """Indicates the user can perform `admin_wiki` on this resource""" + adminWiki: Boolean! + + """Indicates the user can perform `archive_project` on this resource""" + archiveProject: Boolean! + + """Indicates the user can perform `change_namespace` on this resource""" + changeNamespace: Boolean! + + """ + Indicates the user can perform `change_visibility_level` on this resource + """ + changeVisibilityLevel: Boolean! + + """Indicates the user can perform `create_deployment` on this resource""" + createDeployment: Boolean! + + """Indicates the user can perform `create_design` on this resource""" + createDesign: Boolean! + + """Indicates the user can perform `create_issue` on this resource""" + createIssue: Boolean! + + """Indicates the user can perform `create_label` on this resource""" + createLabel: Boolean! + + """ + Indicates the user can perform `create_merge_request_from` on this resource + """ + createMergeRequestFrom: Boolean! + + """ + Indicates the user can perform `create_merge_request_in` on this resource + """ + createMergeRequestIn: Boolean! + + """Indicates the user can perform `create_pages` on this resource""" + createPages: Boolean! + + """Indicates the user can perform `create_pipeline` on this resource""" + createPipeline: Boolean! + + """ + Indicates the user can perform `create_pipeline_schedule` on this resource + """ + createPipelineSchedule: Boolean! + + """Indicates the user can perform `create_snippet` on this resource""" + createSnippet: Boolean! + + """Indicates the user can perform `create_wiki` on this resource""" + createWiki: Boolean! + + """Indicates the user can perform `destroy_design` on this resource""" + destroyDesign: Boolean! + + """Indicates the user can perform `destroy_pages` on this resource""" + destroyPages: Boolean! + + """Indicates the user can perform `destroy_wiki` on this resource""" + destroyWiki: Boolean! + + """Indicates the user can perform `download_code` on this resource""" + downloadCode: Boolean! + + """Indicates the user can perform `download_wiki_code` on this resource""" + downloadWikiCode: Boolean! + + """Indicates the user can perform `fork_project` on this resource""" + forkProject: Boolean! + + """Indicates the user can perform `push_code` on this resource""" + pushCode: Boolean! + + """ + Indicates the user can perform `push_to_delete_protected_branch` on this resource + """ + pushToDeleteProtectedBranch: Boolean! + + """Indicates the user can perform `read_commit_status` on this resource""" + readCommitStatus: Boolean! + + """Indicates the user can perform `read_cycle_analytics` on this resource""" + readCycleAnalytics: Boolean! + + """Indicates the user can perform `read_design` on this resource""" + readDesign: Boolean! + + """Indicates the user can perform `read_merge_request` on this resource""" + readMergeRequest: Boolean! + + """Indicates the user can perform `read_pages_content` on this resource""" + readPagesContent: Boolean! + + """Indicates the user can perform `read_project` on this resource""" + readProject: Boolean! + + """Indicates the user can perform `read_project_member` on this resource""" + readProjectMember: Boolean! + + """Indicates the user can perform `read_wiki` on this resource""" + readWiki: Boolean! + + """Indicates the user can perform `remove_fork_project` on this resource""" + removeForkProject: Boolean! + + """Indicates the user can perform `remove_pages` on this resource""" + removePages: Boolean! + + """Indicates the user can perform `remove_project` on this resource""" + removeProject: Boolean! + + """Indicates the user can perform `rename_project` on this resource""" + renameProject: Boolean! + + """Indicates the user can perform `request_access` on this resource""" + requestAccess: Boolean! + + """Indicates the user can perform `update_pages` on this resource""" + updatePages: Boolean! + + """Indicates the user can perform `update_wiki` on this resource""" + updateWiki: Boolean! + + """Indicates the user can perform `upload_file` on this resource""" + uploadFile: Boolean! +} + +"""Represents the source of a security policy belonging to a project""" +type ProjectSecurityPolicySource { + """Project the policy is associated with.""" + project: Project +} + +type ProjectSecurityTraining { + """Description of the training provider.""" + description: String + + """ID of the training provider.""" + id: GlobalID! + + """Represents whether the provider is enabled or not.""" + isEnabled: Boolean! + + """Represents whether the provider is set as primary or not.""" + isPrimary: Boolean! + + """Logo URL of the provider.""" + logoUrl: String + + """Name of the training provider.""" + name: String! + + """URL of the provider.""" + url: String! +} + +"""Autogenerated input type of ProjectSetComplianceFramework""" +input ProjectSetComplianceFrameworkInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the project to change the compliance framework of.""" + projectId: ProjectID! + + """ + ID of the compliance framework to assign to the project. Set to `null` to unset. + """ + complianceFrameworkId: ComplianceManagementFrameworkID +} + +"""Autogenerated return type of ProjectSetComplianceFramework""" +type ProjectSetComplianceFrameworkPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project after mutation.""" + project: Project +} + +"""Autogenerated input type of ProjectSetLocked""" +input ProjectSetLockedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project to mutate.""" + projectPath: ID! + + """Full path to the file.""" + filePath: String! + + """Whether or not to lock the file path.""" + lock: Boolean! +} + +"""Autogenerated return type of ProjectSetLocked""" +type ProjectSetLockedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project after mutation.""" + project: Project +} + +type ProjectStatistics { + """Build artifacts size of the project in bytes.""" + buildArtifactsSize: Float! + + """Commit count of the project.""" + commitCount: Float! + + """Container Registry size of the project in bytes.""" + containerRegistrySize: Float + + """Large File Storage (LFS) object size of the project in bytes.""" + lfsObjectsSize: Float! + + """Packages size of the project in bytes.""" + packagesSize: Float! + + """CI Pipeline artifacts size in bytes.""" + pipelineArtifactsSize: Float + + """Repository size of the project in bytes.""" + repositorySize: Float! + + """Snippets size of the project in bytes.""" + snippetsSize: Float + + """Storage size of the project in bytes.""" + storageSize: Float! + + """Uploads size of the project in bytes.""" + uploadsSize: Float + + """Wiki size of the project in bytes.""" + wikiSize: Float +} + +"""The alert condition for Prometheus""" +type PrometheusAlert { + """Human-readable text of the alert condition.""" + humanizedText: String! + + """ID of the alert condition.""" + id: ID! +} + +"""Autogenerated input type of PrometheusIntegrationCreate""" +input PrometheusIntegrationCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project to create the integration in.""" + projectPath: ID! + + """Whether the integration is receiving alerts.""" + active: Boolean! + + """Endpoint at which Prometheus can be queried.""" + apiUrl: String! +} + +"""Autogenerated return type of PrometheusIntegrationCreate""" +type PrometheusIntegrationCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Newly created integration.""" + integration: AlertManagementPrometheusIntegration +} + +"""Autogenerated input type of PrometheusIntegrationResetToken""" +input PrometheusIntegrationResetTokenInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the integration to mutate.""" + id: IntegrationsPrometheusID! +} + +"""Autogenerated return type of PrometheusIntegrationResetToken""" +type PrometheusIntegrationResetTokenPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Newly created integration.""" + integration: AlertManagementPrometheusIntegration +} + +"""Autogenerated input type of PrometheusIntegrationUpdate""" +input PrometheusIntegrationUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the integration to mutate.""" + id: IntegrationsPrometheusID! + + """Whether the integration is receiving alerts.""" + active: Boolean + + """Endpoint at which Prometheus can be queried.""" + apiUrl: String +} + +"""Autogenerated return type of PrometheusIntegrationUpdate""" +type PrometheusIntegrationUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Newly created integration.""" + integration: AlertManagementPrometheusIntegration +} + +"""Autogenerated input type of PromoteToEpic""" +input PromoteToEpicInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group the promoted epic will belong to.""" + groupPath: ID +} + +"""Autogenerated return type of PromoteToEpic""" +type PromoteToEpicPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after issue promotion.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Protected Environments of the environment.""" +type ProtectedEnvironment { + """ + Which group, user or role is allowed to approve deployments to the environment. + """ + approvalRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProtectedEnvironmentApprovalRuleConnection + + """ + Which group, user or role is allowed to execute deployments to the environment. + """ + deployAccessLevels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProtectedEnvironmentDeployAccessLevelConnection + + """Group details. Present if it's group-level protected environment.""" + group: Group + + """ + Name of the environment if it's a project-level protected environment. Tier of + the environment if it's a group-level protected environment. + """ + name: String + + """Project details. Present if it's project-level protected environment.""" + project: Project +} + +""" +Which group, user or role is allowed to approve deployments to the environment. +""" +type ProtectedEnvironmentApprovalRule { + """Role details. Present if it's role specific access control.""" + accessLevel: AccessLevel + + """Group details. Present if it's group specific access control.""" + group: Group + + """Number of required approvals.""" + requiredApprovals: Int + + """User details. Present if it's user specific access control.""" + user: UserCore +} + +"""The connection type for ProtectedEnvironmentApprovalRule.""" +type ProtectedEnvironmentApprovalRuleConnection { + """A list of edges.""" + edges: [ProtectedEnvironmentApprovalRuleEdge] + + """A list of nodes.""" + nodes: [ProtectedEnvironmentApprovalRule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProtectedEnvironmentApprovalRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ProtectedEnvironmentApprovalRule +} + +"""The connection type for ProtectedEnvironment.""" +type ProtectedEnvironmentConnection { + """A list of edges.""" + edges: [ProtectedEnvironmentEdge] + + """A list of nodes.""" + nodes: [ProtectedEnvironment] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +""" +Which group, user or role is allowed to execute deployments to the environment. +""" +type ProtectedEnvironmentDeployAccessLevel { + """Role details. Present if it's role specific access control.""" + accessLevel: AccessLevel + + """Group details. Present if it's group specific access control.""" + group: Group + + """User details. Present if it's user specific access control.""" + user: UserCore +} + +"""The connection type for ProtectedEnvironmentDeployAccessLevel.""" +type ProtectedEnvironmentDeployAccessLevelConnection { + """A list of edges.""" + edges: [ProtectedEnvironmentDeployAccessLevelEdge] + + """A list of nodes.""" + nodes: [ProtectedEnvironmentDeployAccessLevel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProtectedEnvironmentDeployAccessLevelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ProtectedEnvironmentDeployAccessLevel +} + +"""An edge in a connection.""" +type ProtectedEnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ProtectedEnvironment +} + +"""Represents the push access level of a branch protection.""" +type PushAccessLevel { + """GitLab::Access level.""" + accessLevel: Int! + + """Human readable representation for this access level.""" + accessLevelDescription: String! + + """Group associated with this access level.""" + group: Group + + """User associated with this access level.""" + user: UserCore +} + +"""The connection type for PushAccessLevel.""" +type PushAccessLevelConnection { + """A list of edges.""" + edges: [PushAccessLevelEdge] + + """A list of nodes.""" + nodes: [PushAccessLevel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PushAccessLevelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: PushAccessLevel +} + +"""Represents rules that commit pushes must follow.""" +type PushRules { + """Indicates whether commits not signed through GPG will be rejected.""" + rejectUnsignedCommits: Boolean! +} + +"""Pypi metadata""" +type PypiMetadata { + """ID of the metadatum.""" + id: PackagesPypiMetadatumID! + + """Required Python version of the Pypi package.""" + requiredPython: String +} + +type Query { + """Find an issue board list.""" + boardList( + """Global ID of the list.""" + id: ListID! + + """Filters applied when getting issue metadata in the board list.""" + issueFilters: BoardIssueInput + ): BoardList + + """CI related settings that apply to the entire instance.""" + ciApplicationSettings: CiApplicationSettings + + """ + Linted and processed contents of a CI config. + Should not be requested more than once per request. + + """ + ciConfig( + """Project of the CI config.""" + projectPath: ID! + + """Sha for the pipeline.""" + sha: String + + """Contents of `.gitlab-ci.yml`.""" + content: String! + + """Run pipeline creation simulation, or only do static check.""" + dryRun: Boolean + ): CiConfig + + """CI/CD minutes usage data for a namespace.""" + ciMinutesUsage( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """Global ID of the Namespace for the monthly CI/CD minutes usage.""" + namespaceId: NamespaceID + ): CiMinutesNamespaceMonthlyUsageConnection + + """List of the instance's CI/CD variables.""" + ciVariables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiInstanceVariableConnection + + """Find a container repository.""" + containerRepository( + """Global ID of the container repository.""" + id: ContainerRepositoryID! + ): ContainerRepositoryDetails + + """Fields related to the current license.""" + currentLicense: CurrentLicense + + """Get information about current user.""" + currentUser: UserCore + + """Fields related to design management.""" + designManagement: DesignManagement! + + """ + Get configured DevOps adoption namespaces. **BETA** This endpoint is subject to change without notice. + """ + devopsAdoptionEnabledNamespaces( + """Filter by display namespace.""" + displayNamespaceId: NamespaceID + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DevopsAdoptionEnabledNamespaceConnection + + """Testing endpoint to validate the API with""" + echo( + """Text to echo back.""" + text: String! + ): String! + epicBoardList( + """Global ID of the list.""" + id: BoardsEpicListID! + + """Filters applied when getting epic metadata in the epic board list.""" + epicFilters: EpicFilters + ): EpicList + + """Find a Geo node.""" + geoNode( + """Name of the Geo node. Defaults to the current Geo node name.""" + name: String + ): GeoNode + + """Whether Gitpod is enabled in application settings.""" + gitpodEnabled: Boolean + + """Find a group.""" + group( + """ + Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. + """ + fullPath: ID! + ): Group + + """Fields related to Instance Security Dashboard.""" + instanceSecurityDashboard: InstanceSecurityDashboard + + """Find an issue.""" + issue( + """Global ID of the issue.""" + id: IssueID! + ): Issue + + """Find an iteration.""" + iteration( + """Find an iteration by its ID.""" + id: IterationID! + ): Iteration + + """All jobs on this GitLab instance.""" + jobs( + """Filter jobs by status.""" + statuses: [CiJobStatus!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiJobConnection + + """Fields related to entries in the license history.""" + licenseHistoryEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LicenseHistoryEntryConnection + + """Find a merge request.""" + mergeRequest( + """Global ID of the merge request.""" + id: MergeRequestID! + ): MergeRequest + + """Metadata about GitLab.""" + metadata: Metadata + + """Find a milestone.""" + milestone( + """Find a milestone by its ID.""" + id: MilestoneID! + ): Milestone + + """Find a namespace.""" + namespace( + """ + Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. + """ + fullPath: ID! + ): Namespace + + """ + Find a package. This field can only be resolved for one query in any single request. + """ + package( + """Global ID of the package.""" + id: PackagesPackageID! + ): PackageDetailsType + + """Find a project.""" + project( + """ + Full path of the project, group, or namespace. For example, `gitlab-org/gitlab-foss`. + """ + fullPath: ID! + ): Project + + """Find projects visible to the current user.""" + projects( + """Return only projects that the current user is a member of.""" + membership: Boolean + + """ + Search query, which can be for the project name, a path, or a description. + """ + search: String + + """Include namespace in project search.""" + searchNamespaces: Boolean + + """Filter projects by topics.""" + topics: [String!] + + """Filter projects by IDs.""" + ids: [ID!] + + """ + Sort order of results. Format: `_`, for example: `id_desc` or `name_asc` + """ + sort: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """Information about the complexity of the GraphQL query.""" + queryComplexity: QueryComplexity + + """Find a runner.""" + runner( + """Runner ID.""" + id: CiRunnerID! + ): CiRunner + + """Supported runner platforms.""" + runnerPlatforms( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RunnerPlatformConnection + + """Runner setup instructions.""" + runnerSetup( + """Platform to generate the instructions for.""" + platform: String! + + """Architecture to generate the instructions for.""" + architecture: String! + ): RunnerSetup + + """Find runners visible to the current user.""" + runners( + """Filter runners by `paused` (true) or `active` (false) status.""" + paused: Boolean + + """Filter runners by status.""" + status: CiRunnerStatus + + """Filter runners by type.""" + type: CiRunnerType + + """Filter by tags associated with the runner (comma-separated or array).""" + tagList: [String!] + + """Filter by full token or partial text in description field.""" + search: String + + """Sort order of results.""" + sort: CiRunnerSort + + """Filter by upgrade status.""" + upgradeStatus: CiRunnerUpgradeStatus + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): CiRunnerConnection + + """Find Snippets visible to the current user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """ID of an author.""" + authorId: UserID + + """ID of a project.""" + projectId: ProjectID + + """Type of snippet.""" + type: TypeEnum + + """Explore personal snippets.""" + explore: Boolean + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Fields related to entries in future subscriptions.""" + subscriptionFutureEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SubscriptionFutureEntryConnection + + """Find timelogs visible to the current user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """Retrieve a single to-do item""" + todo( + """ID of the to-do item.""" + id: TodoID! + ): Todo + + """Find project topics.""" + topics( + """Search query for topic name.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TopicConnection + + """Get statistics on the instance.""" + usageTrendsMeasurements( + """Type of measurement or statistics to retrieve.""" + identifier: MeasurementIdentifier! + + """Measurement recorded after this date.""" + recordedAfter: Time + + """Measurement recorded before this date.""" + recordedBefore: Time + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UsageTrendsMeasurementConnection + + """Find a user.""" + user( + """ID of the User.""" + id: UserID + + """Username of the User.""" + username: String + ): UserCore + + """Find users.""" + users( + """List of user Global IDs.""" + ids: [ID!] + + """List of usernames.""" + usernames: [String!] + + """Sort users by this criteria.""" + sort: Sort = created_desc + + """Query to search users by name, username, or primary email.""" + search: String + + """Return only admin users.""" + admins: Boolean = false + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ + Vulnerabilities reported on projects on the current user's instance security dashboard. + """ + vulnerabilities( + """Filter vulnerabilities by project.""" + projectId: [ID!] + + """Filter vulnerabilities by report type.""" + reportType: [VulnerabilityReportType!] + + """Filter vulnerabilities by severity.""" + severity: [VulnerabilitySeverity!] + + """Filter vulnerabilities by state.""" + state: [VulnerabilityState!] + + """Filter vulnerabilities by VulnerabilityScanner.externalId.""" + scanner: [String!] + + """Filter vulnerabilities by scanner ID.""" + scannerId: [VulnerabilitiesScannerID!] + + """List vulnerabilities by sort order.""" + sort: VulnerabilitySort = severity_desc + + """ + Returns only the vulnerabilities which have been resolved on default branch. + """ + hasResolution: Boolean + + """Returns only the vulnerabilities which have linked issues.""" + hasIssues: Boolean + + """ + Filter vulnerabilities by location image. When this filter is present, the + response only matches entries for a `reportType` that includes + `container_scanning`, `cluster_image_scanning`. + """ + image: [String!] + + """ + Filter vulnerabilities by `cluster_id`. Vulnerabilities with a `reportType` + of `cluster_image_scanning` are only included with this filter. + """ + clusterId: [ClustersClusterID!] + + """ + Filter vulnerabilities by `cluster_agent_id`. Vulnerabilities with a + `reportType` of `cluster_image_scanning` are only included with this filter. + """ + clusterAgentId: [ClustersAgentID!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityConnection + + """ + The historical number of vulnerabilities per day for the projects on the current user's instance security dashboard. + """ + vulnerabilitiesCountByDay( + """First day for which to fetch vulnerability history.""" + startDate: ISO8601Date! + + """Last day for which to fetch vulnerability history.""" + endDate: ISO8601Date! + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilitiesCountByDayConnection + + """Find a vulnerability.""" + vulnerability( + """Global ID of the Vulnerability.""" + id: VulnerabilityID! + ): Vulnerability + + """ + Find a work item. Returns `null` if `work_items` feature flag is disabled. + Introduced in 15.1: This feature is in Alpha. It can be changed or removed at any time. + """ + workItem( + """Global ID of the work item.""" + id: WorkItemID! + ): WorkItem @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.1.") +} + +type QueryComplexity { + """GraphQL query complexity limit.""" + limit: Int + + """GraphQL query complexity score.""" + score: Int +} + +"""Recent failure history of a test case.""" +type RecentFailures { + """Name of the base branch of the project.""" + baseBranch: String + + """Number of times the test case has failed in the past 14 days.""" + count: Int +} + +"""State of a Geo registry""" +enum RegistryState { + """Registry waiting to be synced.""" + PENDING + + """Registry currently syncing.""" + STARTED + + """Registry that is synced.""" + SYNCED + + """Registry that failed to sync.""" + FAILED +} + +"""Represents a release""" +type Release { + """Assets of the release.""" + assets: ReleaseAssets + + """User that created the release.""" + author: UserCore + + """Commit associated with the release.""" + commit: Commit + + """Timestamp of when the release was created.""" + createdAt: Time + + """Description (also known as "release notes") of the release.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Evidence for the release.""" + evidences( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseEvidenceConnection + + """Indicates the release is an historical release.""" + historicalRelease: Boolean + + """Global ID of the release.""" + id: ReleaseID! + + """Links of the release.""" + links: ReleaseLinks + + """Milestones associated to the release.""" + milestones( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MilestoneConnection + + """Name of the release.""" + name: String + + """Timestamp of when the release was released.""" + releasedAt: Time + + """Name of the tag associated with the release.""" + tagName: String + + """Relative web path to the tag associated with the release.""" + tagPath: String + + """Indicates the release is an upcoming release.""" + upcomingRelease: Boolean +} + +"""Represents an asset link associated with a release""" +type ReleaseAssetLink { + """Relative path for the direct asset link.""" + directAssetPath: String + + """Direct asset URL of the link.""" + directAssetUrl: String + + """Indicates the link points to an external resource.""" + external: Boolean + + """ID of the link.""" + id: ID! + + """ + Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`. + """ + linkType: ReleaseAssetLinkType + + """Name of the link.""" + name: String + + """URL of the link.""" + url: String +} + +"""The connection type for ReleaseAssetLink.""" +type ReleaseAssetLinkConnection { + """A list of edges.""" + edges: [ReleaseAssetLinkEdge] + + """A list of nodes.""" + nodes: [ReleaseAssetLink] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of ReleaseAssetLinkCreate""" +input ReleaseAssetLinkCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the asset link.""" + name: String! + + """URL of the asset link.""" + url: String! + + """Relative path for a direct asset link.""" + directAssetPath: String + + """Type of the asset link.""" + linkType: ReleaseAssetLinkType = OTHER + + """Full path of the project the asset link is associated with.""" + projectPath: ID! + + """Name of the associated release's tag.""" + tagName: String! +} + +"""Autogenerated return type of ReleaseAssetLinkCreate""" +type ReleaseAssetLinkCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Asset link after mutation.""" + link: ReleaseAssetLink +} + +"""Autogenerated input type of ReleaseAssetLinkDelete""" +input ReleaseAssetLinkDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the release asset link to delete.""" + id: ReleasesLinkID! +} + +"""Autogenerated return type of ReleaseAssetLinkDelete""" +type ReleaseAssetLinkDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted release asset link.""" + link: ReleaseAssetLink +} + +"""An edge in a connection.""" +type ReleaseAssetLinkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ReleaseAssetLink +} + +"""Fields that are available when modifying a release asset link""" +input ReleaseAssetLinkInput { + """Name of the asset link.""" + name: String! + + """URL of the asset link.""" + url: String! + + """Relative path for a direct asset link.""" + directAssetPath: String + + """Type of the asset link.""" + linkType: ReleaseAssetLinkType = OTHER +} + +"""Type of the link: `other`, `runbook`, `image`, `package`""" +enum ReleaseAssetLinkType { + """Other link type""" + OTHER + + """Runbook link type""" + RUNBOOK + + """Package link type""" + PACKAGE + + """Image link type""" + IMAGE +} + +"""Autogenerated input type of ReleaseAssetLinkUpdate""" +input ReleaseAssetLinkUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the release asset link to update.""" + id: ReleasesLinkID! + + """Name of the asset link.""" + name: String + + """URL of the asset link.""" + url: String + + """Relative path for a direct asset link.""" + directAssetPath: String + + """Type of the asset link.""" + linkType: ReleaseAssetLinkType +} + +"""Autogenerated return type of ReleaseAssetLinkUpdate""" +type ReleaseAssetLinkUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Asset link after mutation.""" + link: ReleaseAssetLink +} + +"""A container for all assets associated with a release""" +type ReleaseAssets { + """Number of assets of the release.""" + count: Int + + """Asset links of the release.""" + links( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseAssetLinkConnection + + """Sources of the release.""" + sources( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ReleaseSourceConnection +} + +"""Fields that are available when modifying release assets""" +input ReleaseAssetsInput { + """List of asset links to associate to the release.""" + links: [ReleaseAssetLinkInput!] +} + +"""The connection type for Release.""" +type ReleaseConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [ReleaseEdge] + + """A list of nodes.""" + nodes: [Release] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of ReleaseCreate""" +input ReleaseCreateInput { + """Full path of the project the release is associated with.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the tag to associate with the release.""" + tagName: String! + + """Message to use if creating a new annotated tag.""" + tagMessage: String + + """Commit SHA or branch name to use if creating a new tag.""" + ref: String + + """Name of the release.""" + name: String + + """Description (also known as "release notes") of the release.""" + description: String + + """ + Date and time for the release. Defaults to the current time. Expected in ISO + 8601 format (`2019-03-15T08:00:00Z`). Only provide this field if creating an + upcoming or historical release. + """ + releasedAt: Time + + """ + Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. + """ + milestones: [String!] + + """Assets associated to the release.""" + assets: ReleaseAssetsInput +} + +"""Autogenerated return type of ReleaseCreate""" +type ReleaseCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Release after mutation.""" + release: Release +} + +"""Autogenerated input type of ReleaseDelete""" +input ReleaseDeleteInput { + """Full path of the project the release is associated with.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the tag associated with the release to delete.""" + tagName: String! +} + +"""Autogenerated return type of ReleaseDelete""" +type ReleaseDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted release.""" + release: Release +} + +"""An edge in a connection.""" +type ReleaseEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Release +} + +"""Evidence for a release""" +type ReleaseEvidence { + """Timestamp when the evidence was collected.""" + collectedAt: Time + + """URL from where the evidence can be downloaded.""" + filepath: String + + """ID of the evidence.""" + id: ID! + + """SHA1 ID of the evidence hash.""" + sha: String +} + +"""The connection type for ReleaseEvidence.""" +type ReleaseEvidenceConnection { + """A list of edges.""" + edges: [ReleaseEvidenceEdge] + + """A list of nodes.""" + nodes: [ReleaseEvidence] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ReleaseEvidenceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ReleaseEvidence +} + +""" +A `ReleaseID` is a global ID. It is encoded as a string. + +An example `ReleaseID` is: `"gid://gitlab/Release/1"`. +""" +scalar ReleaseID + +type ReleaseLinks { + """ + HTTP URL of the issues page, filtered by this release and `state=closed`. + """ + closedIssuesUrl: String + + """ + HTTP URL of the merge request page , filtered by this release and `state=closed`. + """ + closedMergeRequestsUrl: String + + """HTTP URL of the release's edit page.""" + editUrl: String + + """ + HTTP URL of the merge request page , filtered by this release and `state=merged`. + """ + mergedMergeRequestsUrl: String + + """ + HTTP URL of the issues page, filtered by this release and `state=open`. + """ + openedIssuesUrl: String + + """ + HTTP URL of the merge request page, filtered by this release and `state=open`. + """ + openedMergeRequestsUrl: String + + """HTTP URL of the release.""" + selfUrl: String +} + +""" +A `ReleasesLinkID` is a global ID. It is encoded as a string. + +An example `ReleasesLinkID` is: `"gid://gitlab/Releases::Link/1"`. +""" +scalar ReleasesLinkID + +"""Values for sorting releases""" +enum ReleaseSort { + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC + + """Released at by descending order.""" + RELEASED_AT_DESC + + """Released at by ascending order.""" + RELEASED_AT_ASC +} + +""" +Represents the source code attached to a release in a particular format +""" +type ReleaseSource { + """Format of the source.""" + format: String + + """Download URL of the source.""" + url: String +} + +"""The connection type for ReleaseSource.""" +type ReleaseSourceConnection { + """A list of edges.""" + edges: [ReleaseSourceEdge] + + """A list of nodes.""" + nodes: [ReleaseSource] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ReleaseSourceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ReleaseSource +} + +"""Release tag ID wildcard values""" +enum ReleaseTagWildcardId { + """No release tag is assigned.""" + NONE + + """Release tag is assigned.""" + ANY +} + +"""Autogenerated input type of ReleaseUpdate""" +input ReleaseUpdateInput { + """Full path of the project the release is associated with.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the tag associated with the release.""" + tagName: String! + + """Name of the release.""" + name: String + + """Description (release notes) of the release.""" + description: String + + """Release date.""" + releasedAt: Time + + """ + Title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. + """ + milestones: [String!] +} + +"""Autogenerated return type of ReleaseUpdate""" +type ReleaseUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Release after mutation.""" + release: Release +} + +"""Autogenerated input type of RemoveProjectFromSecurityDashboard""" +input RemoveProjectFromSecurityDashboardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the project to remove from the Instance Security Dashboard.""" + id: ProjectID! +} + +"""Autogenerated return type of RemoveProjectFromSecurityDashboard""" +type RemoveProjectFromSecurityDashboardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +enum ReplicationStateEnum { + """Replication process has not started.""" + PENDING + + """Replication process is in progress.""" + STARTED + + """Replication process finished successfully.""" + SYNCED + + """Replication process finished but failed.""" + FAILED +} + +"""Autogenerated input type of RepositionImageDiffNote""" +input RepositionImageDiffNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the DiffNote to update.""" + id: DiffNoteID! + + """Position of this note on a diff.""" + position: UpdateDiffImagePositionInput! +} + +"""Autogenerated return type of RepositionImageDiffNote""" +type RepositionImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +type Repository { + """Blobs contained within the repository""" + blobs( + """Array of desired blob paths.""" + paths: [String!]! + + """Commit ref to get the blobs from. Default value is HEAD.""" + ref: String = null + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RepositoryBlobConnection + + """ + Names of branches available in this repository that match the search pattern. + """ + branchNames( + """Pattern to search for branch names by.""" + searchPattern: String! + + """Number of branch names to skip.""" + offset: Int! + + """Number of branch names to return.""" + limit: Int! + ): [String!] + + """Shows a disk path of the repository.""" + diskPath: String + + """Indicates repository has no visible content.""" + empty: Boolean! + + """Indicates a corresponding Git repository exists on disk.""" + exists: Boolean! + + """Paginated tree of the repository.""" + paginatedTree( + """Path to get the tree for. Default value is the root of the repository.""" + path: String = "" + + """Used to get a recursive tree. Default is false.""" + recursive: Boolean = false + + """Commit ref to get the tree for. Default value is HEAD.""" + ref: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TreeConnection + + """Default branch of the repository.""" + rootRef: String + + """Tree of the repository.""" + tree( + """Path to get the tree for. Default value is the root of the repository.""" + path: String = "" + + """Used to get a recursive tree. Default is false.""" + recursive: Boolean = false + + """Commit ref to get the tree for. Default value is HEAD.""" + ref: String + ): Tree +} + +type RepositoryBlob { + """Whether the current project is archived.""" + archived: Boolean + + """Web path to blob blame page.""" + blamePath: String + + """Whether the current user can push to the branch.""" + canCurrentUserPushToBranch: Boolean + + """Whether the current user can modify the blob.""" + canModifyBlob: Boolean + + """Web path for code navigation.""" + codeNavigationPath: String + + """List of code owners for the blob.""" + codeOwners: [UserCore!] + + """Web path to edit the blob in the old-style editor.""" + editBlobPath: String + + """Web path to blob on an environment.""" + environmentExternalUrlForRouteMap: String + + """Environment on which the blob is available.""" + environmentFormattedExternalUrl: String + + """External storage being used, if enabled (for instance, 'LFS').""" + externalStorage: String + + """Web path to download the raw blob via external storage, if enabled.""" + externalStorageUrl: String + + """Expected format of the blob based on the extension.""" + fileType: String + + """Web path to find file.""" + findFilePath: String + + """Web path to edit this blob using a forked project.""" + forkAndEditPath: String + + """Web path to view this blob using a forked project.""" + forkAndViewPath: String + + """URL to the blob within Gitpod.""" + gitpodBlobUrl: String + + """Web path to blob history page.""" + historyPath: String + + """ID of the blob.""" + id: ID! + + """Web path to edit this blob in the Web IDE.""" + ideEditPath: String + + """Web path to edit this blob in the Web IDE using a forked project.""" + ideForkAndEditPath: String + + """Blob language.""" + language: String + + """LFS OID of the blob.""" + lfsOid: String + + """Blob mode.""" + mode: String + + """Blob name.""" + name: String + + """OID of the blob.""" + oid: String! + + """Path of the blob.""" + path: String! + + """Web path to blob permalink.""" + permalinkPath: String + + """Web path to edit .gitlab-ci.yml file.""" + pipelineEditorPath: String + + """Blob plain highlighted data.""" + plainData: String + + """Web path for the root of the blob.""" + projectBlobPathRoot: String + + """Raw content of the blob.""" + rawBlob: String + + """Web path to download the raw blob.""" + rawPath: String + + """Size (in bytes) of the blob, or the blob target if stored externally.""" + rawSize: Int + + """Raw content of the blob, if the blob is text data.""" + rawTextBlob: String + + """Web path to replace the blob content.""" + replacePath: String + + """Blob content rich viewer.""" + richViewer: BlobViewer + + """Blob content simple viewer.""" + simpleViewer: BlobViewer! + + """Size (in bytes) of the blob.""" + size: Int + + """ + Whether the blob's content is stored externally (for instance, in LFS). + """ + storedExternally: Boolean + + """Web path of the blob.""" + webPath: String +} + +"""The connection type for RepositoryBlob.""" +type RepositoryBlobConnection { + """A list of edges.""" + edges: [RepositoryBlobEdge] + + """A list of nodes.""" + nodes: [RepositoryBlob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RepositoryBlobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: RepositoryBlob +} + +"""Represents a requirement""" +type Requirement { + """Author of the requirement.""" + author: UserCore! + + """Timestamp of when the requirement was created.""" + createdAt: Time! + + """Description of the requirement.""" + description: String + + """GitLab Flavored Markdown rendering of `description`.""" + descriptionHtml: String + + """ID of the requirement.""" + id: ID! + + """Internal ID of the requirement.""" + iid: ID! + + """Indicates if latest test report was created by user.""" + lastTestReportManuallyCreated: Boolean + + """Latest requirement test report state.""" + lastTestReportState: TestReportState + + """Project to which the requirement belongs.""" + project: Project! + + """State of the requirement.""" + state: RequirementState! + + """Test reports of the requirement.""" + testReports( + """List test reports by sort order.""" + sort: Sort + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TestReportConnection + + """Title of the requirement.""" + title: String + + """GitLab Flavored Markdown rendering of `title`.""" + titleHtml: String + + """Timestamp of when the requirement was last updated.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: RequirementPermissions! +} + +"""The connection type for Requirement.""" +type RequirementConnection { + """A list of edges.""" + edges: [RequirementEdge] + + """A list of nodes.""" + nodes: [Requirement] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RequirementEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Requirement +} + +"""Check permissions for the current user on a requirement""" +type RequirementPermissions { + """Indicates the user can perform `admin_requirement` on this resource""" + adminRequirement: Boolean! + + """Indicates the user can perform `create_requirement` on this resource""" + createRequirement: Boolean! + + """Indicates the user can perform `destroy_requirement` on this resource""" + destroyRequirement: Boolean! + + """Indicates the user can perform `read_requirement` on this resource""" + readRequirement: Boolean! + + """Indicates the user can perform `update_requirement` on this resource""" + updateRequirement: Boolean! +} + +"""State of a requirement""" +enum RequirementState { + """Open requirement.""" + OPENED + + """Archived requirement.""" + ARCHIVED +} + +"""Counts of requirements by their state""" +type RequirementStatesCount { + """Number of archived requirements.""" + archived: Int + + """Number of opened requirements.""" + opened: Int +} + +"""Status of a requirement based on last test report""" +enum RequirementStatusFilter { + """Requirements without any test report.""" + MISSING + + """Passed test report.""" + PASSED + + """Failed test report.""" + FAILED +} + +interface ResolvableInterface { + """Indicates if the object can be resolved.""" + resolvable: Boolean! + + """Indicates if the object is resolved.""" + resolved: Boolean! + + """Timestamp of when the object was resolved.""" + resolvedAt: Time + + """User who resolved the object.""" + resolvedBy: UserCore +} + +type RootStorageStatistics { + """CI artifacts size in bytes.""" + buildArtifactsSize: Float! + + """Container Registry size in bytes.""" + containerRegistrySize: Float! + + """Dependency Proxy sizes in bytes.""" + dependencyProxySize: Float! + + """LFS objects size in bytes.""" + lfsObjectsSize: Float! + + """Packages size in bytes.""" + packagesSize: Float! + + """CI pipeline artifacts size in bytes.""" + pipelineArtifactsSize: Float! + + """Git repository size in bytes.""" + repositorySize: Float! + + """Snippets size in bytes.""" + snippetsSize: Float! + + """Total storage in bytes.""" + storageSize: Float! + + """Uploads size in bytes.""" + uploadsSize: Float! + + """Wiki size in bytes.""" + wikiSize: Float! +} + +type RunnerArchitecture { + """Download location for the runner for the platform architecture.""" + downloadLocation: String! + + """Name of the runner platform architecture.""" + name: String! +} + +"""The connection type for RunnerArchitecture.""" +type RunnerArchitectureConnection { + """A list of edges.""" + edges: [RunnerArchitectureEdge] + + """A list of nodes.""" + nodes: [RunnerArchitecture] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RunnerArchitectureEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: RunnerArchitecture +} + +"""Autogenerated input type of RunnerDelete""" +input RunnerDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the runner to delete.""" + id: CiRunnerID! +} + +"""Autogenerated return type of RunnerDelete""" +type RunnerDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type RunnerPermissions { + """Indicates the user can perform `delete_runner` on this resource""" + deleteRunner: Boolean! + + """Indicates the user can perform `read_runner` on this resource""" + readRunner: Boolean! + + """Indicates the user can perform `update_runner` on this resource""" + updateRunner: Boolean! +} + +type RunnerPlatform { + """Runner architectures supported for the platform.""" + architectures( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RunnerArchitectureConnection + + """Human readable name of the runner platform.""" + humanReadableName: String! + + """Name slug of the runner platform.""" + name: String! +} + +"""The connection type for RunnerPlatform.""" +type RunnerPlatformConnection { + """A list of edges.""" + edges: [RunnerPlatformEdge] + + """A list of nodes.""" + nodes: [RunnerPlatform] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RunnerPlatformEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: RunnerPlatform +} + +type RunnerSetup { + """Instructions for installing the runner on the specified architecture.""" + installInstructions: String! + + """ + Instructions for registering the runner. The actual registration tokens are + not included in the commands. Instead, a placeholder `$REGISTRATION_TOKEN` is shown. + """ + registerInstructions: String +} + +"""Autogenerated input type of RunnersRegistrationTokenReset""" +input RunnersRegistrationTokenResetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Scope of the object to reset the token for.""" + type: CiRunnerType! + + """ + ID of the project or group to reset the token for. Omit if resetting instance runner token. + """ + id: ID +} + +"""Autogenerated return type of RunnersRegistrationTokenReset""" +type RunnersRegistrationTokenResetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Runner token after mutation.""" + token: String +} + +"""Autogenerated input type of RunnerUpdate""" +input RunnerUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the runner to update.""" + id: CiRunnerID! + + """Description of the runner.""" + description: String + + """Runner's maintenance notes.""" + maintenanceNote: String + + """Maximum timeout (in seconds) for jobs processed by the runner.""" + maximumTimeout: Int + + """Access level of the runner.""" + accessLevel: CiRunnerAccessLevel + + """Indicates the runner is not allowed to receive jobs.""" + paused: Boolean + + """Indicates the runner is locked.""" + locked: Boolean + + """Indicates the runner is able to run untagged jobs.""" + runUntagged: Boolean + + """Tags associated with the runner.""" + tagList: [String!] + + """ + Projects associated with the runner. Available only for project runners. + """ + associatedProjects: [ProjectID!] + + """ + Public projects' "minutes cost factor" associated with the runner (GitLab.com only). + """ + publicProjectsMinutesCostFactor: Float + + """ + Private projects' "minutes cost factor" associated with the runner (GitLab.com only). + """ + privateProjectsMinutesCostFactor: Float +} + +"""Autogenerated return type of RunnerUpdate""" +type RunnerUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Runner after mutation.""" + runner: CiRunner +} + +"""Represents a CI configuration of SAST""" +type SastCiConfiguration { + """List of analyzers entities attached to SAST configuration.""" + analyzers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SastCiConfigurationAnalyzersEntityConnection + + """List of global entities related to SAST configuration.""" + global( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SastCiConfigurationEntityConnection + + """List of pipeline entities related to SAST configuration.""" + pipeline( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SastCiConfigurationEntityConnection +} + +"""Represents an analyzer entity in SAST CI configuration""" +type SastCiConfigurationAnalyzersEntity { + """Analyzer description that is displayed on the form.""" + description: String + + """Indicates whether an analyzer is enabled.""" + enabled: Boolean + + """Analyzer label used in the config UI.""" + label: String + + """Name of the analyzer.""" + name: String + + """List of supported variables.""" + variables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SastCiConfigurationEntityConnection +} + +"""The connection type for SastCiConfigurationAnalyzersEntity.""" +type SastCiConfigurationAnalyzersEntityConnection { + """A list of edges.""" + edges: [SastCiConfigurationAnalyzersEntityEdge] + + """A list of nodes.""" + nodes: [SastCiConfigurationAnalyzersEntity] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SastCiConfigurationAnalyzersEntityEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SastCiConfigurationAnalyzersEntity +} + +"""Represents the analyzers entity in SAST CI configuration""" +input SastCiConfigurationAnalyzersEntityInput { + """Name of analyzer.""" + name: String! + + """State of the analyzer.""" + enabled: Boolean! + + """List of variables for the analyzer.""" + variables: [SastCiConfigurationEntityInput!] +} + +"""Represents an entity in SAST CI configuration""" +type SastCiConfigurationEntity { + """Default value that is used if value is empty.""" + defaultValue: String + + """Entity description that is displayed on the form.""" + description: String + + """CI keyword of entity.""" + field: String + + """Label for entity used in the form.""" + label: String + + """Different possible values of the field.""" + options( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SastCiConfigurationOptionsEntityConnection + + """Size of the UI component.""" + size: SastUiComponentSize + + """Type of the field value.""" + type: String + + """Current value of the entity.""" + value: String +} + +"""The connection type for SastCiConfigurationEntity.""" +type SastCiConfigurationEntityConnection { + """A list of edges.""" + edges: [SastCiConfigurationEntityEdge] + + """A list of nodes.""" + nodes: [SastCiConfigurationEntity] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SastCiConfigurationEntityEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SastCiConfigurationEntity +} + +"""Represents an entity in SAST CI configuration""" +input SastCiConfigurationEntityInput { + """CI keyword of entity.""" + field: String! + + """Default value that is used if value is empty.""" + defaultValue: String! + + """Current value of the entity.""" + value: String! +} + +"""Represents a CI configuration of SAST""" +input SastCiConfigurationInput { + """List of global entities related to SAST configuration.""" + global: [SastCiConfigurationEntityInput!] + + """List of pipeline entities related to SAST configuration.""" + pipeline: [SastCiConfigurationEntityInput!] + + """List of analyzers and related variables for the SAST configuration.""" + analyzers: [SastCiConfigurationAnalyzersEntityInput!] +} + +"""Represents an entity for options in SAST CI configuration""" +type SastCiConfigurationOptionsEntity { + """Label of option entity.""" + label: String + + """Value of option entity.""" + value: String +} + +"""The connection type for SastCiConfigurationOptionsEntity.""" +type SastCiConfigurationOptionsEntityConnection { + """A list of edges.""" + edges: [SastCiConfigurationOptionsEntityEdge] + + """A list of nodes.""" + nodes: [SastCiConfigurationOptionsEntity] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SastCiConfigurationOptionsEntityEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SastCiConfigurationOptionsEntity +} + +"""Size of UI component in SAST configuration page""" +enum SastUiComponentSize { + """Size of UI component in SAST configuration page is small.""" + SMALL + + """Size of UI component in SAST configuration page is medium.""" + MEDIUM + + """Size of UI component in SAST configuration page is large.""" + LARGE +} + +type SavedReply { + """Content of the saved reply.""" + content: String! + + """Global ID of the saved reply.""" + id: UsersSavedReplyID! + + """Name of the saved reply.""" + name: String! +} + +"""The connection type for SavedReply.""" +type SavedReplyConnection { + """A list of edges.""" + edges: [SavedReplyEdge] + + """A list of nodes.""" + nodes: [SavedReply] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of SavedReplyCreate""" +input SavedReplyCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Name of the saved reply.""" + name: String! + + """Content of the saved reply.""" + content: String! +} + +"""Autogenerated return type of SavedReplyCreate""" +type SavedReplyCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Saved reply after mutation.""" + savedReply: SavedReply +} + +"""Autogenerated input type of SavedReplyDestroy""" +input SavedReplyDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the saved reply.""" + id: UsersSavedReplyID! +} + +"""Autogenerated return type of SavedReplyDestroy""" +type SavedReplyDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Saved reply after mutation.""" + savedReply: SavedReply +} + +"""An edge in a connection.""" +type SavedReplyEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SavedReply +} + +"""Autogenerated input type of SavedReplyUpdate""" +input SavedReplyUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the saved reply.""" + id: UsersSavedReplyID! + + """Name of the saved reply.""" + name: String! + + """Content of the saved reply.""" + content: String! +} + +"""Autogenerated return type of SavedReplyUpdate""" +type SavedReplyUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Saved reply after mutation.""" + savedReply: SavedReply +} + +"""Represents the security scan information""" +type Scan { + """List of errors.""" + errors: [String!]! + + """Name of the scan.""" + name: String! + + """Indicates the status of the scan.""" + status: ScanStatus! + + """List of warnings.""" + warnings: [String!]! +} + +"""The connection type for Scan.""" +type ScanConnection { + """A list of edges.""" + edges: [ScanEdge] + + """A list of nodes.""" + nodes: [Scan] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ScanEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Scan +} + +"""Represents the scan execution policy""" +type ScanExecutionPolicy implements OrchestrationPolicy { + """Description of the policy.""" + description: String! + + """Indicates whether this policy is enabled.""" + enabled: Boolean! + + """Name of the policy.""" + name: String! + + """Source of the policy. Its fields depend on the source type.""" + source: SecurityPolicySource! + + """Timestamp of when the policy YAML was last updated.""" + updatedAt: Time! + + """YAML definition of the policy.""" + yaml: String! +} + +"""Autogenerated input type of ScanExecutionPolicyCommit""" +input ScanExecutionPolicyCommitInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + fullPath: String + + """YAML snippet of the policy.""" + policyYaml: String! + + """Changes the operation mode.""" + operationMode: MutationOperationMode! + + """ + Name of the policy. If the name is null, the `name` field from `policy_yaml` is used. + """ + name: String +} + +"""Autogenerated return type of ScanExecutionPolicyCommit""" +type ScanExecutionPolicyCommitPayload { + """Name of the branch to which the policy changes are committed.""" + branch: String + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""The connection type for ScanExecutionPolicy.""" +type ScanExecutionPolicyConnection { + """A list of edges.""" + edges: [ScanExecutionPolicyEdge] + + """A list of nodes.""" + nodes: [ScanExecutionPolicy] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ScanExecutionPolicyEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ScanExecutionPolicy +} + +"""Represents a resource scanned by a security scan""" +type ScannedResource { + """HTTP request method used to access the URL.""" + requestMethod: String + + """URL scanned by the scanner.""" + url: String +} + +"""The connection type for ScannedResource.""" +type ScannedResourceConnection { + """A list of edges.""" + edges: [ScannedResourceEdge] + + """A list of nodes.""" + nodes: [ScannedResource] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ScannedResourceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ScannedResource +} + +"""Represents the scan result policy""" +type ScanResultPolicy implements OrchestrationPolicy { + """Description of the policy.""" + description: String! + + """Indicates whether this policy is enabled.""" + enabled: Boolean! + + """Approvers of the group type.""" + groupApprovers: [Group!] + + """Name of the policy.""" + name: String! + + """Timestamp of when the policy YAML was last updated.""" + updatedAt: Time! + + """Approvers of the user type.""" + userApprovers: [UserCore!] + + """YAML definition of the policy.""" + yaml: String! +} + +"""The connection type for ScanResultPolicy.""" +type ScanResultPolicyConnection { + """A list of edges.""" + edges: [ScanResultPolicyEdge] + + """A list of nodes.""" + nodes: [ScanResultPolicy] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ScanResultPolicyEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: ScanResultPolicy +} + +"""The status of the security scan""" +enum ScanStatus { + """The scan has been created.""" + CREATED + + """The report has been successfully prepared.""" + SUCCEEDED + + """The related CI build failed.""" + JOB_FAILED + + """The report artifact provided by the CI build couldn't be parsed.""" + REPORT_ERROR + + """Preparing the report for the scan.""" + PREPARING + + """Report couldn't be prepared.""" + PREPARATION_FAILED + + """Report for the scan has been removed from the database.""" + PURGED +} + +"""Autogenerated input type of SecurityFindingCreateIssue""" +input SecurityFindingCreateIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """UUID of the security finding to be used to create an issue.""" + uuid: String! + + """ID of the project to attach the issue to.""" + project: ProjectID! +} + +"""Autogenerated return type of SecurityFindingCreateIssue""" +type SecurityFindingCreateIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue +} + +"""Autogenerated input type of SecurityFindingDismiss""" +input SecurityFindingDismissInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """UUID of the finding to be dismissed.""" + uuid: String! + + """Comment why finding should be dismissed.""" + comment: String + + """Reason why finding should be dismissed.""" + dismissalReason: VulnerabilityDismissalReason +} + +"""Autogenerated return type of SecurityFindingDismiss""" +type SecurityFindingDismissPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """UUID of dismissed finding.""" + uuid: String +} + +"""Autogenerated input type of SecurityPolicyProjectAssign""" +input SecurityPolicyProjectAssignInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project or group.""" + fullPath: String + + """ID of the security policy project.""" + securityPolicyProjectId: ProjectID! +} + +"""Autogenerated return type of SecurityPolicyProjectAssign""" +type SecurityPolicyProjectAssignPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of SecurityPolicyProjectCreate""" +input SecurityPolicyProjectCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project or group.""" + fullPath: String +} + +"""Autogenerated return type of SecurityPolicyProjectCreate""" +type SecurityPolicyProjectCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Security Policy Project that was created.""" + project: Project +} + +"""Autogenerated input type of SecurityPolicyProjectUnassign""" +input SecurityPolicyProjectUnassignInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project or group.""" + fullPath: String +} + +"""Autogenerated return type of SecurityPolicyProjectUnassign""" +type SecurityPolicyProjectUnassignPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +enum SecurityPolicyRelationType { + """Policies defined for the project/group only.""" + DIRECT + + """Policies defined for the project/group and ancestor groups.""" + INHERITED + + """Policies defined for the project/group's ancestor groups only.""" + INHERITED_ONLY +} + +"""Represents a policy source. Its fields depend on the source type.""" +union SecurityPolicySource = GroupSecurityPolicySource | ProjectSecurityPolicySource + +"""Represents summary of a security report""" +type SecurityReportSummary { + """Aggregated counts for the `api_fuzzing` scan""" + apiFuzzing: SecurityReportSummarySection + + """Aggregated counts for the `cluster_image_scanning` scan""" + clusterImageScanning: SecurityReportSummarySection + + """Aggregated counts for the `container_scanning` scan""" + containerScanning: SecurityReportSummarySection + + """Aggregated counts for the `coverage_fuzzing` scan""" + coverageFuzzing: SecurityReportSummarySection + + """Aggregated counts for the `dast` scan""" + dast: SecurityReportSummarySection + + """Aggregated counts for the `dependency_scanning` scan""" + dependencyScanning: SecurityReportSummarySection + + """Aggregated counts for the `generic` scan""" + generic: SecurityReportSummarySection + + """Aggregated counts for the `sast` scan""" + sast: SecurityReportSummarySection + + """Aggregated counts for the `secret_detection` scan""" + secretDetection: SecurityReportSummarySection +} + +"""Represents a section of a summary of a security report""" +type SecurityReportSummarySection { + """List of the first 20 scanned resources.""" + scannedResources( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScannedResourceConnection + + """Total number of scanned resources.""" + scannedResourcesCount: Int + + """Path to download all the scanned resources in CSV format.""" + scannedResourcesCsvPath: String + + """List of security scans ran for the type.""" + scans( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ScanConnection! + + """Total number of vulnerabilities.""" + vulnerabilitiesCount: Int +} + +enum SecurityReportTypeEnum { + """SAST scan report""" + SAST + + """SAST IAC scan report""" + SAST_IAC + + """DAST scan report""" + DAST + + """DEPENDENCY SCANNING scan report""" + DEPENDENCY_SCANNING + + """CONTAINER SCANNING scan report""" + CONTAINER_SCANNING + + """SECRET DETECTION scan report""" + SECRET_DETECTION + + """COVERAGE FUZZING scan report""" + COVERAGE_FUZZING + + """API FUZZING scan report""" + API_FUZZING + + """CLUSTER IMAGE SCANNING scan report""" + CLUSTER_IMAGE_SCANNING +} + +"""Represents a list of security scanners""" +type SecurityScanners { + """List of analyzers which are available for the project.""" + available: [SecurityScannerType!] + + """List of analyzers which are enabled for the project.""" + enabled: [SecurityScannerType!] + + """List of analyzers which ran successfully in the latest pipeline.""" + pipelineRun: [SecurityScannerType!] +} + +"""The type of the security scanner""" +enum SecurityScannerType { + """SAST scanner""" + SAST + + """Sast Iac scanner""" + SAST_IAC + + """DAST scanner""" + DAST + + """Dependency Scanning scanner""" + DEPENDENCY_SCANNING + + """Container Scanning scanner""" + CONTAINER_SCANNING + + """Secret Detection scanner""" + SECRET_DETECTION + + """Coverage Fuzzing scanner""" + COVERAGE_FUZZING + + """API Fuzzing scanner""" + API_FUZZING + + """Cluster Image Scanning scanner""" + CLUSTER_IMAGE_SCANNING +} + +""" +A `SecurityTrainingProviderID` is a global ID. It is encoded as a string. + +An example `SecurityTrainingProviderID` is: `"gid://gitlab/Security::TrainingProvider/1"`. +""" +scalar SecurityTrainingProviderID + +"""Autogenerated input type of SecurityTrainingUpdate""" +input SecurityTrainingUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project.""" + projectPath: ID! + + """ID of the provider.""" + providerId: SecurityTrainingProviderID! + + """Sets the training provider as enabled for the project.""" + isEnabled: Boolean! + + """Sets the training provider as primary for the project.""" + isPrimary: Boolean +} + +"""Autogenerated return type of SecurityTrainingUpdate""" +type SecurityTrainingUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Represents the training entity subject to mutation.""" + training: ProjectSecurityTraining +} + +"""Represents a URL related to a security training""" +type SecurityTrainingUrl { + """Name of the vulnerability identifier.""" + identifier: String + + """Name of the training provider.""" + name: String + + """Status of the request to training provider.""" + status: TrainingUrlRequestStatus + + """URL of the link for security training content.""" + url: String +} + +"""A Sentry error""" +type SentryDetailedError { + """Count of occurrences.""" + count: Int! + + """Culprit of the error.""" + culprit: String! + + """External Base URL of the Sentry Instance.""" + externalBaseUrl: String! + + """External URL of the error.""" + externalUrl: String! + + """Commit the error was first seen.""" + firstReleaseLastCommit: String + + """Release short version the error was first seen.""" + firstReleaseShortVersion: String + + """Release version the error was first seen.""" + firstReleaseVersion: String + + """Timestamp when the error was first seen.""" + firstSeen: Time! + + """Last 24hr stats of the error.""" + frequency: [SentryErrorFrequency!]! + + """ + GitLab commit SHA attributed to the Error based on the release version. + """ + gitlabCommit: String + + """Path to the GitLab page for the GitLab commit attributed to the error.""" + gitlabCommitPath: String + + """URL of GitLab Issue.""" + gitlabIssuePath: String + + """ID (global ID) of the error.""" + id: ID! + + """Error tracking backend.""" + integrated: Boolean + + """Commit the error was last seen.""" + lastReleaseLastCommit: String + + """Release short version the error was last seen.""" + lastReleaseShortVersion: String + + """Release version the error was last seen.""" + lastReleaseVersion: String + + """Timestamp when the error was last seen.""" + lastSeen: Time! + + """Sentry metadata message of the error.""" + message: String + + """ID (Sentry ID) of the error.""" + sentryId: String! + + """ID of the project (Sentry project).""" + sentryProjectId: ID! + + """Name of the project affected by the error.""" + sentryProjectName: String! + + """Slug of the project affected by the error.""" + sentryProjectSlug: String! + + """Short ID (Sentry ID) of the error.""" + shortId: String! + + """Status of the error.""" + status: SentryErrorStatus! + + """Tags associated with the Sentry Error.""" + tags: SentryErrorTags! + + """Title of the error.""" + title: String! + + """Type of the error.""" + type: String! + + """Count of users affected by the error.""" + userCount: Int! +} + +"""A Sentry error. A simplified version of SentryDetailedError""" +type SentryError { + """Count of occurrences.""" + count: Int! + + """Culprit of the error.""" + culprit: String! + + """External URL of the error.""" + externalUrl: String! + + """Timestamp when the error was first seen.""" + firstSeen: Time! + + """Last 24hr stats of the error.""" + frequency: [SentryErrorFrequency!]! + + """ID (global ID) of the error.""" + id: ID! + + """Timestamp when the error was last seen.""" + lastSeen: Time! + + """Sentry metadata message of the error.""" + message: String + + """ID (Sentry ID) of the error.""" + sentryId: String! + + """ID of the project (Sentry project).""" + sentryProjectId: ID! + + """Name of the project affected by the error.""" + sentryProjectName: String! + + """Slug of the project affected by the error.""" + sentryProjectSlug: String! + + """Short ID (Sentry ID) of the error.""" + shortId: String! + + """Status of the error.""" + status: SentryErrorStatus! + + """Title of the error.""" + title: String! + + """Type of the error.""" + type: String! + + """Count of users affected by the error.""" + userCount: Int! +} + +""" +An object containing a collection of Sentry errors, and a detailed error +""" +type SentryErrorCollection { + """Detailed version of a Sentry error on the project.""" + detailedError( + """ID of the Sentry issue.""" + id: GitlabErrorTrackingDetailedErrorID! + ): SentryDetailedError + + """Stack Trace of Sentry Error.""" + errorStackTrace( + """ID of the Sentry issue.""" + id: GitlabErrorTrackingDetailedErrorID! + ): SentryErrorStackTrace + + """Collection of Sentry Errors.""" + errors( + """Search query for the Sentry error details.""" + searchTerm: String + + """ + Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default. + """ + sort: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SentryErrorConnection + + """External URL for Sentry.""" + externalUrl: String +} + +"""The connection type for SentryError.""" +type SentryErrorConnection { + """A list of edges.""" + edges: [SentryErrorEdge] + + """A list of nodes.""" + nodes: [SentryError] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SentryErrorEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SentryError +} + +type SentryErrorFrequency { + """Count of errors received since the previously recorded time.""" + count: Int! + + """Time the error frequency stats were recorded.""" + time: Time! +} + +"""An object containing a stack trace entry for a Sentry error""" +type SentryErrorStackTrace { + """Time the stack trace was received by Sentry.""" + dateReceived: String! + + """ID of the Sentry error.""" + issueId: String! + + """Stack trace entries for the Sentry error.""" + stackTraceEntries: [SentryErrorStackTraceEntry!]! +} + +"""An object context for a Sentry error stack trace""" +type SentryErrorStackTraceContext { + """Code number of the context.""" + code: String! + + """Line number of the context.""" + line: Int! +} + +"""An object containing a stack trace entry for a Sentry error""" +type SentryErrorStackTraceEntry { + """Function in which the Sentry error occurred.""" + col: String + + """File in which the Sentry error occurred.""" + fileName: String + + """Function in which the Sentry error occurred.""" + function: String + + """Function in which the Sentry error occurred.""" + line: String + + """Context of the Sentry error.""" + traceContext: [SentryErrorStackTraceContext!] +} + +"""State of a Sentry error""" +enum SentryErrorStatus { + """Error has been resolved.""" + RESOLVED + + """Error has been ignored until next release.""" + RESOLVED_IN_NEXT_RELEASE + + """Error is unresolved.""" + UNRESOLVED + + """Error has been ignored.""" + IGNORED +} + +"""State of a Sentry error""" +type SentryErrorTags { + """Severity level of the Sentry Error.""" + level: String + + """Logger of the Sentry Error.""" + logger: String +} + +interface Service { + """Indicates if the service is active.""" + active: Boolean + + """Type of the service.""" + serviceType: ServiceType + + """Class name of the service.""" + type: String +} + +"""The connection type for Service.""" +type ServiceConnection { + """A list of edges.""" + edges: [ServiceEdge] + + """A list of nodes.""" + nodes: [Service] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ServiceEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Service +} + +enum ServiceType { + """AsanaService type""" + ASANA_SERVICE + + """AssemblaService type""" + ASSEMBLA_SERVICE + + """BambooService type""" + BAMBOO_SERVICE + + """BugzillaService type""" + BUGZILLA_SERVICE + + """BuildkiteService type""" + BUILDKITE_SERVICE + + """CampfireService type""" + CAMPFIRE_SERVICE + + """ConfluenceService type""" + CONFLUENCE_SERVICE + + """CustomIssueTrackerService type""" + CUSTOM_ISSUE_TRACKER_SERVICE + + """DatadogService type""" + DATADOG_SERVICE + + """DiscordService type""" + DISCORD_SERVICE + + """DroneCiService type""" + DRONE_CI_SERVICE + + """EmailsOnPushService type""" + EMAILS_ON_PUSH_SERVICE + + """EwmService type""" + EWM_SERVICE + + """ExternalWikiService type""" + EXTERNAL_WIKI_SERVICE + + """FlowdockService type""" + FLOWDOCK_SERVICE + + """GithubService type""" + GITHUB_SERVICE + + """GitlabSlackApplicationService type (Gitlab.com only)""" + GITLAB_SLACK_APPLICATION_SERVICE + + """HangoutsChatService type""" + HANGOUTS_CHAT_SERVICE + + """HarborService type""" + HARBOR_SERVICE + + """IrkerService type""" + IRKER_SERVICE + + """JenkinsService type""" + JENKINS_SERVICE + + """JiraService type""" + JIRA_SERVICE + + """MattermostService type""" + MATTERMOST_SERVICE + + """MattermostSlashCommandsService type""" + MATTERMOST_SLASH_COMMANDS_SERVICE + + """MicrosoftTeamsService type""" + MICROSOFT_TEAMS_SERVICE + + """PackagistService type""" + PACKAGIST_SERVICE + + """PipelinesEmailService type""" + PIPELINES_EMAIL_SERVICE + + """PivotaltrackerService type""" + PIVOTALTRACKER_SERVICE + + """PrometheusService type""" + PROMETHEUS_SERVICE + + """PumbleService type""" + PUMBLE_SERVICE + + """PushoverService type""" + PUSHOVER_SERVICE + + """RedmineService type""" + REDMINE_SERVICE + + """ShimoService type""" + SHIMO_SERVICE + + """SlackService type""" + SLACK_SERVICE + + """SlackSlashCommandsService type""" + SLACK_SLASH_COMMANDS_SERVICE + + """TeamcityService type""" + TEAMCITY_SERVICE + + """UnifyCircuitService type""" + UNIFY_CIRCUIT_SERVICE + + """WebexTeamsService type""" + WEBEX_TEAMS_SERVICE + + """YoutrackService type""" + YOUTRACK_SERVICE + + """ZentaoService type""" + ZENTAO_SERVICE +} + +"""How to format SHA strings.""" +enum ShaFormat { + """Abbreviated format. Short SHAs are typically eight characters long.""" + SHORT + + """Unabbreviated format.""" + LONG +} + +enum SharedRunnersSetting { + """Sharing of runners is disabled and unoverridable.""" + DISABLED_AND_UNOVERRIDABLE + + """Sharing of runners is disabled with override.""" + DISABLED_WITH_OVERRIDE + + """Sharing of runners is enabled.""" + ENABLED +} + +"""Represents a snippet entry""" +type Snippet implements NoteableInterface { + """Owner of the snippet.""" + author: UserCore + + """Snippet blobs.""" + blobs( + """Paths of the blobs.""" + paths: [String!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetBlobConnection + + """Timestamp this snippet was created.""" + createdAt: Time! + + """Description of the snippet.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """File Name of the snippet.""" + fileName: String + + """HTTP URL to the snippet repository.""" + httpUrlToRepo: String + + """ID of the snippet.""" + id: SnippetID! + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Project the snippet is associated with.""" + project: Project + + """Raw URL of the snippet.""" + rawUrl: String! + + """SSH URL to the snippet repository.""" + sshUrlToRepo: String + + """Title of the snippet.""" + title: String! + + """Timestamp this snippet was updated.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: SnippetPermissions! + + """Visibility Level of the snippet.""" + visibilityLevel: VisibilityLevelsEnum! + + """Web URL of the snippet.""" + webUrl: String! +} + +"""Represents the snippet blob""" +type SnippetBlob { + """Shows whether the blob is binary.""" + binary: Boolean! + + """Blob external storage.""" + externalStorage: String + + """Blob mode.""" + mode: String + + """Blob name.""" + name: String + + """Blob path.""" + path: String + + """Blob plain highlighted data.""" + plainData: String + + """Blob raw content endpoint path.""" + rawPath: String! + + """Raw content of the blob, if the blob is text data.""" + rawPlainData: String + + """Shows whether the blob is rendered as text.""" + renderedAsText: Boolean! + + """Blob highlighted data.""" + richData: String + + """Blob content rich viewer.""" + richViewer: SnippetBlobViewer + + """Blob content simple viewer.""" + simpleViewer: SnippetBlobViewer! + + """Blob size.""" + size: Int! +} + +"""Type of a snippet blob input action""" +enum SnippetBlobActionEnum { + """Create a snippet blob.""" + create + + """Update a snippet blob.""" + update + + """Delete a snippet blob.""" + delete + + """Move a snippet blob.""" + move +} + +"""Represents an action to perform over a snippet file""" +input SnippetBlobActionInputType { + """Type of input action.""" + action: SnippetBlobActionEnum! + + """Previous path of the snippet file.""" + previousPath: String + + """Path of the snippet file.""" + filePath: String! + + """Snippet file content.""" + content: String +} + +"""The connection type for SnippetBlob.""" +type SnippetBlobConnection { + """A list of edges.""" + edges: [SnippetBlobEdge] + + """Indicates if the snippet has unretrievable blobs.""" + hasUnretrievableBlobs: Boolean! + + """A list of nodes.""" + nodes: [SnippetBlob] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SnippetBlobEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SnippetBlob +} + +"""Represents how the blob content should be displayed""" +type SnippetBlobViewer { + """Shows whether the blob should be displayed collapsed.""" + collapsed: Boolean! + + """Content file type.""" + fileType: String! + + """Shows whether the blob content is loaded asynchronously.""" + loadAsync: Boolean! + + """Loading partial name.""" + loadingPartialName: String! + + """Error rendering the blob content.""" + renderError: String + + """Shows whether the blob is too large to be displayed.""" + tooLarge: Boolean! + + """Type of blob viewer.""" + type: BlobViewersType! +} + +"""The connection type for Snippet.""" +type SnippetConnection { + """A list of edges.""" + edges: [SnippetEdge] + + """A list of nodes.""" + nodes: [Snippet] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SnippetEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Snippet +} + +""" +A `SnippetID` is a global ID. It is encoded as a string. + +An example `SnippetID` is: `"gid://gitlab/Snippet/1"`. +""" +scalar SnippetID + +type SnippetPermissions { + """Indicates the user can perform `admin_snippet` on this resource""" + adminSnippet: Boolean! + + """Indicates the user can perform `award_emoji` on this resource""" + awardEmoji: Boolean! + + """Indicates the user can perform `create_note` on this resource""" + createNote: Boolean! + + """Indicates the user can perform `read_snippet` on this resource""" + readSnippet: Boolean! + + """Indicates the user can perform `report_snippet` on this resource""" + reportSnippet: Boolean! + + """Indicates the user can perform `update_snippet` on this resource""" + updateSnippet: Boolean! +} + +"""Represents the Geo sync and verification state of a snippet repository""" +type SnippetRepositoryRegistry { + """Timestamp when the SnippetRepositoryRegistry was created""" + createdAt: Time + + """ID of the SnippetRepositoryRegistry""" + id: ID! + + """Error message during sync of the SnippetRepositoryRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the SnippetRepositoryRegistry + """ + lastSyncedAt: Time + + """Timestamp after which the SnippetRepositoryRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the SnippetRepositoryRegistry + """ + retryCount: Int + + """ID of the Snippet Repository.""" + snippetRepositoryId: ID! + + """Sync state of the SnippetRepositoryRegistry""" + state: RegistryState + + """Timestamp after which the SnippetRepositoryRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the SnippetRepositoryRegistry + """ + verifiedAt: Time +} + +"""The connection type for SnippetRepositoryRegistry.""" +type SnippetRepositoryRegistryConnection { + """A list of edges.""" + edges: [SnippetRepositoryRegistryEdge] + + """A list of nodes.""" + nodes: [SnippetRepositoryRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SnippetRepositoryRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SnippetRepositoryRegistry +} + +"""Common sort values""" +enum Sort { + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""Values for sort direction""" +enum SortDirectionEnum { + """Ascending order.""" + ASC + + """Descending order.""" + DESC +} + +type StatusAction { + """Title for the button, for example: Retry this job.""" + buttonTitle: String + + """Icon used in the action button.""" + icon: String + + """ID for a status action.""" + id: String! + + """Method for the action, for example: :post.""" + method: String + + """Path for the action.""" + path: String + + """Title for the action, for example: Retry.""" + title: String +} + +type Submodule implements Entry { + """Flat path of the entry.""" + flatPath: String! + + """ID of the entry.""" + id: ID! + + """Name of the entry.""" + name: String! + + """Path of the entry.""" + path: String! + + """Last commit SHA for the entry.""" + sha: String! + + """Tree URL for the sub-module.""" + treeUrl: String + + """Type of tree entry.""" + type: EntryType! + + """Web URL for the sub-module.""" + webUrl: String +} + +"""The connection type for Submodule.""" +type SubmoduleConnection { + """A list of edges.""" + edges: [SubmoduleEdge] + + """A list of nodes.""" + nodes: [Submodule] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SubmoduleEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Submodule +} + +type Subscription { + """Triggered when the assignees of an issuable are updated.""" + issuableAssigneesUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the due date or start date of an issuable is updated.""" + issuableDatesUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the description of an issuable is updated.""" + issuableDescriptionUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the iteration of an issuable is updated.""" + issuableIterationUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the labels of an issuable are updated.""" + issuableLabelsUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the title of an issuable is updated.""" + issuableTitleUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the weight of an issuable is updated.""" + issuableWeightUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the crm contacts of an issuable are updated.""" + issueCrmContactsUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the merge status of a merge request is updated.""" + mergeRequestMergeStatusUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable + + """Triggered when the reviewers of a merge request are updated.""" + mergeRequestReviewersUpdated( + """ID of the issuable.""" + issuableId: IssuableID! + ): Issuable +} + +"""Represents an entry from the future subscriptions""" +type SubscriptionFutureEntry { + """Company of the licensee.""" + company: String + + """Email of the licensee.""" + email: String + + """Date when the license expires.""" + expiresAt: Date + + """Name of the licensee.""" + name: String + + """Name of the subscription plan.""" + plan: String! + + """Date when the license started.""" + startsAt: Date + + """Type of license the subscription will yield.""" + type: String! + + """Number of paid user seats.""" + usersInLicenseCount: Int +} + +"""The connection type for SubscriptionFutureEntry.""" +type SubscriptionFutureEntryConnection { + """A list of edges.""" + edges: [SubscriptionFutureEntryEdge] + + """A list of nodes.""" + nodes: [SubscriptionFutureEntry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SubscriptionFutureEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: SubscriptionFutureEntry +} + +"""Represents a Suggested Reviewers result set""" +type SuggestedReviewersType { + """List of reviewers.""" + reviewers: [String!]! + + """Number of reviewers returned.""" + topN: Int + + """Suggested reviewer version.""" + version: String +} + +"""Completion status of tasks""" +type TaskCompletionStatus { + """Number of completed tasks.""" + completedCount: Int! + + """Number of total tasks.""" + count: Int! +} + +type TerraformState { + """Timestamp the Terraform state was created.""" + createdAt: Time! + + """Timestamp the Terraform state was deleted.""" + deletedAt: Time + + """ID of the Terraform state.""" + id: ID! + + """Latest version of the Terraform state.""" + latestVersion: TerraformStateVersion + + """Timestamp the Terraform state was locked.""" + lockedAt: Time + + """User currently holding a lock on the Terraform state.""" + lockedByUser: UserCore + + """Name of the Terraform state.""" + name: String! + + """Timestamp the Terraform state was updated.""" + updatedAt: Time! +} + +"""The connection type for TerraformState.""" +type TerraformStateConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [TerraformStateEdge] + + """A list of nodes.""" + nodes: [TerraformState] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of TerraformStateDelete""" +input TerraformStateDeleteInput { + """Global ID of the Terraform state.""" + id: TerraformStateID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of TerraformStateDelete""" +type TerraformStateDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type TerraformStateEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TerraformState +} + +""" +A `TerraformStateID` is a global ID. It is encoded as a string. + +An example `TerraformStateID` is: `"gid://gitlab/Terraform::State/1"`. +""" +scalar TerraformStateID + +"""Autogenerated input type of TerraformStateLock""" +input TerraformStateLockInput { + """Global ID of the Terraform state.""" + id: TerraformStateID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of TerraformStateLock""" +type TerraformStateLockPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of TerraformStateUnlock""" +input TerraformStateUnlockInput { + """Global ID of the Terraform state.""" + id: TerraformStateID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of TerraformStateUnlock""" +type TerraformStateUnlockPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +type TerraformStateVersion { + """Timestamp the version was created.""" + createdAt: Time! + + """User that created this version.""" + createdByUser: UserCore + + """URL for downloading the version's JSON file.""" + downloadPath: String + + """ID of the Terraform state version.""" + id: ID! + + """Job that created this version.""" + job: CiJob + + """Serial number of the version.""" + serial: Int + + """Timestamp the version was updated.""" + updatedAt: Time! +} + +""" +Represents the Geo sync and verification state of a terraform state version +""" +type TerraformStateVersionRegistry { + """Timestamp when the TerraformStateVersionRegistry was created""" + createdAt: Time + + """ID of the TerraformStateVersionRegistry""" + id: ID! + + """Error message during sync of the TerraformStateVersionRegistry""" + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the TerraformStateVersionRegistry + """ + lastSyncedAt: Time + + """Timestamp after which the TerraformStateVersionRegistry is resynced""" + retryAt: Time + + """ + Number of consecutive failed sync attempts of the TerraformStateVersionRegistry + """ + retryCount: Int + + """Sync state of the TerraformStateVersionRegistry""" + state: RegistryState + + """ID of the terraform state version.""" + terraformStateVersionId: ID! + + """Timestamp after which the TerraformStateVersionRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the TerraformStateVersionRegistry + """ + verifiedAt: Time +} + +"""The connection type for TerraformStateVersionRegistry.""" +type TerraformStateVersionRegistryConnection { + """A list of edges.""" + edges: [TerraformStateVersionRegistryEdge] + + """A list of nodes.""" + nodes: [TerraformStateVersionRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TerraformStateVersionRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TerraformStateVersionRegistry +} + +"""Test case in pipeline test report.""" +type TestCase { + """URL of the test case attachment file.""" + attachmentUrl: String + + """Classname of the test case.""" + classname: String + + """Test case execution time in seconds.""" + executionTime: Float + + """Path to the file of the test case.""" + file: String + + """Name of the test case.""" + name: String + + """Recent failure history of the test case on the base branch.""" + recentFailures: RecentFailures + + """Stack trace of the test case.""" + stackTrace: String + + """Status of the test case (error, failed, success, skipped).""" + status: TestCaseStatus + + """System output of the test case.""" + systemOutput: String +} + +"""The connection type for TestCase.""" +type TestCaseConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [TestCaseEdge] + + """A list of nodes.""" + nodes: [TestCase] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TestCaseEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TestCase +} + +enum TestCaseStatus { + """Test case that has a status of error.""" + error + + """Test case that has a status of failed.""" + failed + + """Test case that has a status of success.""" + success + + """Test case that has a status of skipped.""" + skipped +} + +"""Represents a requirement test report""" +type TestReport { + """Author of the test report.""" + author: UserCore + + """Timestamp of when the test report was created.""" + createdAt: Time! + + """ID of the test report.""" + id: ID! + + """State of the test report.""" + state: TestReportState! +} + +"""The connection type for TestReport.""" +type TestReportConnection { + """A list of edges.""" + edges: [TestReportEdge] + + """A list of nodes.""" + nodes: [TestReport] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TestReportEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TestReport +} + +"""State of a test report""" +enum TestReportState { + """Passed test report.""" + PASSED + + """Failed test report.""" + FAILED +} + +"""Test report for a pipeline""" +type TestReportSummary { + """Test suites belonging to a pipeline test report.""" + testSuites( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TestSuiteSummaryConnection! + + """Total report statistics for a pipeline test report.""" + total: TestReportTotal! +} + +"""Total test report statistics.""" +type TestReportTotal { + """Total number of the test cases.""" + count: Int + + """Total number of test cases that had an error.""" + error: Int + + """Total number of test cases that failed.""" + failed: Int + + """Total number of test cases that were skipped.""" + skipped: Int + + """Total number of test cases that succeeded.""" + success: Int + + """Test suite error message.""" + suiteError: String + + """Total duration of the tests.""" + time: Float +} + +"""Test suite in a pipeline test report.""" +type TestSuite { + """Total number of test cases that had an error.""" + errorCount: Int + + """Total number of test cases that failed in the test suite.""" + failedCount: Int + + """Name of the test suite.""" + name: String + + """Total number of test cases that were skipped in the test suite.""" + skippedCount: Int + + """Total number of test cases that succeeded in the test suite.""" + successCount: Int + + """Test suite error message.""" + suiteError: String + + """Test cases in the test suite.""" + testCases( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TestCaseConnection + + """Total number of the test cases in the test suite.""" + totalCount: Int + + """Total duration of the tests in the test suite.""" + totalTime: Float +} + +"""Test suite summary in a pipeline test report.""" +type TestSuiteSummary { + """IDs of the builds used to run the test suite.""" + buildIds: [ID!] + + """Total number of test cases that had an error.""" + errorCount: Int + + """Total number of test cases that failed in the test suite.""" + failedCount: Int + + """Name of the test suite.""" + name: String + + """Total number of test cases that were skipped in the test suite.""" + skippedCount: Int + + """Total number of test cases that succeeded in the test suite.""" + successCount: Int + + """Test suite error message.""" + suiteError: String + + """Total number of the test cases in the test suite.""" + totalCount: Int + + """Total duration of the tests in the test suite.""" + totalTime: Float +} + +"""The connection type for TestSuiteSummary.""" +type TestSuiteSummaryConnection { + """Total count of collection.""" + count: Int! + + """A list of edges.""" + edges: [TestSuiteSummaryEdge] + + """A list of nodes.""" + nodes: [TestSuiteSummary] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TestSuiteSummaryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TestSuiteSummary +} + +""" +Time represented in ISO 8601. + +For example: "2021-03-09T14:58:50+00:00". + +See `https://www.iso.org/iso-8601-date-and-time-format.html`. + +""" +scalar Time + +"""Represents measured stats metrics for timeboxes""" +type TimeboxMetrics { + """Count metric.""" + count: Int! + + """Weight metric.""" + weight: Int! +} + +"""Represents a historically accurate report about the timebox""" +type TimeboxReport { + """Daily scope and completed totals for burnup charts.""" + burnupTimeSeries: [BurnupChartDailyTotals!] + + """If the report cannot be generated, information about why.""" + error: TimeboxReportError + + """Represents the time report stats for the timebox.""" + stats: TimeReportStats +} + +"""Explains why we could not generate a timebox report.""" +type TimeboxReportError { + """Machine readable code, categorizing the error.""" + code: TimeboxReportErrorReason + + """Human readable message explaining what happened.""" + message: String +} + +"""Category of error.""" +enum TimeboxReportErrorReason { + """This type does not support timebox reports.""" + UNSUPPORTED + + """One or both of start_date and due_date is missing.""" + MISSING_DATES + + """There are too many events.""" + TOO_MANY_EVENTS + + """Priority by ascending order.""" + PRIORITY_ASC + + """Priority by descending order.""" + PRIORITY_DESC + + """Label priority by ascending order.""" + LABEL_PRIORITY_ASC + + """Label priority by descending order.""" + LABEL_PRIORITY_DESC + + """Milestone due date by ascending order.""" + MILESTONE_DUE_ASC + + """Milestone due date by descending order.""" + MILESTONE_DUE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +interface TimeboxReportInterface { + """Historically accurate report about the timebox.""" + report( + """ + Full path of the project or group used as a scope for report. For example, `gitlab-org` or `gitlab-org/gitlab`. + """ + fullPath: String + ): TimeboxReport +} + +"""A time-frame defined as a closed inclusive range of two dates""" +input Timeframe { + """Start of the range.""" + start: Date! + + """End of the range.""" + end: Date! +} + +"""Autogenerated input type of TimelineEventCreate""" +input TimelineEventCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Incident ID of the timeline event.""" + incidentId: IssueID! + + """Text note of the timeline event.""" + note: String! + + """Timestamp of when the event occurred.""" + occurredAt: Time! +} + +"""Autogenerated return type of TimelineEventCreate""" +type TimelineEventCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timeline event.""" + timelineEvent: TimelineEventType +} + +"""Autogenerated input type of TimelineEventDestroy""" +input TimelineEventDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Timeline event ID to remove.""" + id: IncidentManagementTimelineEventID! +} + +"""Autogenerated return type of TimelineEventDestroy""" +type TimelineEventDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timeline event.""" + timelineEvent: TimelineEventType +} + +"""Autogenerated input type of TimelineEventPromoteFromNote""" +input TimelineEventPromoteFromNoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Note ID from which the timeline event promoted.""" + noteId: NoteID! +} + +"""Autogenerated return type of TimelineEventPromoteFromNote""" +type TimelineEventPromoteFromNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timeline event.""" + timelineEvent: TimelineEventType +} + +"""Describes an incident management timeline event""" +type TimelineEventType { + """Indicates the timeline event icon.""" + action: String! + + """User that created the timeline event.""" + author: UserCore + + """Timestamp when the event created.""" + createdAt: Time! + + """Indicates the timeline event is editable.""" + editable: Boolean! + + """ID of the timeline event.""" + id: IncidentManagementTimelineEventID! + + """Incident of the timeline event.""" + incident: Issue! + + """Text note of the timeline event.""" + note: String + + """HTML note of the timeline event.""" + noteHtml: String + + """Timestamp when the event occurred.""" + occurredAt: Time! + + """Note from which the timeline event was created.""" + promotedFromNote: Note + + """Timestamp when the event updated.""" + updatedAt: Time! + + """User that updated the timeline event.""" + updatedByUser: UserCore +} + +"""The connection type for TimelineEventType.""" +type TimelineEventTypeConnection { + """A list of edges.""" + edges: [TimelineEventTypeEdge] + + """A list of nodes.""" + nodes: [TimelineEventType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TimelineEventTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TimelineEventType +} + +"""Autogenerated input type of TimelineEventUpdate""" +input TimelineEventUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the timeline event to update.""" + id: IncidentManagementTimelineEventID! + + """Text note of the timeline event.""" + note: String + + """Timestamp when the event occurred.""" + occurredAt: Time +} + +"""Autogenerated return type of TimelineEventUpdate""" +type TimelineEventUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timeline event.""" + timelineEvent: TimelineEventType +} + +type Timelog { + """Internal ID of the timelog.""" + id: ID! + + """Issue that logged time was added to.""" + issue: Issue + + """Merge request that logged time was added to.""" + mergeRequest: MergeRequest + + """Note where the quick action was executed to add the logged time.""" + note: Note + + """Timestamp of when the time tracked was spent at.""" + spentAt: Time + + """Summary of how the time was spent.""" + summary: String + + """Time spent displayed in seconds.""" + timeSpent: Int! + + """User that logged the time.""" + user: UserCore! + + """Permissions for the current user on the resource""" + userPermissions: TimelogPermissions! +} + +"""The connection type for Timelog.""" +type TimelogConnection { + """A list of edges.""" + edges: [TimelogEdge] + + """A list of nodes.""" + nodes: [Timelog] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of TimelogCreate""" +input TimelogCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Amount of time spent.""" + timeSpent: String! + + """When the time was spent.""" + spentAt: Date! + + """Summary of time spent.""" + summary: String! + + """Global ID of the issuable (Issue, WorkItem or MergeRequest).""" + issuableId: IssuableID! +} + +"""Autogenerated return type of TimelogCreate""" +type TimelogCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timelog.""" + timelog: Timelog +} + +"""Autogenerated input type of TimelogDelete""" +input TimelogDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the timelog.""" + id: TimelogID! +} + +"""Autogenerated return type of TimelogDelete""" +type TimelogDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Timelog.""" + timelog: Timelog +} + +"""An edge in a connection.""" +type TimelogEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Timelog +} + +""" +A `TimelogID` is a global ID. It is encoded as a string. + +An example `TimelogID` is: `"gid://gitlab/Timelog/1"`. +""" +scalar TimelogID + +type TimelogPermissions { + """Indicates the user can perform `admin_timelog` on this resource""" + adminTimelog: Boolean! +} + +"""Represents the time report stats for timeboxes""" +type TimeReportStats { + """Completed issues metrics.""" + complete: TimeboxMetrics + + """Incomplete issues metrics.""" + incomplete: TimeboxMetrics + + """Total issues metrics.""" + total: TimeboxMetrics +} + +type TimeTrackingTimelogCategory { + """Whether the category is billable or not.""" + billable: Boolean + + """Billing rate for the category.""" + billingRate: Float + + """Color assigned to the category.""" + color: Color + + """When the category was created.""" + createdAt: Time! + + """Description of the category.""" + description: String + + """Internal ID of the timelog category.""" + id: ID! + + """Name of the category.""" + name: String! + + """When the category was last updated.""" + updatedAt: Time! +} + +"""The connection type for TimeTrackingTimelogCategory.""" +type TimeTrackingTimelogCategoryConnection { + """A list of edges.""" + edges: [TimeTrackingTimelogCategoryEdge] + + """A list of nodes.""" + nodes: [TimeTrackingTimelogCategory] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TimeTrackingTimelogCategoryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TimeTrackingTimelogCategory +} + +"""Representing a to-do entry""" +type Todo { + """Action of the to-do item.""" + action: TodoActionEnum! + + """Author of this to-do item.""" + author: UserCore! + + """Body of the to-do item.""" + body: String! + + """Timestamp this to-do item was created.""" + createdAt: Time! + + """Group this to-do item is associated with.""" + group: Group + + """ID of the to-do item.""" + id: ID! + + """Note which created this to-do item.""" + note: Note + + """Project this to-do item is associated with.""" + project: Project + + """State of the to-do item.""" + state: TodoStateEnum! + + """Target of the to-do item.""" + target: Todoable! + + """Target type of the to-do item.""" + targetType: TodoTargetEnum! +} + +interface Todoable { + """URL of this object.""" + webUrl: String +} + +""" +A `TodoableID` is a global ID. It is encoded as a string. + +An example `TodoableID` is: `"gid://gitlab/Todoable/1"`. +""" +scalar TodoableID + +enum TodoActionEnum { + """User was assigned.""" + assigned + + """User was mentioned.""" + mentioned + + """Build triggered by the user failed.""" + build_failed + + """User added a TODO.""" + marked + + """User was set as an approver.""" + approval_required + + """Merge request authored by the user could not be merged.""" + unmergeable + + """User was directly addressed.""" + directly_addressed + + """Merge request authored by the user was removed from the merge train.""" + merge_train_removed + + """Review was requested from the user.""" + review_requested +} + +"""The connection type for Todo.""" +type TodoConnection { + """A list of edges.""" + edges: [TodoEdge] + + """A list of nodes.""" + nodes: [Todo] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of TodoCreate""" +input TodoCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the to-do item's parent. Issues, merge requests, designs, and epics are supported. + """ + targetId: TodoableID! +} + +"""Autogenerated return type of TodoCreate""" +type TodoCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """To-do item created.""" + todo: Todo +} + +"""An edge in a connection.""" +type TodoEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Todo +} + +""" +A `TodoID` is a global ID. It is encoded as a string. + +An example `TodoID` is: `"gid://gitlab/Todo/1"`. +""" +scalar TodoID + +"""Autogenerated input type of TodoMarkDone""" +input TodoMarkDoneInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the to-do item to mark as done.""" + id: TodoID! +} + +"""Autogenerated return type of TodoMarkDone""" +type TodoMarkDonePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Requested to-do item.""" + todo: Todo! +} + +"""Autogenerated input type of TodoRestore""" +input TodoRestoreInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the to-do item to restore.""" + id: TodoID! +} + +"""Autogenerated input type of TodoRestoreMany""" +input TodoRestoreManyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global IDs of the to-do items to restore (a maximum of 50 is supported at once). + """ + ids: [TodoID!]! +} + +"""Autogenerated return type of TodoRestoreMany""" +type TodoRestoreManyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated to-do items.""" + todos: [Todo!]! +} + +"""Autogenerated return type of TodoRestore""" +type TodoRestorePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Requested to-do item.""" + todo: Todo! +} + +"""Autogenerated input type of TodosMarkAllDone""" +input TodosMarkAllDoneInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ + Global ID of the to-do item's parent. Issues, merge requests, designs, and + epics are supported. If argument is omitted, all pending to-do items of the + current user are marked as done. + """ + targetId: TodoableID +} + +"""Autogenerated return type of TodosMarkAllDone""" +type TodosMarkAllDonePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated to-do items.""" + todos: [Todo!]! +} + +enum TodoStateEnum { + """State of the todo is pending.""" + pending + + """State of the todo is done.""" + done +} + +enum TodoTargetEnum { + """Commit.""" + COMMIT + + """Issue.""" + ISSUE + + """Work item.""" + WORKITEM + + """Merge request.""" + MERGEREQUEST + + """Design.""" + DESIGN + + """Alert.""" + ALERT + + """An Epic.""" + EPIC +} + +type Topic { + """URL to avatar image file of the topic.""" + avatarUrl: String + + """Description of the topic.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ID of the topic.""" + id: ID! + + """Name of the topic.""" + name: String! + + """Title of the topic.""" + title: String! +} + +"""The connection type for Topic.""" +type TopicConnection { + """A list of edges.""" + edges: [TopicEdge] + + """A list of nodes.""" + nodes: [Topic] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TopicEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Topic +} + +""" +Status of the request to the training provider. The URL of a TrainingUrl is +calculated asynchronously. When PENDING, the URL of the TrainingUrl will be +null. When COMPLETED, the URL of the TrainingUrl will be available. +""" +enum TrainingUrlRequestStatus { + """Pending request.""" + PENDING + + """Completed request.""" + COMPLETED +} + +type Tree { + """Blobs of the tree.""" + blobs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): BlobConnection! + + """Last commit for the tree.""" + lastCommit: Commit + + """Sub-modules of the tree.""" + submodules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SubmoduleConnection! + + """Trees of the tree.""" + trees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TreeEntryConnection! +} + +"""The connection type for Tree.""" +type TreeConnection { + """A list of edges.""" + edges: [TreeEdge] + + """A list of nodes.""" + nodes: [Tree] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TreeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Tree +} + +"""Represents a directory""" +type TreeEntry implements Entry { + """Flat path of the entry.""" + flatPath: String! + + """ID of the entry.""" + id: ID! + + """Name of the entry.""" + name: String! + + """Path of the entry.""" + path: String! + + """Last commit SHA for the entry.""" + sha: String! + + """Type of tree entry.""" + type: EntryType! + + """Web path for the tree entry (directory).""" + webPath: String + + """Web URL for the tree entry (directory).""" + webUrl: String +} + +"""The connection type for TreeEntry.""" +type TreeEntryConnection { + """A list of edges.""" + edges: [TreeEntryEdge] + + """A list of nodes.""" + nodes: [TreeEntry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type TreeEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: TreeEntry +} + +enum TypeEnum { + """Snippet created independent of any project.""" + personal + + """Snippet related to a specific project.""" + project +} + +"""A regexp containing patterns sourced from user input""" +scalar UntrustedRegexp + +"""Autogenerated input type of UpdateAlertStatus""" +input UpdateAlertStatusInput { + """Project the alert to mutate is in.""" + projectPath: ID! + + """IID of the alert to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Status to set the alert.""" + status: AlertManagementStatus! +} + +"""Autogenerated return type of UpdateAlertStatus""" +type UpdateAlertStatusPayload { + """Alert after mutation.""" + alert: AlertManagementAlert + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue created after mutation.""" + issue: Issue + + """To-do item after mutation.""" + todo: Todo +} + +"""Autogenerated input type of UpdateBoardEpicUserPreferences""" +input UpdateBoardEpicUserPreferencesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Board global ID.""" + boardId: BoardID! + + """ID of an epic to set preferences for.""" + epicId: EpicID! + + """Whether the epic should be collapsed in the board.""" + collapsed: Boolean! +} + +"""Autogenerated return type of UpdateBoardEpicUserPreferences""" +type UpdateBoardEpicUserPreferencesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """User preferences for the epic in the board after mutation.""" + epicUserPreferences: BoardEpicUserPreferences + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateBoard""" +input UpdateBoardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Board name.""" + name: String + + """Whether or not backlog list is hidden.""" + hideBacklogList: Boolean + + """Whether or not closed list is hidden.""" + hideClosedList: Boolean + + """Board global ID.""" + id: BoardID! + + """ID of user to be assigned to the board.""" + assigneeId: UserID + + """ID of milestone to be assigned to the board.""" + milestoneId: MilestoneID + + """ID of iteration to be assigned to the board.""" + iterationId: IterationID + + """ID of iteration cadence to be assigned to the board.""" + iterationCadenceId: IterationsCadenceID + + """Weight value to be assigned to the board.""" + weight: Int + + """Labels of the issue.""" + labels: [String!] + + """IDs of labels to be added to the board.""" + labelIds: [LabelID!] +} + +"""Autogenerated input type of UpdateBoardList""" +input UpdateBoardListInput { + """Position of list within the board.""" + position: Int + + """Indicates if the list is collapsed for this user.""" + collapsed: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the list.""" + listId: ListID! +} + +"""Autogenerated return type of UpdateBoardList""" +type UpdateBoardListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Mutated list.""" + list: BoardList +} + +"""Autogenerated return type of UpdateBoard""" +type UpdateBoardPayload { + """Board after mutation.""" + board: Board + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateComplianceFramework""" +input UpdateComplianceFrameworkInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the compliance framework to update.""" + id: ComplianceManagementFrameworkID! + + """Parameters to update the compliance framework with.""" + params: ComplianceFrameworkInput! +} + +"""Autogenerated return type of UpdateComplianceFramework""" +type UpdateComplianceFrameworkPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Compliance framework after mutation.""" + complianceFramework: ComplianceFramework + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateContainerExpirationPolicy""" +input UpdateContainerExpirationPolicyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project path where the container expiration policy is located.""" + projectPath: ID! + + """Indicates whether this container expiration policy is enabled.""" + enabled: Boolean + + """This container expiration policy schedule.""" + cadence: ContainerExpirationPolicyCadenceEnum + + """Tags older that this will expire.""" + olderThan: ContainerExpirationPolicyOlderThanEnum + + """Number of tags to retain.""" + keepN: ContainerExpirationPolicyKeepEnum + + """Tags with names matching this regex pattern will expire.""" + nameRegex: UntrustedRegexp + + """Tags with names matching this regex pattern will be preserved.""" + nameRegexKeep: UntrustedRegexp +} + +"""Autogenerated return type of UpdateContainerExpirationPolicy""" +type UpdateContainerExpirationPolicyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Container expiration policy after mutation.""" + containerExpirationPolicy: ContainerExpirationPolicy + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateDependencyProxyImageTtlGroupPolicy""" +input UpdateDependencyProxyImageTtlGroupPolicyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group path for the group dependency proxy image TTL policy.""" + groupPath: ID! + + """Indicates whether the policy is enabled or disabled.""" + enabled: Boolean + + """Number of days to retain a cached image file.""" + ttl: Int +} + +"""Autogenerated return type of UpdateDependencyProxyImageTtlGroupPolicy""" +type UpdateDependencyProxyImageTtlGroupPolicyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group image TTL policy after mutation.""" + dependencyProxyImageTtlPolicy: DependencyProxyImageTtlGroupPolicy + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateDependencyProxySettings""" +input UpdateDependencyProxySettingsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group path for the group dependency proxy.""" + groupPath: ID! + + """Indicates whether the policy is enabled or disabled.""" + enabled: Boolean +} + +"""Autogenerated return type of UpdateDependencyProxySettings""" +type UpdateDependencyProxySettingsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group dependency proxy settings after mutation.""" + dependencyProxySetting: DependencyProxySetting + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +input UpdateDiffImagePositionInput { + """X position of the note.""" + x: Int + + """Y position of the note.""" + y: Int + + """Total width of the image.""" + width: Int + + """Total height of the image.""" + height: Int +} + +"""Autogenerated input type of UpdateEpicBoardList""" +input UpdateEpicBoardListInput { + """Position of list within the board.""" + position: Int + + """Indicates if the list is collapsed for this user.""" + collapsed: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the epic list.""" + listId: BoardsEpicListID! +} + +"""Autogenerated return type of UpdateEpicBoardList""" +type UpdateEpicBoardListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Mutated epic list.""" + list: EpicList +} + +"""Autogenerated input type of UpdateEpic""" +input UpdateEpicInput { + """IID of the epic to mutate.""" + iid: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group the epic to mutate is in.""" + groupPath: ID! + + """Title of the epic.""" + title: String + + """Description of the epic.""" + description: String + + """Indicates if the epic is confidential.""" + confidential: Boolean + + """Start date of the epic.""" + startDateFixed: String + + """End date of the epic.""" + dueDateFixed: String + + """ + Indicates start date should be sourced from start_date_fixed field not the issue milestones. + """ + startDateIsFixed: Boolean + + """ + Indicates end date should be sourced from due_date_fixed field not the issue milestones. + """ + dueDateIsFixed: Boolean + + """IDs of labels to be added to the epic.""" + addLabelIds: [ID!] + + """IDs of labels to be removed from the epic.""" + removeLabelIds: [ID!] + + """Array of labels to be added to the epic.""" + addLabels: [String!] + + """ + Color of the epic. Available only when feature flag `epic_color_highlight` is + enabled. This flag is disabled by default, because the feature is experimental + and is subject to change without notice. + """ + color: Color + + """State event for the epic.""" + stateEvent: EpicStateEvent + + """Array of labels to be removed from the epic.""" + removeLabels: [String!] +} + +"""Autogenerated return type of UpdateEpic""" +type UpdateEpicPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Epic after mutation.""" + epic: Epic + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""Autogenerated input type of UpdateImageDiffNote""" +input UpdateImageDiffNoteInput { + """Global ID of the note to update.""" + id: NoteID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Content of the note.""" + body: String + + """Position of this note on a diff.""" + position: UpdateDiffImagePositionInput +} + +"""Autogenerated return type of UpdateImageDiffNote""" +type UpdateImageDiffNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of UpdateIssue""" +input UpdateIssueInput { + """Project the issue to mutate is in.""" + projectPath: ID! + + """IID of the issue to mutate.""" + iid: String! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Description of the issue.""" + description: String + + """Due date of the issue.""" + dueDate: ISO8601Date + + """Indicates the issue is confidential.""" + confidential: Boolean + + """Indicates discussion is locked on the issue.""" + locked: Boolean + + """Type of the issue.""" + type: IssueType + + """Title of the issue.""" + title: String + + """ + ID of the milestone to assign to the issue. On update milestone will be removed if set to null. + """ + milestoneId: ID + + """IDs of labels to be added to the issue.""" + addLabelIds: [ID!] + + """IDs of labels to be removed from the issue.""" + removeLabelIds: [ID!] + + """IDs of labels to be set. Replaces existing issue labels.""" + labelIds: [ID!] + + """Close or reopen an issue.""" + stateEvent: IssueStateEvent + + """Desired health status.""" + healthStatus: HealthStatus + + """Weight of the issue.""" + weight: Int + + """ID of the parent epic. NULL when removing the association.""" + epicId: EpicID +} + +"""Autogenerated return type of UpdateIssue""" +type UpdateIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Issue after mutation.""" + issue: Issue +} + +"""Autogenerated input type of UpdateIteration""" +input UpdateIterationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Group of the iteration.""" + groupPath: ID! + + """Global ID of the iteration.""" + id: ID! + + """Title of the iteration.""" + title: String + + """Description of the iteration.""" + description: String + + """Start date of the iteration.""" + startDate: String + + """End date of the iteration.""" + dueDate: String +} + +"""Autogenerated return type of UpdateIteration""" +type UpdateIterationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated iteration.""" + iteration: Iteration +} + +"""Autogenerated input type of UpdateNamespacePackageSettings""" +input UpdateNamespacePackageSettingsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Namespace path where the namespace package setting is located.""" + namespacePath: ID! + + """ + Indicates whether duplicate Maven packages are allowed for this namespace. + """ + mavenDuplicatesAllowed: Boolean + + """ + When maven_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + mavenDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate generic packages are allowed for this namespace. + """ + genericDuplicatesAllowed: Boolean + + """ + When generic_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + genericDuplicateExceptionRegex: UntrustedRegexp +} + +"""Autogenerated return type of UpdateNamespacePackageSettings""" +type UpdateNamespacePackageSettingsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Namespace package setting after mutation.""" + packageSettings: PackageSettings +} + +"""Autogenerated input type of UpdateNote""" +input UpdateNoteInput { + """Global ID of the note to update.""" + id: NoteID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Content of the note.""" + body: String +} + +"""Autogenerated return type of UpdateNote""" +type UpdateNotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Note after mutation.""" + note: Note +} + +"""Autogenerated input type of UpdatePackagesCleanupPolicy""" +input UpdatePackagesCleanupPolicyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Project path where the packages cleanup policy is located.""" + projectPath: ID! + + """Number of duplicated package files to retain.""" + keepNDuplicatedPackageFiles: PackagesCleanupKeepDuplicatedPackageFilesEnum +} + +"""Autogenerated return type of UpdatePackagesCleanupPolicy""" +type UpdatePackagesCleanupPolicyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Packages cleanup policy after mutation.""" + packagesCleanupPolicy: PackagesCleanupPolicy +} + +"""Autogenerated input type of UpdateRequirement""" +input UpdateRequirementInput { + """Title of the requirement.""" + title: String + + """Description of the requirement.""" + description: String + + """Full project path the requirement is associated with.""" + projectPath: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """State of the requirement.""" + state: RequirementState + + """IID of the requirement to update.""" + iid: String! + + """Creates a test report for the requirement with the given state.""" + lastTestReportState: TestReportState +} + +"""Autogenerated return type of UpdateRequirement""" +type UpdateRequirementPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Requirement after mutation.""" + requirement: Requirement +} + +"""Autogenerated input type of UpdateSnippet""" +input UpdateSnippetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the snippet to update.""" + id: SnippetID! + + """Title of the snippet.""" + title: String + + """Description of the snippet.""" + description: String + + """Visibility level of the snippet.""" + visibilityLevel: VisibilityLevelsEnum + + """Actions to perform over the snippet repository and blobs.""" + blobActions: [SnippetBlobActionInputType!] +} + +"""Autogenerated return type of UpdateSnippet""" +type UpdateSnippetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Snippet after mutation.""" + snippet: Snippet +} + +scalar Upload + +"""Autogenerated input type of UploadDelete""" +input UploadDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Full path of the project with which the resource is associated.""" + projectPath: ID + + """Full path of the group with which the resource is associated.""" + groupPath: ID + + """Secret part of upload path.""" + secret: String! + + """Upload filename.""" + filename: String! +} + +"""Autogenerated return type of UploadDelete""" +type UploadDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Deleted upload.""" + upload: FileUpload +} + +""" +A `UploadID` is a global ID. It is encoded as a string. + +An example `UploadID` is: `"gid://gitlab/Upload/1"`. +""" +scalar UploadID + +"""Represents the Geo replication and verification state of an upload.""" +type UploadRegistry { + """Timestamp when the UploadRegistry was created""" + createdAt: Time + + """ID of the Upload.""" + fileId: ID! + + """ID of the UploadRegistry""" + id: ID! + + """Error message during sync of the UploadRegistry""" + lastSyncFailure: String + + """Timestamp of the most recent successful sync of the UploadRegistry""" + lastSyncedAt: Time + + """Timestamp after which the UploadRegistry is resynced""" + retryAt: Time + + """Number of consecutive failed sync attempts of the UploadRegistry""" + retryCount: Int + + """Sync state of the UploadRegistry""" + state: RegistryState + + """Timestamp after which the UploadRegistry is reverified""" + verificationRetryAt: Time + + """ + Timestamp of the most recent successful verification of the UploadRegistry + """ + verifiedAt: Time +} + +"""The connection type for UploadRegistry.""" +type UploadRegistryConnection { + """A list of edges.""" + edges: [UploadRegistryEdge] + + """A list of nodes.""" + nodes: [UploadRegistry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UploadRegistryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UploadRegistry +} + +"""Represents a recorded measurement (object count) for the Admins""" +type UsageTrendsMeasurement { + """Object count.""" + count: Int! + + """Type of objects being measured.""" + identifier: MeasurementIdentifier! + + """Time the measurement was recorded.""" + recordedAt: Time +} + +"""The connection type for UsageTrendsMeasurement.""" +type UsageTrendsMeasurementConnection { + """A list of edges.""" + edges: [UsageTrendsMeasurementEdge] + + """A list of nodes.""" + nodes: [UsageTrendsMeasurement] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UsageTrendsMeasurementEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UsageTrendsMeasurement +} + +"""Representation of a GitLab user.""" +interface User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +type UserCallout { + """Date when the callout was dismissed.""" + dismissedAt: Time + + """Name of the feature that the callout is for.""" + featureName: UserCalloutFeatureNameEnum +} + +"""The connection type for UserCallout.""" +type UserCalloutConnection { + """A list of edges.""" + edges: [UserCalloutEdge] + + """A list of nodes.""" + nodes: [UserCallout] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of UserCalloutCreate""" +input UserCalloutCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Feature name you want to dismiss the callout for.""" + featureName: String! +} + +"""Autogenerated return type of UserCalloutCreate""" +type UserCalloutCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """User callout dismissed.""" + userCallout: UserCallout! +} + +"""An edge in a connection.""" +type UserCalloutEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UserCallout +} + +"""Name of the feature that the callout is for.""" +enum UserCalloutFeatureNameEnum { + """Callout feature name for gke_cluster_integration.""" + GKE_CLUSTER_INTEGRATION + + """Callout feature name for gcp_signup_offer.""" + GCP_SIGNUP_OFFER + + """Callout feature name for cluster_security_warning.""" + CLUSTER_SECURITY_WARNING + + """Callout feature name for ultimate_trial.""" + ULTIMATE_TRIAL + + """Callout feature name for geo_enable_hashed_storage.""" + GEO_ENABLE_HASHED_STORAGE + + """Callout feature name for geo_migrate_hashed_storage.""" + GEO_MIGRATE_HASHED_STORAGE + + """Callout feature name for canary_deployment.""" + CANARY_DEPLOYMENT + + """Callout feature name for gold_trial_billings.""" + GOLD_TRIAL_BILLINGS + + """Callout feature name for suggest_popover_dismissed.""" + SUGGEST_POPOVER_DISMISSED + + """Callout feature name for tabs_position_highlight.""" + TABS_POSITION_HIGHLIGHT + + """Callout feature name for threat_monitoring_info.""" + THREAT_MONITORING_INFO + + """Callout feature name for two_factor_auth_recovery_settings_check.""" + TWO_FACTOR_AUTH_RECOVERY_SETTINGS_CHECK + + """Callout feature name for web_ide_alert_dismissed.""" + WEB_IDE_ALERT_DISMISSED + + """Callout feature name for active_user_count_threshold.""" + ACTIVE_USER_COUNT_THRESHOLD + + """Callout feature name for buy_pipeline_minutes_notification_dot.""" + BUY_PIPELINE_MINUTES_NOTIFICATION_DOT + + """Callout feature name for personal_access_token_expiry.""" + PERSONAL_ACCESS_TOKEN_EXPIRY + + """Callout feature name for suggest_pipeline.""" + SUGGEST_PIPELINE + + """Callout feature name for feature_flags_new_version.""" + FEATURE_FLAGS_NEW_VERSION + + """Callout feature name for registration_enabled_callout.""" + REGISTRATION_ENABLED_CALLOUT + + """Callout feature name for new_user_signups_cap_reached.""" + NEW_USER_SIGNUPS_CAP_REACHED + + """Callout feature name for unfinished_tag_cleanup_callout.""" + UNFINISHED_TAG_CLEANUP_CALLOUT + + """Callout feature name for eoa_bronze_plan_banner.""" + EOA_BRONZE_PLAN_BANNER + + """Callout feature name for pipeline_needs_banner.""" + PIPELINE_NEEDS_BANNER + + """Callout feature name for pipeline_needs_hover_tip.""" + PIPELINE_NEEDS_HOVER_TIP + + """Callout feature name for web_ide_ci_environments_guidance.""" + WEB_IDE_CI_ENVIRONMENTS_GUIDANCE + + """Callout feature name for security_configuration_upgrade_banner.""" + SECURITY_CONFIGURATION_UPGRADE_BANNER + + """ + Callout feature name for cloud_licensing_subscription_activation_banner. + """ + CLOUD_LICENSING_SUBSCRIPTION_ACTIVATION_BANNER + + """Callout feature name for trial_status_reminder_d14.""" + TRIAL_STATUS_REMINDER_D14 + + """Callout feature name for trial_status_reminder_d3.""" + TRIAL_STATUS_REMINDER_D3 + + """Callout feature name for security_configuration_devops_alert.""" + SECURITY_CONFIGURATION_DEVOPS_ALERT + + """Callout feature name for profile_personal_access_token_expiry.""" + PROFILE_PERSONAL_ACCESS_TOKEN_EXPIRY + + """Callout feature name for terraform_notification_dismissed.""" + TERRAFORM_NOTIFICATION_DISMISSED + + """Callout feature name for security_newsletter_callout.""" + SECURITY_NEWSLETTER_CALLOUT + + """Callout feature name for verification_reminder.""" + VERIFICATION_REMINDER + + """Callout feature name for ci_deprecation_warning_for_types_keyword.""" + CI_DEPRECATION_WARNING_FOR_TYPES_KEYWORD + + """Callout feature name for security_training_feature_promotion.""" + SECURITY_TRAINING_FEATURE_PROMOTION + + """ + Callout feature name for storage_enforcement_banner_first_enforcement_threshold. + """ + STORAGE_ENFORCEMENT_BANNER_FIRST_ENFORCEMENT_THRESHOLD + + """ + Callout feature name for storage_enforcement_banner_second_enforcement_threshold. + """ + STORAGE_ENFORCEMENT_BANNER_SECOND_ENFORCEMENT_THRESHOLD + + """ + Callout feature name for storage_enforcement_banner_third_enforcement_threshold. + """ + STORAGE_ENFORCEMENT_BANNER_THIRD_ENFORCEMENT_THRESHOLD + + """ + Callout feature name for storage_enforcement_banner_fourth_enforcement_threshold. + """ + STORAGE_ENFORCEMENT_BANNER_FOURTH_ENFORCEMENT_THRESHOLD + + """Callout feature name for preview_user_over_limit_free_plan_alert.""" + PREVIEW_USER_OVER_LIMIT_FREE_PLAN_ALERT + + """Callout feature name for user_reached_limit_free_plan_alert.""" + USER_REACHED_LIMIT_FREE_PLAN_ALERT + + """Callout feature name for submit_license_usage_data_banner.""" + SUBMIT_LICENSE_USAGE_DATA_BANNER + + """Callout feature name for personal_project_limitations_banner.""" + PERSONAL_PROJECT_LIMITATIONS_BANNER + + """Callout feature name for mr_experience_survey.""" + MR_EXPERIENCE_SURVEY + + """ + Callout feature name for namespace_storage_limit_banner_info_threshold. + """ + NAMESPACE_STORAGE_LIMIT_BANNER_INFO_THRESHOLD + + """ + Callout feature name for namespace_storage_limit_banner_warning_threshold. + """ + NAMESPACE_STORAGE_LIMIT_BANNER_WARNING_THRESHOLD + + """ + Callout feature name for namespace_storage_limit_banner_alert_threshold. + """ + NAMESPACE_STORAGE_LIMIT_BANNER_ALERT_THRESHOLD + + """ + Callout feature name for namespace_storage_limit_banner_error_threshold. + """ + NAMESPACE_STORAGE_LIMIT_BANNER_ERROR_THRESHOLD + + """Callout feature name for project_quality_summary_feedback.""" + PROJECT_QUALITY_SUMMARY_FEEDBACK + + """Callout feature name for merge_request_settings_moved_callout.""" + MERGE_REQUEST_SETTINGS_MOVED_CALLOUT + + """Callout feature name for new_top_level_group_alert.""" + NEW_TOP_LEVEL_GROUP_ALERT +} + +"""Core represention of a GitLab user.""" +type UserCore implements User { + """Merge requests assigned to the user.""" + assignedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """Merge requests authored by the user.""" + authoredMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the assignee.""" + assigneeUsername: String + + """Username of the reviewer.""" + reviewerUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """URL of the user's avatar.""" + avatarUrl: String + + """Indicates if the user is a bot.""" + bot: Boolean! + + """User callouts that belong to the user.""" + callouts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCalloutConnection + + """User email. Deprecated in 13.7: This was renamed.""" + email: String @deprecated(reason: "This was renamed. Please use `User.publicEmail`. Deprecated in 13.7.") + + """Whether Gitpod is enabled at the user level.""" + gitpodEnabled: Boolean + + """Group count for the user.""" + groupCount: Int + + """Group memberships of the user.""" + groupMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupMemberConnection + + """Groups where the user has access.""" + groups( + """Filter by permissions the user has on groups.""" + permissionScope: GroupPermission + + """Search by group name or path.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): GroupConnection + + """ID of the user.""" + id: ID! + + """Location of the user.""" + location: String + + """ + Human-readable name of the user. Returns `****` if the user is a project bot + and the requester does not have permission to view the project. + """ + name: String! + + """Personal namespace of the user.""" + namespace: Namespace + + """Web path to the Gitpod section within user preferences.""" + preferencesGitpodPath: String + + """Web path to enable Gitpod for the user.""" + profileEnableGitpodPath: String + + """Project memberships of the user.""" + projectMemberships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectMemberConnection + + """User's public email.""" + publicEmail: String + + """Merge requests assigned to the user for review.""" + reviewRequestedMergeRequests( + """Array of IIDs of merge requests, for example `[1, 2]`.""" + iids: [String!] + + """ + Array of source branch names. + All resolved merge requests will have one of these branches as their source. + + """ + sourceBranches: [String!] + + """ + Array of target branch names. + All resolved merge requests will have one of these branches as their target. + + """ + targetBranches: [String!] + + """ + Merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """Limit result to draft merge requests.""" + draft: Boolean + + """Merge requests created after this timestamp.""" + createdAfter: Time + + """Merge requests created before this timestamp.""" + createdBefore: Time + + """Merge requests updated after this timestamp.""" + updatedAfter: Time + + """Merge requests updated before this timestamp.""" + updatedBefore: Time + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """Merge requests merged after this date.""" + mergedAfter: Time + + """Merge requests merged before this date.""" + mergedBefore: Time + + """Title of the milestone.""" + milestoneTitle: String + + """Sort merge requests by this criteria.""" + sort: MergeRequestSort = created_desc + + """ + List of negated arguments. + Warning: this argument is experimental and a subject to change in future. + + """ + not: MergeRequestsResolverNegatedParams + + """ + The full-path of the project the authored merge requests should be in. + Incompatible with projectId. + + """ + projectPath: String + + """ + The global ID of the project the authored merge requests should be in. + Incompatible with projectPath. + + """ + projectId: ProjectID + + """Username of the author.""" + authorUsername: String + + """Username of the assignee.""" + assigneeUsername: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeRequestConnection + + """ + Saved replies authored by the user. Will not return saved replies if `saved_replies` feature flag is disabled. + """ + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SavedReplyConnection + + """Snippets authored by the user.""" + snippets( + """ + Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. + """ + ids: [SnippetID!] + + """Visibility of the snippet.""" + visibility: VisibilityScopesEnum + + """Type of snippet.""" + type: TypeEnum + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SnippetConnection + + """Projects starred by the user.""" + starredProjects( + """Search query.""" + search: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection + + """State of the user.""" + state: UserState! + + """User status.""" + status: UserStatus + + """Time logged by the user.""" + timelogs( + """ + List timelogs within a date range where the logged date is equal to or after startDate. + """ + startDate: Time + + """ + List timelogs within a date range where the logged date is equal to or before endDate. + """ + endDate: Time + + """ + List timelogs within a time range where the logged time is equal to or after startTime. + """ + startTime: Time + + """ + List timelogs within a time range where the logged time is equal to or before endTime. + """ + endTime: Time + + """List timelogs for a project.""" + projectId: ProjectID + + """List timelogs for a group.""" + groupId: GroupID + + """List timelogs for a user.""" + username: String + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TimelogConnection + + """To-do items of the user.""" + todos( + """Action to be filtered.""" + action: [TodoActionEnum!] + + """ID of an author.""" + authorId: [ID!] + + """ID of a project.""" + projectId: [ID!] + + """ID of a group.""" + groupId: [ID!] + + """State of the todo.""" + state: [TodoStateEnum!] + + """Type of the todo.""" + type: [TodoTargetEnum!] + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): TodoConnection + + """Permissions for the current user on the resource.""" + userPermissions: UserPermissions! + + """Username of the user. Unique within this instance of GitLab.""" + username: String! + + """Web path of the user.""" + webPath: String! + + """Web URL of the user.""" + webUrl: String! +} + +"""The connection type for UserCore.""" +type UserCoreConnection { + """A list of edges.""" + edges: [UserCoreEdge] + + """A list of nodes.""" + nodes: [UserCore] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UserCoreEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: UserCore +} + +""" +A `UserID` is a global ID. It is encoded as a string. + +An example `UserID` is: `"gid://gitlab/User/1"`. +""" +scalar UserID + +""" +Information about a merge request given a specific user. + +This object has two parts to its state: a `User` and a `MergeRequest`. All +fields relate to interactions between the two entities. + +""" +type UserMergeRequestInteraction { + """Approval rules that apply to this user for this merge request.""" + applicableApprovalRules: [ApprovalRule!] + + """Whether this user has approved this merge request.""" + approved: Boolean! + + """Whether this user can merge this merge request.""" + canMerge: Boolean! + + """Whether this user can update this merge request.""" + canUpdate: Boolean! + + """State of the review by this user.""" + reviewState: MergeRequestReviewState + + """Whether this user has provided a review for this merge request.""" + reviewed: Boolean! +} + +type UserPermissions { + """Indicates the user can perform `create_snippet` on this resource""" + createSnippet: Boolean! +} + +type UserPreferences { + """Sort order for issue lists.""" + issuesSort: IssueSort +} + +"""Autogenerated input type of UserPreferencesUpdate""" +input UserPreferencesUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Sort order for issue lists.""" + issuesSort: IssueSort +} + +"""Autogenerated return type of UserPreferencesUpdate""" +type UserPreferencesUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """User preferences after mutation.""" + userPreferences: UserPreferences +} + +""" +A `UsersSavedReplyID` is a global ID. It is encoded as a string. + +An example `UsersSavedReplyID` is: `"gid://gitlab/Users::SavedReply/1"`. +""" +scalar UsersSavedReplyID + +"""Possible states of a user""" +enum UserState { + """User is active and is able to use the system.""" + active + + """User has been blocked and is prevented from using the system.""" + blocked + + """User is no longer active and is unable to use the system.""" + deactivated +} + +type UserStatus { + """User availability status.""" + availability: AvailabilityEnum! + + """String representation of emoji.""" + emoji: String + + """User status message.""" + message: String + + """HTML of the user status message""" + messageHtml: String +} + +enum VerificationStateEnum { + """Verification process has not started.""" + PENDING + + """Verification process is in progress.""" + STARTED + + """Verification process finished successfully.""" + SUCCEEDED + + """Verification process finished but failed.""" + FAILED + + """Verification process is disabled.""" + DISABLED +} + +enum VisibilityLevelsEnum { + """Private visibility level.""" + private + + """Internal visibility level.""" + internal + + """Public visibility level.""" + public +} + +enum VisibilityScopesEnum { + """Snippet is visible only to the snippet creator.""" + private + + """Snippet is visible for any logged in user except external users.""" + internal + + """Snippet can be accessed without any authentication.""" + public +} + +""" +Represents the count of vulnerabilities by severity on a particular day. This data is retained for 365 days +""" +type VulnerabilitiesCountByDay { + """ + Total number of vulnerabilities on a particular day with critical severity + """ + critical: Int! + + """Date for the count.""" + date: ISO8601Date! + + """Total number of vulnerabilities on a particular day with high severity""" + high: Int! + + """Total number of vulnerabilities on a particular day with info severity""" + info: Int! + + """Total number of vulnerabilities on a particular day with low severity""" + low: Int! + + """ + Total number of vulnerabilities on a particular day with medium severity + """ + medium: Int! + + """Total number of vulnerabilities on a particular day.""" + total: Int! + + """ + Total number of vulnerabilities on a particular day with unknown severity + """ + unknown: Int! +} + +"""The connection type for VulnerabilitiesCountByDay.""" +type VulnerabilitiesCountByDayConnection { + """A list of edges.""" + edges: [VulnerabilitiesCountByDayEdge] + + """A list of nodes.""" + nodes: [VulnerabilitiesCountByDay] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type VulnerabilitiesCountByDayEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: VulnerabilitiesCountByDay +} + +""" +A `VulnerabilitiesExternalIssueLinkID` is a global ID. It is encoded as a string. + +An example `VulnerabilitiesExternalIssueLinkID` is: `"gid://gitlab/Vulnerabilities::ExternalIssueLink/1"`. +""" +scalar VulnerabilitiesExternalIssueLinkID + +""" +A `VulnerabilitiesFindingID` is a global ID. It is encoded as a string. + +An example `VulnerabilitiesFindingID` is: `"gid://gitlab/Vulnerabilities::Finding/1"`. +""" +scalar VulnerabilitiesFindingID + +""" +A `VulnerabilitiesScannerID` is a global ID. It is encoded as a string. + +An example `VulnerabilitiesScannerID` is: `"gid://gitlab/Vulnerabilities::Scanner/1"`. +""" +scalar VulnerabilitiesScannerID + +"""Represents a vulnerability""" +type Vulnerability implements NoteableInterface { + """Timestamp of when the vulnerability state was changed to confirmed.""" + confirmedAt: Time + + """User that confirmed the vulnerability.""" + confirmedBy: UserCore + + """Description of the vulnerability.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Details of the vulnerability.""" + details: [VulnerabilityDetail!]! + + """Timestamp of when the vulnerability was first detected.""" + detectedAt: Time! + + """All discussions on this noteable.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionConnection! + + """Timestamp of when the vulnerability state was changed to dismissed.""" + dismissedAt: Time + + """User that dismissed the vulnerability.""" + dismissedBy: UserCore + + """List of external issue links related to the vulnerability.""" + externalIssueLinks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityExternalIssueLinkConnection! + + """Indicates whether the vulnerability is a false positive.""" + falsePositive: Boolean + + """ + Indicates whether there is a solution available for this vulnerability. + """ + hasSolutions: Boolean + + """GraphQL ID of the vulnerability.""" + id: ID! + + """Identifiers of the vulnerability.""" + identifiers: [VulnerabilityIdentifier!]! + + """List of issue links related to the vulnerability.""" + issueLinks( + """Filter issue links by link type.""" + linkType: VulnerabilityIssueLinkType + + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): VulnerabilityIssueLinkConnection! + + """List of links associated with the vulnerability.""" + links: [VulnerabilityLink!]! + + """ + Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. + """ + location: VulnerabilityLocation + + """Merge request that fixes the vulnerability.""" + mergeRequest: MergeRequest + + """ + Short text description of the vulnerability. This may include the finding's specific information. + """ + message: String + + """All notes on this noteable.""" + notes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): NoteConnection! + + """Primary identifier of the vulnerability.""" + primaryIdentifier: VulnerabilityIdentifier + + """Project on which the vulnerability was found.""" + project: Project + + """ + Type of the security report that found the vulnerability (SAST, + DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, + COVERAGE_FUZZING, API_FUZZING, CLUSTER_IMAGE_SCANNING, GENERIC). `Scan Type` in the UI. + """ + reportType: VulnerabilityReportType + + """Timestamp of when the vulnerability state was changed to resolved.""" + resolvedAt: Time + + """User that resolved the vulnerability.""" + resolvedBy: UserCore + + """ + Indicates whether the vulnerability is fixed on the default branch or not. + """ + resolvedOnDefaultBranch: Boolean! + + """Scanner metadata for the vulnerability.""" + scanner: VulnerabilityScanner + + """ + Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL) + """ + severity: VulnerabilitySeverity + + """State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED)""" + state: VulnerabilityState + + """Title of the vulnerability.""" + title: String + + """Number of user notes attached to the vulnerability.""" + userNotesCount: Int! + + """Permissions for the current user on the resource""" + userPermissions: VulnerabilityPermissions! + + """URL to the vulnerability's details page.""" + vulnerabilityPath: String +} + +"""Confidence that a given vulnerability is present in the codebase.""" +enum VulnerabilityConfidence { + """Ignore confidence""" + IGNORE + + """Unknown confidence""" + UNKNOWN + + """Experimental confidence""" + EXPERIMENTAL + + """Low confidence""" + LOW + + """Medium confidence""" + MEDIUM + + """High confidence""" + HIGH + + """Confirmed confidence""" + CONFIRMED +} + +"""Autogenerated input type of VulnerabilityConfirm""" +input VulnerabilityConfirmInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the vulnerability to be confirmed.""" + id: VulnerabilityID! +} + +"""Autogenerated return type of VulnerabilityConfirm""" +type VulnerabilityConfirmPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Vulnerability after state change.""" + vulnerability: Vulnerability +} + +"""The connection type for Vulnerability.""" +type VulnerabilityConnection { + """A list of edges.""" + edges: [VulnerabilityEdge] + + """A list of nodes.""" + nodes: [Vulnerability] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Represents a container image reported on the related vulnerability""" +type VulnerabilityContainerImage { + """Name of the container image.""" + name: String +} + +"""The connection type for VulnerabilityContainerImage.""" +type VulnerabilityContainerImageConnection { + """A list of edges.""" + edges: [VulnerabilityContainerImageEdge] + + """A list of nodes.""" + nodes: [VulnerabilityContainerImage] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type VulnerabilityContainerImageEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: VulnerabilityContainerImage +} + +"""Autogenerated input type of VulnerabilityCreate""" +input VulnerabilityCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the project to attach the vulnerability to.""" + project: ProjectID! + + """Name of the vulnerability.""" + name: String! + + """Long text section that describes the vulnerability in more detail.""" + description: String! + + """Information about the scanner used to discover the vulnerability.""" + scanner: VulnerabilityScannerInput! + + """Array of CVE or CWE identifiers for the vulnerability.""" + identifiers: [VulnerabilityIdentifierInput!]! + + """State of the vulnerability (defaults to `detected`).""" + state: VulnerabilityState = DETECTED + + """Severity of the vulnerability (defaults to `unknown`).""" + severity: VulnerabilitySeverity = UNKNOWN + + """Instructions for how to fix the vulnerability.""" + solution: String + + """ + Short text section that describes the vulnerability. This may include the finding's specific information. + """ + message: String + + """ + Timestamp of when the vulnerability was first detected (defaults to creation time). + """ + detectedAt: Time + + """ + Timestamp of when the vulnerability state changed to confirmed (defaults to creation time if status is `confirmed`). + """ + confirmedAt: Time + + """ + Timestamp of when the vulnerability state changed to resolved (defaults to creation time if status is `resolved`). + """ + resolvedAt: Time + + """ + Timestamp of when the vulnerability state changed to dismissed (defaults to creation time if status is `dismissed`). + """ + dismissedAt: Time +} + +"""Autogenerated return type of VulnerabilityCreate""" +type VulnerabilityCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Vulnerability created.""" + vulnerability: Vulnerability +} + +""" +Represents a vulnerability detail field. The fields with data will depend on the vulnerability detail type +""" +union VulnerabilityDetail = VulnerabilityDetailBase | VulnerabilityDetailBoolean | VulnerabilityDetailCode | VulnerabilityDetailCommit | VulnerabilityDetailDiff | VulnerabilityDetailFileLocation | VulnerabilityDetailInt | VulnerabilityDetailList | VulnerabilityDetailMarkdown | VulnerabilityDetailModuleLocation | VulnerabilityDetailTable | VulnerabilityDetailText | VulnerabilityDetailUrl + +"""Represents the vulnerability details base""" +type VulnerabilityDetailBase { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String +} + +"""Represents the vulnerability details boolean value""" +type VulnerabilityDetailBoolean { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String + + """Value of the field.""" + value: Boolean! +} + +"""Represents the vulnerability details code field""" +type VulnerabilityDetailCode { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Language of the code.""" + lang: String + + """Name of the field.""" + name: String + + """Source code.""" + value: String! +} + +"""Represents the vulnerability details commit field""" +type VulnerabilityDetailCommit { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String + + """Commit SHA value.""" + value: String! +} + +"""Represents the vulnerability details diff field""" +type VulnerabilityDetailDiff { + """Value of the field after the change.""" + after: String! + + """Value of the field before the change.""" + before: String! + + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String +} + +""" +Represents the vulnerability details location within a file in the project +""" +type VulnerabilityDetailFileLocation { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """File name.""" + fileName: String! + + """End line number of the file location.""" + lineEnd: Int! + + """Start line number of the file location.""" + lineStart: Int! + + """Name of the field.""" + name: String +} + +"""Represents the vulnerability details integer value""" +type VulnerabilityDetailInt { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String + + """Value of the field.""" + value: Int! +} + +"""Represents the vulnerability details list value""" +type VulnerabilityDetailList { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """List of details.""" + items: [VulnerabilityDetail!]! + + """Name of the field.""" + name: String +} + +"""Represents the vulnerability details Markdown field""" +type VulnerabilityDetailMarkdown { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String + + """Value of the Markdown field.""" + value: String! +} + +""" +Represents the vulnerability details location within a file in the project +""" +type VulnerabilityDetailModuleLocation { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Module name.""" + moduleName: String! + + """Name of the field.""" + name: String + + """Offset of the module location.""" + offset: Int! +} + +"""Represents the vulnerability details table value""" +type VulnerabilityDetailTable { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Table headers.""" + headers: [VulnerabilityDetail!]! + + """Name of the field.""" + name: String + + """Table rows.""" + rows: [VulnerabilityDetail!]! +} + +"""Represents the vulnerability details text field""" +type VulnerabilityDetailText { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Name of the field.""" + name: String + + """Value of the text field.""" + value: String! +} + +"""Represents the vulnerability details URL field""" +type VulnerabilityDetailUrl { + """Description of the field.""" + description: String + + """Name of the field.""" + fieldName: String + + """Href of the URL.""" + href: String! + + """Name of the field.""" + name: String + + """Text of the URL.""" + text: String +} + +"""The dismissal reason of the Vulnerability""" +enum VulnerabilityDismissalReason { + """ + The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk. + """ + ACCEPTABLE_RISK + + """ + An error in reporting in which a test result incorrectly indicates the + presence of a vulnerability in a system when the vulnerability is not present. + """ + FALSE_POSITIVE + + """ + A management, operational, or technical control (that is, safeguard or + countermeasure) employed by an organization that provides equivalent or + comparable protection for an information system. + """ + MITIGATING_CONTROL + + """ + The finding is not a vulnerability because it is part of a test or is test data. + """ + USED_IN_TESTS + + """ + The vulnerability is known, and has not been remediated or mitigated, but is + considered to be in a part of the application that will not be updated. + """ + NOT_APPLICABLE +} + +"""Autogenerated input type of VulnerabilityDismiss""" +input VulnerabilityDismissInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the vulnerability to be dismissed.""" + id: VulnerabilityID! + + """Comment why vulnerability should be dismissed.""" + comment: String + + """Reason why vulnerability should be dismissed.""" + dismissalReason: VulnerabilityDismissalReason +} + +"""Autogenerated return type of VulnerabilityDismiss""" +type VulnerabilityDismissPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Vulnerability after dismissal.""" + vulnerability: Vulnerability +} + +"""An edge in a connection.""" +type VulnerabilityEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Vulnerability +} + +"""Represents a Vulnerability Evidence""" +type VulnerabilityEvidence { + """HTTP request of the Vulnerability Evidence.""" + request: VulnerabilityRequest + + """HTTP response of the Vulnerability Evidence.""" + response: VulnerabilityResponse + + """Source of the Vulnerability Evidence.""" + source: VulnerabilityEvidenceSource + + """Summary of the Vulnerability Evidence.""" + summary: String + + """Supporting messages of the Vulnerability Evidence.""" + supportingMessages: [VulnerabilityEvidenceSupportingMessage!] +} + +"""Represents a vulnerability evidence""" +type VulnerabilityEvidenceSource { + """ID of the Vulnerability Evidence Source.""" + identifier: String! + + """Name of the Vulnerability Evidence Source.""" + name: String! + + """URL of the Vulnerability Evidence Source.""" + url: String +} + +"""Represents a vulnerability evidence supporting message""" +type VulnerabilityEvidenceSupportingMessage { + """Name of the vulnerability supporting message.""" + name: String! + + """HTTP request of the vulnerability evidence supporting message.""" + request: VulnerabilityRequest + + """HTTP response of the vulnerability evidence supporting message.""" + response: VulnerabilityResponse +} + +"""Represents an external issue link of a vulnerability""" +type VulnerabilityExternalIssueLink { + """The external issue attached to the issue link.""" + externalIssue: ExternalIssue + + """GraphQL ID of the external issue link.""" + id: VulnerabilitiesExternalIssueLinkID! + + """Type of the external issue link.""" + linkType: VulnerabilityExternalIssueLinkType! +} + +"""The connection type for VulnerabilityExternalIssueLink.""" +type VulnerabilityExternalIssueLinkConnection { + """A list of edges.""" + edges: [VulnerabilityExternalIssueLinkEdge] + + """A list of nodes.""" + nodes: [VulnerabilityExternalIssueLink] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""Autogenerated input type of VulnerabilityExternalIssueLinkCreate""" +input VulnerabilityExternalIssueLinkCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the vulnerability.""" + id: VulnerabilityID! + + """Type of the external issue link.""" + linkType: VulnerabilityExternalIssueLinkType! + + """External tracker type of the external issue link.""" + externalTracker: VulnerabilityExternalIssueLinkExternalTracker! +} + +"""Autogenerated return type of VulnerabilityExternalIssueLinkCreate""" +type VulnerabilityExternalIssueLinkCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created external issue link.""" + externalIssueLink: VulnerabilityExternalIssueLink +} + +"""Autogenerated input type of VulnerabilityExternalIssueLinkDestroy""" +input VulnerabilityExternalIssueLinkDestroyInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the vulnerability external issue link.""" + id: VulnerabilitiesExternalIssueLinkID! +} + +"""Autogenerated return type of VulnerabilityExternalIssueLinkDestroy""" +type VulnerabilityExternalIssueLinkDestroyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! +} + +"""An edge in a connection.""" +type VulnerabilityExternalIssueLinkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: VulnerabilityExternalIssueLink +} + +""" +The external tracker of the external issue link related to a vulnerability +""" +enum VulnerabilityExternalIssueLinkExternalTracker { + """Jira external tracker""" + JIRA +} + +"""The type of the external issue link related to a vulnerability""" +enum VulnerabilityExternalIssueLinkType { + """Created link type""" + CREATED +} + +"""Autogenerated input type of VulnerabilityFindingDismiss""" +input VulnerabilityFindingDismissInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """UUID of the finding to be dismissed.""" + uuid: String + + """Comment why finding should be dismissed.""" + comment: String + + """Reason why finding should be dismissed.""" + dismissalReason: VulnerabilityDismissalReason +} + +"""Autogenerated return type of VulnerabilityFindingDismiss""" +type VulnerabilityFindingDismissPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Finding after dismissal.""" + finding: PipelineSecurityReportFinding +} + +"""The grade of the vulnerable project""" +enum VulnerabilityGrade { + """A grade""" + A + + """B grade""" + B + + """C grade""" + C + + """D grade""" + D + + """F grade""" + F +} + +""" +A `VulnerabilityID` is a global ID. It is encoded as a string. + +An example `VulnerabilityID` is: `"gid://gitlab/Vulnerability/1"`. +""" +scalar VulnerabilityID + +"""Represents a vulnerability identifier""" +type VulnerabilityIdentifier { + """External ID of the vulnerability identifier.""" + externalId: String + + """External type of the vulnerability identifier.""" + externalType: String + + """Name of the vulnerability identifier.""" + name: String + + """URL of the vulnerability identifier.""" + url: String +} + +input VulnerabilityIdentifierInput { + """Name of the vulnerability identifier.""" + name: String! + + """URL of the vulnerability identifier.""" + url: String! + + """External type of the vulnerability identifier.""" + externalType: String + + """External ID of the vulnerability identifier.""" + externalId: String +} + +"""Represents an issue link of a vulnerability""" +type VulnerabilityIssueLink { + """GraphQL ID of the vulnerability.""" + id: ID! + + """Issue attached to issue link.""" + issue: Issue + + """Type of the issue link.""" + linkType: VulnerabilityIssueLinkType! +} + +"""The connection type for VulnerabilityIssueLink.""" +type VulnerabilityIssueLinkConnection { + """A list of edges.""" + edges: [VulnerabilityIssueLinkEdge] + + """A list of nodes.""" + nodes: [VulnerabilityIssueLink] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type VulnerabilityIssueLinkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: VulnerabilityIssueLink +} + +"""The type of the issue link related to a vulnerability""" +enum VulnerabilityIssueLinkType { + """Has a related issue""" + RELATED + + """Issue is created for the vulnerability""" + CREATED +} + +"""Represents a link related to a vulnerability""" +type VulnerabilityLink { + """Name of the link.""" + name: String + + """URL of the link.""" + url: String! +} + +""" +Represents a vulnerability location. The fields with data will depend on the vulnerability report type +""" +union VulnerabilityLocation = VulnerabilityLocationClusterImageScanning | VulnerabilityLocationContainerScanning | VulnerabilityLocationCoverageFuzzing | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationGeneric | VulnerabilityLocationSast | VulnerabilityLocationSecretDetection + +""" +Represents the location of a vulnerability found by a cluster image scan +""" +type VulnerabilityLocationClusterImageScanning { + """Dependency containing the vulnerability.""" + dependency: VulnerableDependency + + """Name of the vulnerable container image.""" + image: String + + """Kubernetes resource which uses the vulnerable container image.""" + kubernetesResource: VulnerableKubernetesResource + + """Operating system that runs on the vulnerable container image.""" + operatingSystem: String +} + +""" +Represents the location of a vulnerability found by a container security scan +""" +type VulnerabilityLocationContainerScanning { + """Dependency containing the vulnerability.""" + dependency: VulnerableDependency + + """Name of the vulnerable container image.""" + image: String + + """Operating system that runs on the vulnerable container image.""" + operatingSystem: String +} + +""" +Represents the location of a vulnerability found by a Coverage Fuzzing scan +""" +type VulnerabilityLocationCoverageFuzzing { + """Blob path to the vulnerable file.""" + blobPath: String + + """Relative address in memory were the crash occurred.""" + crashAddress: String + + """Type of the crash.""" + crashType: String + + """Number of the last relevant line in the vulnerable file.""" + endLine: String + + """Path to the vulnerable file.""" + file: String + + """Stack trace recorded during fuzzing resulting the crash.""" + stacktraceSnippet: String + + """Number of the first relevant line in the vulnerable file.""" + startLine: String + + """Class containing the vulnerability.""" + vulnerableClass: String + + """Method containing the vulnerability.""" + vulnerableMethod: String +} + +"""Represents the location of a vulnerability found by a DAST scan""" +type VulnerabilityLocationDast { + """Domain name of the vulnerable request.""" + hostname: String + + """Query parameter for the URL on which the vulnerability occurred.""" + param: String + + """URL path and query string of the vulnerable request.""" + path: String + + """HTTP method of the vulnerable request.""" + requestMethod: String +} + +""" +Represents the location of a vulnerability found by a dependency security scan +""" +type VulnerabilityLocationDependencyScanning { + """Blob path to the vulnerable file.""" + blobPath: String + + """Dependency containing the vulnerability.""" + dependency: VulnerableDependency + + """Path to the vulnerable file.""" + file: String +} + +"""Represents the location of a vulnerability found by a generic scanner.""" +type VulnerabilityLocationGeneric { + """Free-form description of where the vulnerability is located.""" + description: String +} + +"""Represents the location of a vulnerability found by a SAST scan""" +type VulnerabilityLocationSast { + """Blob path to the vulnerable file.""" + blobPath: String + + """Number of the last relevant line in the vulnerable file.""" + endLine: String + + """Path to the vulnerable file.""" + file: String + + """Number of the first relevant line in the vulnerable file.""" + startLine: String + + """Class containing the vulnerability.""" + vulnerableClass: String + + """Method containing the vulnerability.""" + vulnerableMethod: String +} + +""" +Represents the location of a vulnerability found by a secret detection scan +""" +type VulnerabilityLocationSecretDetection { + """Blob path to the vulnerable file.""" + blobPath: String + + """Number of the last relevant line in the vulnerable file.""" + endLine: String + + """Path to the vulnerable file.""" + file: String + + """Number of the first relevant line in the vulnerable file.""" + startLine: String + + """Class containing the vulnerability.""" + vulnerableClass: String + + """Method containing the vulnerability.""" + vulnerableMethod: String +} + +"""Check permissions for the current user on a vulnerability""" +type VulnerabilityPermissions { + """Indicates the user can perform `admin_vulnerability` on this resource""" + adminVulnerability: Boolean! + + """ + Indicates the user can perform `admin_vulnerability_external_issue_link` on this resource + """ + adminVulnerabilityExternalIssueLink: Boolean! + + """ + Indicates the user can perform `admin_vulnerability_issue_link` on this resource + """ + adminVulnerabilityIssueLink: Boolean! + + """Indicates the user can perform `create_vulnerability` on this resource""" + createVulnerability: Boolean! + + """ + Indicates the user can perform `create_vulnerability_export` on this resource + """ + createVulnerabilityExport: Boolean! + + """ + Indicates the user can perform `create_vulnerability_feedback` on this resource + """ + createVulnerabilityFeedback: Boolean! + + """ + Indicates the user can perform `destroy_vulnerability_feedback` on this resource + """ + destroyVulnerabilityFeedback: Boolean! + + """ + Indicates the user can perform `read_vulnerability_feedback` on this resource + """ + readVulnerabilityFeedback: Boolean! + + """ + Indicates the user can perform `update_vulnerability_feedback` on this resource + """ + updateVulnerabilityFeedback: Boolean! +} + +"""The type of the security scan that found the vulnerability""" +enum VulnerabilityReportType { + """SAST report""" + SAST + + """Dependency Scanning report""" + DEPENDENCY_SCANNING + + """Container Scanning report""" + CONTAINER_SCANNING + + """DAST report""" + DAST + + """Secret Detection report""" + SECRET_DETECTION + + """Coverage Fuzzing report""" + COVERAGE_FUZZING + + """API Fuzzing report""" + API_FUZZING + + """Cluster Image Scanning report""" + CLUSTER_IMAGE_SCANNING + + """Generic report""" + GENERIC +} + +"""Represents a Vulnerability Request""" +type VulnerabilityRequest { + """Body of the Vulnerability Request.""" + body: String + + """HTTP headers of the Vulnerability Request.""" + headers: [VulnerabilityRequestResponseHeader!]! + + """Method of the Vulnerability Request.""" + method: String + + """URL of the Vulnerability Request.""" + url: String +} + +"""Represents a Vulnerability Request/Response Header""" +type VulnerabilityRequestResponseHeader { + """Name of the Vulnerability Request/Response Header.""" + name: String + + """Value of the Vulnerability Request/Response Header.""" + value: String +} + +"""Autogenerated input type of VulnerabilityResolve""" +input VulnerabilityResolveInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the vulnerability to be resolved.""" + id: VulnerabilityID! +} + +"""Autogenerated return type of VulnerabilityResolve""" +type VulnerabilityResolvePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Vulnerability after state change.""" + vulnerability: Vulnerability +} + +"""Represents a Vulnerability Response""" +type VulnerabilityResponse { + """Body of the Vulnerability Response.""" + body: String + + """HTTP headers of the Vulnerability Response.""" + headers: [VulnerabilityRequestResponseHeader!]! + + """Reason Phrase of the Vulnerability Response.""" + reasonPhrase: String + + """Status Code of the Vulnerability Response.""" + statusCode: Int +} + +"""Autogenerated input type of VulnerabilityRevertToDetected""" +input VulnerabilityRevertToDetectedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """ID of the vulnerability to be reverted.""" + id: VulnerabilityID! +} + +"""Autogenerated return type of VulnerabilityRevertToDetected""" +type VulnerabilityRevertToDetectedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Vulnerability after revert.""" + vulnerability: Vulnerability +} + +"""Represents a vulnerability scanner""" +type VulnerabilityScanner { + """External ID of the vulnerability scanner.""" + externalId: String + + """ID of the scanner.""" + id: ID + + """Name of the vulnerability scanner.""" + name: String + + """Type of the vulnerability report.""" + reportType: VulnerabilityReportType + + """Humanized type of the vulnerability report.""" + reportTypeHumanized: String + + """Vendor of the vulnerability scanner.""" + vendor: String +} + +"""The connection type for VulnerabilityScanner.""" +type VulnerabilityScannerConnection { + """A list of edges.""" + edges: [VulnerabilityScannerEdge] + + """A list of nodes.""" + nodes: [VulnerabilityScanner] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type VulnerabilityScannerEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: VulnerabilityScanner +} + +input VulnerabilityScannerInput { + """Unique ID that identifies the scanner.""" + id: String! + + """ + Human readable value that identifies the analyzer, not required to be unique. + """ + name: String! + + """Link to more information about the analyzer.""" + url: String! + + """Information about vendor/maintainer of the scanner.""" + vendor: VulnerabilityScannerVendorInput + + """Version of the scanner.""" + version: String! +} + +input VulnerabilityScannerVendorInput { + """Name of the vendor/maintainer.""" + name: String! +} + +"""Represents vulnerability counts by severity""" +type VulnerabilitySeveritiesCount { + """Number of vulnerabilities of CRITICAL severity of the project""" + critical: Int + + """Number of vulnerabilities of HIGH severity of the project""" + high: Int + + """Number of vulnerabilities of INFO severity of the project""" + info: Int + + """Number of vulnerabilities of LOW severity of the project""" + low: Int + + """Number of vulnerabilities of MEDIUM severity of the project""" + medium: Int + + """Number of vulnerabilities of UNKNOWN severity of the project""" + unknown: Int +} + +"""The severity of the vulnerability""" +enum VulnerabilitySeverity { + """Info severity""" + INFO + + """Unknown severity""" + UNKNOWN + + """Low severity""" + LOW + + """Medium severity""" + MEDIUM + + """High severity""" + HIGH + + """Critical severity""" + CRITICAL +} + +"""Vulnerability sort values""" +enum VulnerabilitySort { + """Severity in descending order.""" + severity_desc + + """Severity in ascending order.""" + severity_asc + + """Detection timestamp in descending order.""" + detected_desc + + """Detection timestamp in ascending order.""" + detected_asc +} + +"""The state of the vulnerability""" +enum VulnerabilityState { + """ + For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values). + """ + CONFIRMED + + """ + For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values). + """ + DETECTED + + """ + For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values). + """ + DISMISSED + + """ + For details, see [vulnerability status values](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/index.html#vulnerability-status-values). + """ + RESOLVED +} + +""" +Represents a vulnerable dependency. Used in vulnerability location data +""" +type VulnerableDependency { + """Package associated with the vulnerable dependency.""" + package: VulnerablePackage + + """Version of the vulnerable dependency.""" + version: String +} + +""" +Represents a vulnerable Kubernetes resource. Used in vulnerability location data +""" +type VulnerableKubernetesResource { + """Kubernetes Agent which performed the scan.""" + agent: ClusterAgent + + """ID of the Cluster integration which was used to perform the scan.""" + clusterId: ClustersClusterID + + """Name of the container that had its image scanned.""" + containerName: String! + + """Kind of the Kubernetes resource.""" + kind: String! + + """Name of the Kubernetes resource.""" + name: String! + + """Kubernetes namespace which the resource resides in.""" + namespace: String! +} + +"""Represents a vulnerable package. Used in vulnerability dependency data""" +type VulnerablePackage { + """Name of the vulnerable package.""" + name: String +} + +"""Represents vulnerability letter grades with associated projects""" +type VulnerableProjectsByGrade { + """Number of projects within this grade.""" + count: Int! + + """Grade based on the highest severity vulnerability present.""" + grade: VulnerabilityGrade! + + """Projects within this grade.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectConnection! +} + +"""Weight ID wildcard values""" +enum WeightWildcardId { + """No weight is assigned.""" + NONE + + """Weight is assigned.""" + ANY +} + +type WorkItem implements Todoable { + """Timestamp of when the work item was closed.""" + closedAt: Time + + """Indicates the work item is confidential.""" + confidential: Boolean! + + """Timestamp of when the work item was created.""" + createdAt: Time! + + """Description of the work item.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Internal ID of the work item.""" + iid: ID! + + """ + Lock version of the work item. Incremented each time the work item is updated. + """ + lockVersion: Int! + + """ + Project the work item belongs to. Introduced in 15.3: This feature is in Alpha. It can be changed or removed at any time. + """ + project: Project! @deprecated(reason: "This feature is in Alpha. It can be changed or removed at any time. Introduced in 15.3.") + + """State of the work item.""" + state: WorkItemState! + + """Title of the work item.""" + title: String! + + """The GitLab Flavored Markdown rendering of `title`""" + titleHtml: String + + """Timestamp of when the work item was last updated.""" + updatedAt: Time! + + """Permissions for the current user on the resource""" + userPermissions: WorkItemPermissions! + + """URL of this object.""" + webUrl: String + + """Collection of widgets that belong to the work item.""" + widgets: [WorkItemWidget!] + + """Type assigned to the work item.""" + workItemType: WorkItemType! +} + +"""The connection type for WorkItem.""" +type WorkItemConnection { + """A list of edges.""" + edges: [WorkItemEdge] + + """A list of nodes.""" + nodes: [WorkItem] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +input WorkItemConvertTaskInput { + """Last line in the Markdown source that defines the list item task.""" + lineNumberEnd: Int! + + """First line in the Markdown source that defines the list item task.""" + lineNumberStart: Int! + + """ + Current lock version of the work item containing the task in the description. + """ + lockVersion: Int! + + """ + Full string of the task to be replaced. New title for the created work item. + """ + title: String! + + """Global ID of the work item type used to create the new work item.""" + workItemTypeId: WorkItemsTypeID! +} + +"""Autogenerated input type of WorkItemCreateFromTask""" +input WorkItemCreateFromTaskInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Arguments necessary to convert a task into a work item.""" + workItemData: WorkItemConvertTaskInput! +} + +"""Autogenerated return type of WorkItemCreateFromTask""" +type WorkItemCreateFromTaskPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """New work item created from task.""" + newWorkItem: WorkItem + + """Updated work item.""" + workItem: WorkItem +} + +"""Autogenerated input type of WorkItemCreate""" +input WorkItemCreateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Sets the work item confidentiality.""" + confidential: Boolean + + """Description of the work item.""" + description: String + + """Input for hierarchy widget.""" + hierarchyWidget: WorkItemWidgetHierarchyCreateInput + + """Full path of the project the work item is associated with.""" + projectPath: ID! + + """Title of the work item.""" + title: String! + + """Global ID of a work item type.""" + workItemTypeId: WorkItemsTypeID! +} + +"""Autogenerated return type of WorkItemCreate""" +type WorkItemCreatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Created work item.""" + workItem: WorkItem +} + +input WorkItemDeletedTaskInput { + """Global ID of the task referenced in the work item's description.""" + id: WorkItemID! + + """Last line in the Markdown source that defines the list item task.""" + lineNumberEnd: Int! + + """First line in the Markdown source that defines the list item task.""" + lineNumberStart: Int! +} + +"""Autogenerated input type of WorkItemDelete""" +input WorkItemDeleteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! +} + +"""Autogenerated return type of WorkItemDelete""" +type WorkItemDeletePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Project the deleted work item belonged to.""" + project: Project +} + +"""Autogenerated input type of WorkItemDeleteTask""" +input WorkItemDeleteTaskInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """ + Current lock version of the work item containing the task in the description. + """ + lockVersion: Int! + + """Arguments necessary to delete a task from a work item's description.""" + taskData: WorkItemDeletedTaskInput! +} + +"""Autogenerated return type of WorkItemDeleteTask""" +type WorkItemDeleteTaskPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated work item.""" + workItem: WorkItem +} + +"""An edge in a connection.""" +type WorkItemEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: WorkItem +} + +""" +A `WorkItemID` is a global ID. It is encoded as a string. + +An example `WorkItemID` is: `"gid://gitlab/WorkItem/1"`. + +While we transition from Issues into Work Items this type will temporarily support +`IssueID` like: `"gid://gitlab/Issue/1"`. This behavior will be removed without notice in the future. + +""" +scalar WorkItemID + +"""Check permissions for the current user on a work item""" +type WorkItemPermissions { + """Indicates the user can perform `delete_work_item` on this resource""" + deleteWorkItem: Boolean! + + """Indicates the user can perform `read_work_item` on this resource""" + readWorkItem: Boolean! + + """Indicates the user can perform `update_work_item` on this resource""" + updateWorkItem: Boolean! +} + +"""Values for sorting work items""" +enum WorkItemSort { + """Title by ascending order.""" + TITLE_ASC + + """Title by descending order.""" + TITLE_DESC + + """Updated at descending order.""" + updated_desc @deprecated(reason: "This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5.") + + """Updated at ascending order.""" + updated_asc @deprecated(reason: "This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5.") + + """Created at descending order.""" + created_desc @deprecated(reason: "This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5.") + + """Created at ascending order.""" + created_asc @deprecated(reason: "This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5.") + + """Updated at descending order.""" + UPDATED_DESC + + """Updated at ascending order.""" + UPDATED_ASC + + """Created at descending order.""" + CREATED_DESC + + """Created at ascending order.""" + CREATED_ASC +} + +"""State of a GitLab work item""" +enum WorkItemState { + """In open state.""" + OPEN + + """In closed state.""" + CLOSED +} + +"""Values for work item state events""" +enum WorkItemStateEvent { + """Reopens the work item.""" + REOPEN + + """Closes the work item.""" + CLOSE +} + +""" +A `WorkItemsTypeID` is a global ID. It is encoded as a string. + +An example `WorkItemsTypeID` is: `"gid://gitlab/WorkItems::Type/1"`. +""" +scalar WorkItemsTypeID + +type WorkItemType { + """Icon name of the work item type.""" + iconName: String + + """Global ID of the work item type.""" + id: WorkItemsTypeID! + + """Name of the work item type.""" + name: String! +} + +"""The connection type for WorkItemType.""" +type WorkItemTypeConnection { + """A list of edges.""" + edges: [WorkItemTypeEdge] + + """A list of nodes.""" + nodes: [WorkItemType] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type WorkItemTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: WorkItemType +} + +input WorkItemUpdatedTaskInput { + """Global ID of the work item.""" + id: WorkItemID! + + """Close or reopen a work item.""" + stateEvent: WorkItemStateEvent + + """Title of the work item.""" + title: String + + """Sets the work item confidentiality.""" + confidential: Boolean + + """Input for description widget.""" + descriptionWidget: WorkItemWidgetDescriptionInput + + """Input for assignees widget.""" + assigneesWidget: WorkItemWidgetAssigneesInput + + """Input for hierarchy widget.""" + hierarchyWidget: WorkItemWidgetHierarchyUpdateInput + + """Input for start and due date widget.""" + startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput +} + +"""Autogenerated input type of WorkItemUpdate""" +input WorkItemUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Close or reopen a work item.""" + stateEvent: WorkItemStateEvent + + """Title of the work item.""" + title: String + + """Sets the work item confidentiality.""" + confidential: Boolean + + """Input for description widget.""" + descriptionWidget: WorkItemWidgetDescriptionInput + + """Input for assignees widget.""" + assigneesWidget: WorkItemWidgetAssigneesInput + + """Input for hierarchy widget.""" + hierarchyWidget: WorkItemWidgetHierarchyUpdateInput + + """Input for start and due date widget.""" + startAndDueDateWidget: WorkItemWidgetStartAndDueDateUpdateInput + + """Input for iteration widget.""" + iterationWidget: WorkItemWidgetIterationInput + + """Input for weight widget.""" + weightWidget: WorkItemWidgetWeightInput +} + +"""Autogenerated return type of WorkItemUpdate""" +type WorkItemUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated work item.""" + workItem: WorkItem +} + +"""Autogenerated input type of WorkItemUpdateTask""" +input WorkItemUpdateTaskInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Global ID of the work item.""" + id: WorkItemID! + + """Arguments necessary to update a task.""" + taskData: WorkItemUpdatedTaskInput! +} + +"""Autogenerated return type of WorkItemUpdateTask""" +type WorkItemUpdateTaskPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + + """Errors encountered during execution of the mutation.""" + errors: [String!]! + + """Updated task.""" + task: WorkItem + + """Updated work item.""" + workItem: WorkItem +} + +interface WorkItemWidget { + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents an assignees widget""" +type WorkItemWidgetAssignees implements WorkItemWidget { + """Indicates whether multiple assignees are allowed.""" + allowsMultipleAssignees: Boolean + + """Assignees of the work item.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserCoreConnection + + """ + Indicates whether the current user can invite members to the work item's project. + """ + canInviteMembers: Boolean! + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetAssigneesInput { + """Global IDs of assignees.""" + assigneeIds: [UserID!]! +} + +"""Represents a description widget""" +type WorkItemWidgetDescription implements WorkItemWidget { + """Description of the work item.""" + description: String + + """The GitLab Flavored Markdown rendering of `description`""" + descriptionHtml: String + + """ + Whether the description has been edited since the work item was created. + """ + edited: Boolean! + + """Timestamp of when the work item's description was last edited.""" + lastEditedAt: Time + + """User that made the last edit to the work item's description.""" + lastEditedBy: UserCore + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetDescriptionInput { + """Description of the work item.""" + description: String! +} + +"""Represents a hierarchy widget""" +type WorkItemWidgetHierarchy implements WorkItemWidget { + """Child work items.""" + children( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): WorkItemConnection + + """Parent work item.""" + parent: WorkItem + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetHierarchyCreateInput { + """Global ID of the parent work item.""" + parentId: WorkItemID +} + +input WorkItemWidgetHierarchyUpdateInput { + """ + Global ID of the parent work item. Use `null` to remove the association. + """ + parentId: WorkItemID + + """Global IDs of children work items.""" + childrenIds: [WorkItemID!] +} + +"""Represents an iteration widget""" +type WorkItemWidgetIteration implements WorkItemWidget { + """Iteration of the work item.""" + iteration: Iteration + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetIterationInput { + """Iteration to assign to the work item.""" + iterationId: IterationID +} + +"""Represents the labels widget""" +type WorkItemWidgetLabels implements WorkItemWidget { + """Indicates whether a scoped label is allowed.""" + allowsScopedLabels: Boolean + + """Labels assigned to the work item.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Represents a start and due date widget""" +type WorkItemWidgetStartAndDueDate implements WorkItemWidget { + """Due date of the work item.""" + dueDate: Date + + """Start date of the work item.""" + startDate: Date + + """Widget type.""" + type: WorkItemWidgetType +} + +input WorkItemWidgetStartAndDueDateUpdateInput { + """Due date for the work item.""" + dueDate: Date + + """Start date for the work item.""" + startDate: Date +} + +"""Represents a status widget""" +type WorkItemWidgetStatus implements WorkItemWidget { + """Status of the work item.""" + status: String + + """Widget type.""" + type: WorkItemWidgetType +} + +"""Type of a work item widget""" +enum WorkItemWidgetType { + """Iteration widget.""" + ITERATION + + """Weight widget.""" + WEIGHT + + """Status widget.""" + STATUS + + """Assignees widget.""" + ASSIGNEES + + """Labels widget.""" + LABELS + + """Description widget.""" + DESCRIPTION + + """Hierarchy widget.""" + HIERARCHY + + """Start And Due Date widget.""" + START_AND_DUE_DATE +} + +"""Represents a weight widget""" +type WorkItemWidgetWeight implements WorkItemWidget { + """Widget type.""" + type: WorkItemWidgetType + + """Weight of the work item.""" + weight: Int +} + +input WorkItemWidgetWeightInput { + """Weight of the work item.""" + weight: Int +} + diff --git a/scripts/update-schema.sh b/scripts/update-schema.sh index 5d08964..7898796 100644 --- a/scripts/update-schema.sh +++ b/scripts/update-schema.sh @@ -2,3 +2,5 @@ # https://docs.github.com/en/graphql/overview/public-schema curl -o lib/gql_github/schema.graphql https://docs.github.com/public/schema.docs.graphql + +npx --yes get-graphql-schema https://gitlab.com/api/graphql > lib/gql_gitlab/schema.graphql