Files
gitlab-foss/doc/api/openapi/openapi.yaml
2025-07-08 00:13:04 +00:00

3636 lines
108 KiB
YAML

openapi: 3.0.1
info:
title: GitLab API
version: v4
description: |
An OpenAPI definition for the GitLab REST API.
Few API resources or endpoints are currently included.
The intent is to expand this to match the entire Markdown documentation of the API:
<https://docs.gitlab.com/ee/api/>. Contributions are welcome.
When viewing this on gitlab.com, you can test API calls directly from the browser
against the `gitlab.com` instance, if you are logged in.
The feature uses the current [GitLab session cookie](https://docs.gitlab.com/ee/api/#session-cookie),
so each request is made using your account.
Instructions for using this tool can be found in [Interactive API Documentation](https://docs.gitlab.com/ee/api/openapi/openapi_interactive.html)
termsOfService: 'https://about.gitlab.com/terms/'
license:
name: CC BY-SA 4.0
url: 'https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE'
servers:
- url: https://www.gitlab.com/api/v4
security:
- ApiKeyAuth: []
tags:
- name: badges
description: Operations about badges
- name: branches
description: Operations about branches
- name: alert_management
description: Operations about alert_managements
- name: batched_background_migrations
description: Operations about batched_background_migrations
- name: admin
description: Operations about admins
- name: migrations
description: Operations about migrations
- name: applications
description: Operations about applications
- name: avatar
description: Operations about avatars
- name: broadcast_messages
description: Operations about broadcast_messages
- name: bulk_imports
description: Operations about bulk_imports
- name: application
description: Operations about applications
- name: access_requests
description: Operations related to access requests
- name: ci_lint
description: Operations related to linting a CI config file
- name: ci_resource_groups
description: Operations to manage job concurrency with resource groups
- name: ci_variables
description: Operations related to CI/CD variables
- name: cluster_agents
description: Operations related to the GitLab agent for Kubernetes
- name: clusters
description: Operations related to clusters
- name: composer_packages
description: Operations related to Composer packages
- name: conan_packages
description: Operations related to Conan packages
- name: container_registry
description: Operations related to container registry
- name: container_registry_event
description: Operations related to container registry events
- name: debian_distribution
description: Operations related to Debian Linux distributions
- name: debian_packages
description: Operations related to Debian Linux packages
- name: dependency_proxy
description: Operations to manage dependency proxy for a groups
- name: deploy_keys
description: Operations related to deploy keys
- name: deploy_tokens
description: Operations related to deploy tokens
- name: deployments
description: Operations related to deployments
- name: dora_metrics
description: Operations related to DevOps Research and Assessment (DORA) key metrics
- name: environments
description: Operations related to environments
- name: error_tracking_client_keys
description: Operations related to error tracking client keys
- name: error_tracking_project_settings
description: Operations related to error tracking project settings
- name: feature_flags_user_lists
description: Operations related to accessing GitLab feature flag user lists
- name: feature_flags
description: Operations related to feature flags
- name: features
description: Operations related to managing Flipper-based feature flags
- name: freeze_periods
description: Operations related to deploy freeze periods
- name: generic_packages
description: Operations related to Generic packages
- name: geo
description: Operations related to Geo
- name: geo_nodes
description: Operations related Geo Nodes
- name: go_proxy
description: Operations related to Go Proxy
- name: group_export
description: Operations related to exporting groups
- name: group_import
description: Operations related to importing groups
- name: group_packages
description: Operations related to group packages
- name: helm_packages
description: Operations related to Helm packages
- name: integrations
description: Operations related to integrations
- name: issue_links
description: Operations related to issue links
- name: jira_connect_subscriptions
description: Operations related to JiraConnect subscriptions
- name: jobs
description: Operations related to CI Jobs
- name: maven_packages
description: Operations related to Maven packages
- name: merge_requests
description: Operations related to merge requests
- name: metadata
description: Operations related to metadata of the GitLab instance
- name: ml_model_registry
description: Operations related to Model registry
- name: npm_packages
description: Operations related to NPM packages
- name: nuget_packages
description: Operations related to Nuget packages
- name: package_files
description: Operations about package files
- name: plan_limits
description: Operations related to plan limits
- name: project_export
description: Operations related to exporting projects
- name: project_hooks
description: Operations related to project hooks
- name: project_import
description: Operations related to importing projects
- name: project_import_bitbucket
description: Operations related to importing BitBucket projects
- name: project_import_github
description: Operations related to importing GitHub projects
- name: project_packages
description: Operations related to project packages
- name: projects
description: Operations related to projects
- name: protected environments
description: Operations related to protected environments
- name: pypi_packages
description: Operations related to PyPI packages
- name: release_links
description: Operations related to release assets (links)
- name: releases
description: Operations related to releases
- name: resource_milestone_events
description: Operations about resource milestone events
- name: rpm_packages
description: Operations related to RPM packages
- name: rubygem_packages
description: Operations related to RubyGems
- name: suggestions
description: Operations related to suggestions
- name: system_hooks
description: Operations related to system hooks
- name: terraform_state
description: Operations related to Terraform state files
- name: terraform_registry
description: Operations related to the Terraform module registry
- name: unleash_api
description: Operations related to Unleash API
paths:
/groups/{id}/badges/{badge_id}:
get:
tags:
- badges
summary: Gets a badge of a group.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4GroupsIdBadgesBadgeId
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
- name: badge_id
in: path
description: The badge ID
required: true
schema:
type: integer
format: int32
responses:
200:
description: Gets a badge of a group.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
put:
tags:
- badges
summary: Updates a badge of a group.
description: This feature was introduced in GitLab 10.6.
operationId: putApiV4GroupsIdBadgesBadgeId
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
- name: badge_id
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
link_url:
type: string
description: URL of the badge link
image_url:
type: string
description: URL of the badge image
name:
type: string
description: Name for the badge
responses:
200:
description: Updates a badge of a group.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
delete:
tags:
- badges
summary: Removes a badge from the group.
description: This feature was introduced in GitLab 10.6.
operationId: deleteApiV4GroupsIdBadgesBadgeId
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
- name: badge_id
in: path
description: The badge ID
required: true
schema:
type: integer
format: int32
responses:
204:
description: Removes a badge from the group.
content: {}
/groups/{id}/badges:
get:
tags:
- badges
summary: Gets a list of group badges viewable by the authenticated user.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4GroupsIdBadges
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
- name: name
in: query
description: Name for the badge
schema:
type: string
responses:
200:
description: Gets a list of group badges viewable by the authenticated user.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Badge'
post:
tags:
- badges
summary: Adds a badge to a group.
description: This feature was introduced in GitLab 10.6.
operationId: postApiV4GroupsIdBadges
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
required:
- image_url
- link_url
properties:
link_url:
type: string
description: URL of the badge link
image_url:
type: string
description: URL of the badge image
name:
type: string
description: Name for the badge
required: true
responses:
201:
description: Adds a badge to a group.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
/groups/{id}/badges/render:
get:
tags:
- badges
summary: Preview a badge from a group.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4GroupsIdBadgesRender
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user.
required: true
schema:
type: string
- name: link_url
in: query
description: URL of the badge link
required: true
schema:
type: string
- name: image_url
in: query
description: URL of the badge image
required: true
schema:
type: string
responses:
200:
description: Preview a badge from a group.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BasicBadgeDetails'
/groups/{id}/access_requests/{user_id}:
delete:
tags:
- access_requests
summary: Denies an access request for the given user.
description: This feature was introduced in GitLab 8.11.
operationId: deleteApiV4GroupsIdAccessRequestsUserId
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user
required: true
schema:
type: string
- name: user_id
in: path
description: The user ID of the access requester
required: true
schema:
type: integer
format: int32
responses:
204:
description: Denies an access request for the given user.
content: {}
/groups/{id}/access_requests/{user_id}/approve:
put:
tags:
- access_requests
summary: Approves an access request for the given user.
description: This feature was introduced in GitLab 8.11.
operationId: putApiV4GroupsIdAccessRequestsUserIdApprove
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user
required: true
schema:
type: string
- name: user_id
in: path
description: The user ID of the access requester
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
access_level:
type: integer
description: 'A valid access level (defaults: `30`, the Developer
role)'
format: int32
default: 30
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
successfull_response:
example:
id: 1
username: raymond_smith
name: Raymond Smith
state: active
created_at: 2012-10-22T14:13:35Z
access_level: 20
/groups/{id}/access_requests:
get:
tags:
- access_requests
summary: Gets a list of access requests for a group.
description: This feature was introduced in GitLab 8.11.
operationId: getApiV4GroupsIdAccessRequests
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user
required: true
schema:
type: string
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
responses:
200:
description: Gets a list of access requests for a group.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
post:
tags:
- access_requests
summary: Requests access for the authenticated user to a group.
description: This feature was introduced in GitLab 8.11.
operationId: postApiV4GroupsIdAccessRequests
parameters:
- name: id
in: path
description: The ID or URL-encoded path of the group owned by the authenticated
user
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
successfull_response:
example:
id: 1
username: raymond_smith
name: Raymond Smith
state: active
created_at: 2012-10-22T14:13:35Z
access_level: 20
/projects/{id}/repository/merged_branches:
delete:
tags:
- branches
description: Delete all merged branches
operationId: deleteApiV4ProjectsIdRepositoryMergedBranches
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
responses:
202:
description: 202 Accepted
content: {}
404:
description: 404 Project Not Found
content: {}
/projects/{id}/repository/branches/{branch}:
get:
tags:
- branches
description: Get a single repository branch
operationId: getApiV4ProjectsIdRepositoryBranchesBranch
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: path
required: true
schema:
type: integer
format: int32
responses:
200:
description: Get a single repository branch
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Branch'
404:
description: Branch Not Found
content: {}
delete:
tags:
- branches
description: Delete a branch
operationId: deleteApiV4ProjectsIdRepositoryBranchesBranch
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: path
description: The name of the branch
required: true
schema:
type: string
responses:
204:
description: Delete a branch
content: {}
404:
description: Branch Not Found
content: {}
head:
tags:
- branches
description: Check if a branch exists
operationId: headApiV4ProjectsIdRepositoryBranchesBranch
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: path
description: The name of the branch
required: true
schema:
type: string
responses:
204:
description: No Content
content: {}
404:
description: Not Found
content: {}
/projects/{id}/repository/branches:
get:
tags:
- branches
description: Get a project repository branches
operationId: getApiV4ProjectsIdRepositoryBranches
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
- name: search
in: query
description: Return list of branches matching the search criteria
schema:
type: string
- name: regex
in: query
description: Return list of branches matching the regex
schema:
type: string
- name: sort
in: query
description: Return list of branches sorted by the given field
schema:
type: string
enum:
- name_asc
- updated_asc
- updated_desc
- name: page_token
in: query
description: Name of branch to start the pagination from
schema:
type: string
responses:
200:
description: Get a project repository branches
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Branch'
404:
description: 404 Project Not Found
content: {}
post:
tags:
- branches
description: Create branch
operationId: postApiV4ProjectsIdRepositoryBranches
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: query
description: The name of the branch
required: true
schema:
type: string
- name: ref
in: query
description: Create branch from commit sha or existing branch
required: true
schema:
type: string
responses:
201:
description: Create branch
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Branch'
400:
description: Failed to create branch
content: {}
/projects/{id}/repository/branches/{branch}/unprotect:
put:
tags:
- branches
description: Unprotect a single branch
operationId: putApiV4ProjectsIdRepositoryBranchesBranchUnprotect
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: path
description: The name of the branch
required: true
schema:
type: string
responses:
200:
description: Unprotect a single branch
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Branch'
404:
description: 404 Project Not Found
content: {}
/projects/{id}/repository/branches/{branch}/protect:
put:
tags:
- branches
description: Protect a single branch
operationId: putApiV4ProjectsIdRepositoryBranchesBranchProtect
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: branch
in: path
description: The name of the branch
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
developers_can_push:
type: boolean
description: Flag if developers can push to that branch
developers_can_merge:
type: boolean
description: Flag if developers can merge to that branch
responses:
200:
description: Protect a single branch
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Branch'
404:
description: 404 Branch Not Found
content: {}
/projects/{id}/badges/{badge_id}:
get:
tags:
- badges
summary: Gets a badge of a project.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4ProjectsIdBadgesBadgeId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: badge_id
in: path
description: The badge ID
required: true
schema:
type: integer
format: int32
responses:
200:
description: Gets a badge of a project.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
put:
tags:
- badges
summary: Updates a badge of a project.
description: This feature was introduced in GitLab 10.6.
operationId: putApiV4ProjectsIdBadgesBadgeId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: badge_id
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
link_url:
type: string
description: URL of the badge link
image_url:
type: string
description: URL of the badge image
name:
type: string
description: Name for the badge
responses:
200:
description: Updates a badge of a project.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
delete:
tags:
- badges
summary: Removes a badge from the project.
description: This feature was introduced in GitLab 10.6.
operationId: deleteApiV4ProjectsIdBadgesBadgeId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: badge_id
in: path
description: The badge ID
required: true
schema:
type: integer
format: int32
responses:
204:
description: Removes a badge from the project.
content: {}
/projects/{id}/badges:
get:
tags:
- badges
summary: Gets a list of project badges viewable by the authenticated user.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4ProjectsIdBadges
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
- name: name
in: query
description: Name for the badge
schema:
type: string
responses:
200:
description: Gets a list of project badges viewable by the authenticated
user.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Badge'
post:
tags:
- badges
summary: Adds a badge to a project.
description: This feature was introduced in GitLab 10.6.
operationId: postApiV4ProjectsIdBadges
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
requestBody:
content:
application/json:
schema:
required:
- image_url
- link_url
properties:
link_url:
type: string
description: URL of the badge link
image_url:
type: string
description: URL of the badge image
name:
type: string
description: Name for the badge
required: true
responses:
201:
description: Adds a badge to a project.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Badge'
/projects/{id}/badges/render:
get:
tags:
- badges
summary: Preview a badge from a project.
description: This feature was introduced in GitLab 10.6.
operationId: getApiV4ProjectsIdBadgesRender
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: link_url
in: query
description: URL of the badge link
required: true
schema:
type: string
- name: image_url
in: query
description: URL of the badge image
required: true
schema:
type: string
responses:
200:
description: Preview a badge from a project.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BasicBadgeDetails'
/projects/{id}/access_requests/{user_id}:
delete:
tags:
- access_requests
summary: Denies an access request for the given user.
description: This feature was introduced in GitLab 8.11.
operationId: deleteApiV4ProjectsIdAccessRequestsUserId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: user_id
in: path
description: The user ID of the access requester
required: true
schema:
type: integer
format: int32
responses:
204:
description: Denies an access request for the given user.
content: {}
/projects/{id}/access_requests/{user_id}/approve:
put:
tags:
- access_requests
summary: Approves an access request for the given user.
description: This feature was introduced in GitLab 8.11.
operationId: putApiV4ProjectsIdAccessRequestsUserIdApprove
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: user_id
in: path
description: The user ID of the access requester
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
access_level:
type: integer
description: 'A valid access level (defaults: `30`, the Developer
role)'
format: int32
default: 30
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
successfull_response:
example:
id: 1
username: raymond_smith
name: Raymond Smith
state: active
created_at: 2012-10-22T14:13:35Z
access_level: 20
/projects/{id}/access_requests:
get:
tags:
- access_requests
summary: Gets a list of access requests for a project.
description: This feature was introduced in GitLab 8.11.
operationId: getApiV4ProjectsIdAccessRequests
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
responses:
200:
description: Gets a list of access requests for a project.
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
post:
tags:
- access_requests
summary: Requests access for the authenticated user to a project.
description: This feature was introduced in GitLab 8.11.
operationId: postApiV4ProjectsIdAccessRequests
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_AccessRequester'
successfull_response:
example:
id: 1
username: raymond_smith
name: Raymond Smith
state: active
created_at: 2012-10-22T14:13:35Z
access_level: 20
/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}:
put:
tags:
- alert_management
description: Update a metric image for an alert
operationId: putApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: alert_iid
in: path
description: The IID of the Alert
required: true
schema:
type: integer
format: int32
- name: metric_image_id
in: path
description: The ID of metric image
required: true
schema:
type: integer
format: int32
requestBody:
content:
multipart/form-data:
schema:
properties:
url:
type: string
description: The url to view more metric info
url_text:
type: string
description: A description of the image or URL
responses:
200:
description: Update a metric image for an alert
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_MetricImage'
403:
description: Forbidden
content: {}
422:
description: Unprocessable entity
content: {}
delete:
tags:
- alert_management
description: Remove a metric image for an alert
operationId: deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: alert_iid
in: path
description: The IID of the Alert
required: true
schema:
type: integer
format: int32
- name: metric_image_id
in: path
description: The ID of metric image
required: true
schema:
type: integer
format: int32
responses:
204:
description: Remove a metric image for an alert
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_MetricImage'
403:
description: Forbidden
content: {}
422:
description: Unprocessable entity
content: {}
/projects/{id}/alert_management_alerts/{alert_iid}/metric_images:
get:
tags:
- alert_management
description: Metric Images for alert
operationId: getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: alert_iid
in: path
description: The IID of the Alert
required: true
schema:
type: integer
format: int32
responses:
200:
description: Metric Images for alert
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_MetricImage'
404:
description: Not found
content: {}
post:
tags:
- alert_management
description: Upload a metric image for an alert
operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: alert_iid
in: path
description: The IID of the Alert
required: true
schema:
type: integer
format: int32
requestBody:
content:
multipart/form-data:
schema:
required:
- file
properties:
file:
type: string
description: The image file to be uploaded
format: binary
url:
type: string
description: The url to view more metric info
url_text:
type: string
description: A description of the image or URL
required: true
responses:
200:
description: Upload a metric image for an alert
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_MetricImage'
403:
description: Forbidden
content: {}
/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/authorize:
post:
tags:
- alert_management
description: Workhorse authorize metric image file upload
operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: alert_iid
in: path
description: The IID of the Alert
required: true
schema:
type: integer
format: int32
responses:
200:
description: Workhorse authorize metric image file upload
content: {}
403:
description: Forbidden
content: {}
/admin/batched_background_migrations/{id}:
get:
tags:
- batched_background_migrations
description: Retrieve a batched background migration
operationId: getApiV4AdminBatchedBackgroundMigrationsId
parameters:
- name: database
in: query
description: The name of the database
schema:
type: string
default: main
enum:
- main
- ci
- embedding
- main_clusterwide
- geo
- name: id
in: path
description: The batched background migration id
required: true
schema:
type: integer
format: int32
responses:
200:
description: Retrieve a batched background migration
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BatchedBackgroundMigration'
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
404:
description: 404 Not found
content: {}
/admin/batched_background_migrations:
get:
tags:
- batched_background_migrations
description: Get the list of batched background migrations
operationId: getApiV4AdminBatchedBackgroundMigrations
parameters:
- name: database
in: query
description: The name of the database, the default `main`
schema:
type: string
default: main
enum:
- main
- ci
- embedding
- main_clusterwide
- geo
responses:
200:
description: Get the list of batched background migrations
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_BatchedBackgroundMigration'
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
/admin/batched_background_migrations/{id}/resume:
put:
tags:
- batched_background_migrations
description: Resume a batched background migration
operationId: putApiV4AdminBatchedBackgroundMigrationsIdResume
parameters:
- name: id
in: path
description: The batched background migration id
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
database:
type: string
description: The name of the database
default: main
enum:
- main
- ci
- embedding
- main_clusterwide
- geo
responses:
200:
description: Resume a batched background migration
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BatchedBackgroundMigration'
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
404:
description: 404 Not found
content: {}
422:
description: You can resume only `paused` batched background migrations.
content: {}
/admin/batched_background_migrations/{id}/pause:
put:
tags:
- batched_background_migrations
description: Pause a batched background migration
operationId: putApiV4AdminBatchedBackgroundMigrationsIdPause
parameters:
- name: id
in: path
description: The batched background migration id
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
database:
type: string
description: The name of the database
default: main
enum:
- main
- ci
- embedding
- main_clusterwide
- geo
responses:
200:
description: Pause a batched background migration
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BatchedBackgroundMigration'
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
404:
description: 404 Not found
content: {}
422:
description: You can pause only `active` batched background migrations.
content: {}
/admin/ci/variables/{key}:
get:
tags:
- ci_variables
description: Get the details of a specific instance-level variable
operationId: getApiV4AdminCiVariablesKey
parameters:
- name: key
in: path
description: The key of a variable
required: true
schema:
type: string
responses:
200:
description: Get the details of a specific instance-level variable
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Ci_Variable'
404:
description: Instance Variable Not Found
content: {}
put:
tags:
- ci_variables
description: Update an instance-level variable
operationId: putApiV4AdminCiVariablesKey
parameters:
- name: key
in: path
description: The key of a variable
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
value:
type: string
description: The value of a variable
protected:
type: boolean
description: Whether the variable is protected
masked:
type: boolean
description: Whether the variable is masked
raw:
type: boolean
description: Whether the variable will be expanded
variable_type:
type: string
description: 'The type of a variable. Available types are: env_var
(default) and file'
enum:
- env_var
- file
responses:
200:
description: Update an instance-level variable
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Ci_Variable'
404:
description: Instance Variable Not Found
content: {}
delete:
tags:
- ci_variables
description: Delete an existing instance-level variable
operationId: deleteApiV4AdminCiVariablesKey
parameters:
- name: key
in: path
description: The key of a variable
required: true
schema:
type: string
responses:
204:
description: Delete an existing instance-level variable
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Ci_Variable'
404:
description: Instance Variable Not Found
content: {}
/admin/ci/variables:
get:
tags:
- ci_variables
description: List all instance-level variables
operationId: getApiV4AdminCiVariables
parameters:
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
responses:
200:
description: List all instance-level variables
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Ci_Variable'
post:
tags:
- ci_variables
description: Create a new instance-level variable
operationId: postApiV4AdminCiVariables
requestBody:
content:
application/json:
schema:
required:
- key
- value
properties:
key:
type: string
description: The key of the variable. Max 255 characters
value:
type: string
description: The value of a variable
protected:
type: boolean
description: Whether the variable is protected
masked:
type: boolean
description: Whether the variable is masked
raw:
type: boolean
description: Whether the variable will be expanded
variable_type:
type: string
description: 'The type of a variable. Available types are: env_var
(default) and file'
enum:
- env_var
- file
required: true
responses:
201:
description: Create a new instance-level variable
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Ci_Variable'
400:
description: 400 Bad Request
content: {}
/admin/databases/{database_name}/dictionary/tables/{table_name}:
get:
tags:
- admin
description: Retrieve dictionary details
operationId: getApiV4AdminDatabasesDatabaseNameDictionaryTablesTableName
parameters:
- name: database_name
in: path
description: The database name
required: true
schema:
type: string
enum:
- main
- ci
- name: table_name
in: path
description: The table name
required: true
schema:
type: string
responses:
200:
description: Retrieve dictionary details
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Dictionary_Table'
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
404:
description: 404 Not found
content: {}
/admin/clusters/{cluster_id}:
get:
tags:
- clusters
summary: Get a single instance cluster
description: This feature was introduced in GitLab 13.2. Returns a single instance
cluster.
operationId: getApiV4AdminClustersClusterId
parameters:
- name: cluster_id
in: path
description: The cluster ID
required: true
schema:
type: integer
format: int32
responses:
200:
description: Get a single instance cluster
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Cluster'
403:
description: Forbidden
content: {}
404:
description: Not found
content: {}
put:
tags:
- clusters
summary: Edit instance cluster
description: This feature was introduced in GitLab 13.2. Updates an existing
instance cluster.
operationId: putApiV4AdminClustersClusterId
parameters:
- name: cluster_id
in: path
description: The cluster ID
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
description: Cluster name
enabled:
type: boolean
description: Enable or disable Gitlab's connection to your Kubernetes
cluster
environment_scope:
type: string
description: The associated environment to the cluster
namespace_per_environment:
type: boolean
description: Deploy each environment to a separate Kubernetes namespace
default: true
domain:
type: string
description: Cluster base domain
management_project_id:
type: integer
description: The ID of the management project
format: int32
managed:
type: boolean
description: Determines if GitLab will manage namespaces and service
accounts for this cluster
platform_kubernetes_attributes[api_url]:
type: string
description: URL to access the Kubernetes API
platform_kubernetes_attributes[token]:
type: string
description: Token to authenticate against Kubernetes
platform_kubernetes_attributes[ca_cert]:
type: string
description: TLS certificate (needed if API is using a self-signed
TLS certificate)
platform_kubernetes_attributes[namespace]:
type: string
description: Unique namespace related to Project
responses:
200:
description: Edit instance cluster
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Cluster'
400:
description: Validation error
content: {}
403:
description: Forbidden
content: {}
404:
description: Not found
content: {}
delete:
tags:
- clusters
summary: Delete instance cluster
description: This feature was introduced in GitLab 13.2. Deletes an existing
instance cluster. Does not remove existing resources within the connected
Kubernetes cluster.
operationId: deleteApiV4AdminClustersClusterId
parameters:
- name: cluster_id
in: path
description: The cluster ID
required: true
schema:
type: integer
format: int32
responses:
204:
description: Delete instance cluster
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Cluster'
403:
description: Forbidden
content: {}
404:
description: Not found
content: {}
/admin/clusters/add:
post:
tags:
- clusters
summary: Add existing instance cluster
description: This feature was introduced in GitLab 13.2. Adds an existing Kubernetes
instance cluster.
operationId: postApiV4AdminClustersAdd
requestBody:
content:
application/json:
schema:
required:
- name
- platform_kubernetes_attributes[api_url]
- platform_kubernetes_attributes[token]
properties:
name:
type: string
description: Cluster name
enabled:
type: boolean
description: Determines if cluster is active or not, defaults to
true
default: true
environment_scope:
type: string
description: The associated environment to the cluster
default: '*'
namespace_per_environment:
type: boolean
description: Deploy each environment to a separate Kubernetes namespace
default: true
domain:
type: string
description: Cluster base domain
management_project_id:
type: integer
description: The ID of the management project
format: int32
managed:
type: boolean
description: Determines if GitLab will manage namespaces and service
accounts for this cluster, defaults to true
default: true
platform_kubernetes_attributes[api_url]:
type: string
description: URL to access the Kubernetes API
platform_kubernetes_attributes[token]:
type: string
description: Token to authenticate against Kubernetes
platform_kubernetes_attributes[ca_cert]:
type: string
description: TLS certificate (needed if API is using a self-signed
TLS certificate)
platform_kubernetes_attributes[namespace]:
type: string
description: Unique namespace related to Project
platform_kubernetes_attributes[authorization_type]:
type: string
description: Cluster authorization type, defaults to RBAC
default: rbac
enum:
- unknown_authorization
- rbac
- abac
required: true
responses:
201:
description: Add existing instance cluster
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Cluster'
400:
description: Validation error
content: {}
403:
description: Forbidden
content: {}
404:
description: Not found
content: {}
/admin/clusters:
get:
tags:
- clusters
summary: List instance clusters
description: This feature was introduced in GitLab 13.2. Returns a list of instance
clusters.
operationId: getApiV4AdminClusters
responses:
200:
description: List instance clusters
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Cluster'
403:
description: Forbidden
content: {}
/admin/migrations/{timestamp}/mark:
post:
tags:
- migrations
description: Mark the migration as successfully executed
operationId: postApiV4AdminMigrationsTimestampMark
parameters:
- name: timestamp
in: path
description: The migration version timestamp
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
database:
type: string
description: The name of the database
default: main
enum:
- main
- ci
- embedding
- main_clusterwide
- geo
responses:
201:
description: 201 Created
content: {}
401:
description: 401 Unauthorized
content: {}
403:
description: 403 Forbidden
content: {}
404:
description: 404 Not found
content: {}
422:
description: You can mark only pending migrations
content: {}
/applications/{id}:
delete:
tags:
- applications
summary: Delete an application
description: Delete a specific application
operationId: deleteApiV4ApplicationsId
parameters:
- name: id
in: path
description: The ID of the application (not the application_id)
required: true
schema:
type: integer
format: int32
responses:
204:
description: Delete an application
content: {}
/applications:
get:
tags:
- applications
summary: Get applications
description: List all registered applications
operationId: getApiV4Applications
responses:
200:
description: Get applications
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Application'
post:
tags:
- applications
summary: Create a new application
description: This feature was introduced in GitLab 10.5
operationId: postApiV4Applications
requestBody:
content:
application/json:
schema:
required:
- name
- redirect_uri
- scopes
properties:
name:
type: string
description: Name of the application.
redirect_uri:
type: string
description: Redirect URI of the application.
scopes:
type: string
description: |-
Scopes of the application. You can specify multiple scopes by separating\
each scope using a space
confidential:
type: boolean
description: |-
The application is used where the client secret can be kept confidential. Native mobile apps \
and Single Page Apps are considered non-confidential. Defaults to true if not supplied
default: true
required: true
responses:
200:
description: Create a new application
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_ApplicationWithSecret'
/avatar:
get:
tags:
- avatar
description: Return avatar url for a user
operationId: getApiV4Avatar
parameters:
- name: email
in: query
description: Public email address of the user
required: true
schema:
type: string
- name: size
in: query
description: Single pixel dimension for Gravatar images
schema:
type: integer
format: int32
responses:
200:
description: Return avatar url for a user
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Avatar'
/broadcast_messages/{id}:
get:
tags:
- broadcast_messages
summary: Get a specific broadcast message
description: This feature was introduced in GitLab 8.12.
operationId: getApiV4BroadcastMessagesId
parameters:
- name: id
in: path
description: Broadcast message ID
required: true
schema:
type: integer
format: int32
responses:
200:
description: Get a specific broadcast message
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BroadcastMessage'
put:
tags:
- broadcast_messages
summary: Update a broadcast message
description: This feature was introduced in GitLab 8.12.
operationId: putApiV4BroadcastMessagesId
parameters:
- name: id
in: path
description: Broadcast message ID
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
properties:
message:
type: string
description: Message to display
starts_at:
type: string
description: Starting time
format: date-time
ends_at:
type: string
description: Ending time
format: date-time
color:
type: string
description: Background color
font:
type: string
description: Foreground color
target_access_levels:
type: array
description: Target user roles
items:
type: integer
format: int32
enum:
- 10
- 20
- 30
- 40
- 50
target_path:
type: string
description: Target path
broadcast_type:
type: string
description: Broadcast Type
enum:
- banner
- notification
dismissable:
type: boolean
description: Is dismissable
responses:
200:
description: Update a broadcast message
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BroadcastMessage'
delete:
tags:
- broadcast_messages
summary: Delete a broadcast message
description: This feature was introduced in GitLab 8.12.
operationId: deleteApiV4BroadcastMessagesId
parameters:
- name: id
in: path
description: Broadcast message ID
required: true
schema:
type: integer
format: int32
responses:
200:
description: Delete a broadcast message
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BroadcastMessage'
/broadcast_messages:
get:
tags:
- broadcast_messages
summary: Get all broadcast messages
description: This feature was introduced in GitLab 8.12.
operationId: getApiV4BroadcastMessages
parameters:
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
responses:
200:
description: Get all broadcast messages
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BroadcastMessage'
post:
tags:
- broadcast_messages
summary: Create a broadcast message
description: This feature was introduced in GitLab 8.12.
operationId: postApiV4BroadcastMessages
requestBody:
content:
application/json:
schema:
required:
- message
properties:
message:
type: string
description: Message to display
starts_at:
type: string
description: Starting time
format: date-time
ends_at:
type: string
description: Ending time
format: date-time
color:
type: string
description: Background color
font:
type: string
description: Foreground color
target_access_levels:
type: array
description: Target user roles
items:
type: integer
format: int32
enum:
- 10
- 20
- 30
- 40
- 50
target_path:
type: string
description: Target path
broadcast_type:
type: string
description: Broadcast type. Defaults to banner
enum:
- banner
- notification
dismissable:
type: boolean
description: Is dismissable
required: true
responses:
201:
description: Create a broadcast message
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BroadcastMessage'
/bulk_imports/{import_id}/entities/{entity_id}:
get:
tags:
- bulk_imports
summary: Get GitLab Migration entity details
description: This feature was introduced in GitLab 14.1.
operationId: getApiV4BulkImportsImportIdEntitiesEntityId
parameters:
- name: import_id
in: path
description: The ID of user's GitLab Migration
required: true
schema:
type: integer
format: int32
- name: entity_id
in: path
description: The ID of GitLab Migration entity
required: true
schema:
type: integer
format: int32
responses:
200:
description: Get GitLab Migration entity details
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BulkImports'
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
503:
description: Service unavailable
content: {}
/bulk_imports/{import_id}/entities:
get:
tags:
- bulk_imports
summary: List GitLab Migration entities
description: This feature was introduced in GitLab 14.1.
operationId: getApiV4BulkImportsImportIdEntities
parameters:
- name: import_id
in: path
description: The ID of user's GitLab Migration
required: true
schema:
type: integer
format: int32
- name: status
in: query
description: Return import entities with specified status
schema:
type: string
enum:
- created
- started
- finished
- timeout
- failed
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
responses:
200:
description: List GitLab Migration entities
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_BulkImports'
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
503:
description: Service unavailable
content: {}
/bulk_imports/{import_id}:
get:
tags:
- bulk_imports
summary: Get GitLab Migration details
description: This feature was introduced in GitLab 14.1.
operationId: getApiV4BulkImportsImportId
parameters:
- name: import_id
in: path
description: The ID of user's GitLab Migration
required: true
schema:
type: integer
format: int32
responses:
200:
description: Get GitLab Migration details
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BulkImport'
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
503:
description: Service unavailable
content: {}
/bulk_imports/entities:
get:
tags:
- bulk_imports
summary: List all GitLab Migrations' entities
description: This feature was introduced in GitLab 14.1.
operationId: getApiV4BulkImportsEntities
parameters:
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
- name: sort
in: query
description: Return GitLab Migrations sorted in created by `asc` or `desc`
order.
schema:
type: string
default: desc
enum:
- asc
- desc
- name: status
in: query
description: Return all GitLab Migrations' entities with specified status
schema:
type: string
enum:
- created
- started
- finished
- timeout
- failed
responses:
200:
description: List all GitLab Migrations' entities
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_BulkImports'
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
503:
description: Service unavailable
content: {}
/bulk_imports:
get:
tags:
- bulk_imports
summary: List all GitLab Migrations
description: This feature was introduced in GitLab 14.1.
operationId: getApiV4BulkImports
parameters:
- name: page
in: query
description: Current page number
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 20
- name: sort
in: query
description: Return GitLab Migrations sorted in created by `asc` or `desc`
order.
schema:
type: string
default: desc
enum:
- asc
- desc
- name: status
in: query
description: Return GitLab Migrations with specified status
schema:
type: string
enum:
- created
- started
- finished
- timeout
- failed
responses:
200:
description: List all GitLab Migrations
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_BulkImport'
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
503:
description: Service unavailable
content: {}
post:
tags:
- bulk_imports
summary: Start a new GitLab Migration
description: This feature was introduced in GitLab 14.2.
operationId: postApiV4BulkImports
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- configuration[access_token]
- configuration[url]
- entities[destination_namespace]
- entities[source_full_path]
- entities[source_type]
properties:
configuration[url]:
type: string
description: Source GitLab instance URL
configuration[access_token]:
type: string
description: Access token to the source GitLab instance
entities[source_type]:
type: array
description: Source entity type
items:
type: string
enum:
- group_entity
- project_entity
entities[source_full_path]:
type: array
description: Relative path of the source entity to import
items:
type: string
entities[destination_namespace]:
type: array
description: Destination namespace for the entity
items:
type: string
entities[destination_slug]:
type: array
description: Destination slug for the entity
items:
type: string
entities[destination_name]:
type: array
description: 'Deprecated: Use :destination_slug instead. Destination
slug for the entity'
items:
type: string
entities[migrate_projects]:
type: array
description: Indicates group migration should include nested projects
items:
type: boolean
required: true
responses:
200:
description: Start a new GitLab Migration
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_BulkImport'
400:
description: Bad request
content: {}
401:
description: Unauthorized
content: {}
404:
description: Not found
content: {}
422:
description: Unprocessable entity
content: {}
503:
description: Service unavailable
content: {}
/application/appearance:
get:
tags:
- application
description: Get the current appearance
operationId: getApiV4ApplicationAppearance
responses:
200:
description: Get the current appearance
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Appearance'
put:
tags:
- application
description: Modify appearance
operationId: putApiV4ApplicationAppearance
requestBody:
content:
multipart/form-data:
schema:
properties:
title:
type: string
description: Instance title on the sign in / sign up page
description:
type: string
description: Markdown text shown on the sign in / sign up page
pwa_name:
type: string
description: Name of the Progressive Web App
pwa_short_name:
type: string
description: Optional, short name for Progressive Web App
pwa_description:
type: string
description: An explanation of what the Progressive Web App does
logo:
type: string
description: Instance image used on the sign in / sign up page
format: binary
pwa_icon:
type: string
description: Icon used for Progressive Web App
format: binary
header_logo:
type: string
description: Instance image used for the main navigation bar
format: binary
favicon:
type: string
description: Instance favicon in .ico/.png format
format: binary
new_project_guidelines:
type: string
description: Markdown text shown on the new project page
profile_image_guidelines:
type: string
description: Markdown text shown on the profile page below Public
Avatar
header_message:
type: string
description: Message within the system header bar
footer_message:
type: string
description: Message within the system footer bar
message_background_color:
type: string
description: Background color for the system header / footer bar
message_font_color:
type: string
description: Font color for the system header / footer bar
email_header_and_footer_enabled:
type: boolean
description: Add header and footer to all outgoing emails if enabled
responses:
200:
description: Modify appearance
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Appearance'
/application/plan_limits:
get:
tags:
- plan_limits
summary: Get current plan limits
description: List the current limits of a plan on the GitLab instance.
operationId: getApiV4ApplicationPlanLimits
parameters:
- name: plan_name
in: query
description: 'Name of the plan to get the limits from. Default: default.'
schema:
type: string
default: default
enum:
- default
- free
- bronze
- silver
- premium
- gold
- ultimate
- ultimate_trial
- premium_trial
- opensource
responses:
200:
description: Get current plan limits
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_PlanLimit'
401:
description: Unauthorized
content: {}
403:
description: Forbidden
content: {}
put:
tags:
- plan_limits
summary: Change plan limits
description: Modify the limits of a plan on the GitLab instance.
operationId: putApiV4ApplicationPlanLimits
requestBody:
content:
application/json:
schema:
required:
- plan_name
properties:
plan_name:
type: string
description: Name of the plan to update
enum:
- default
- free
- bronze
- silver
- premium
- gold
- ultimate
- ultimate_trial
- premium_trial
- opensource
ci_pipeline_size:
type: integer
description: Maximum number of jobs in a single pipeline
format: int32
ci_active_jobs:
type: integer
description: Total number of jobs in currently active pipelines
format: int32
ci_project_subscriptions:
type: integer
description: Maximum number of pipeline subscriptions to and from
a project
format: int32
ci_pipeline_schedules:
type: integer
description: Maximum number of pipeline schedules
format: int32
ci_needs_size_limit:
type: integer
description: Maximum number of needs dependencies that a job can have
format: int32
ci_registered_group_runners:
type: integer
description: Maximum number of runners registered per group
format: int32
ci_registered_project_runners:
type: integer
description: Maximum number of runners registered per project
format: int32
conan_max_file_size:
type: integer
description: Maximum Conan package file size in bytes
format: int32
enforcement_limit:
type: integer
description: Maximum storage size for the root namespace enforcement
in MiB
format: int32
generic_packages_max_file_size:
type: integer
description: Maximum generic package file size in bytes
format: int32
helm_max_file_size:
type: integer
description: Maximum Helm chart file size in bytes
format: int32
maven_max_file_size:
type: integer
description: Maximum Maven package file size in bytes
format: int32
notification_limit:
type: integer
description: Maximum storage size for the root namespace notifications
in MiB
format: int32
npm_max_file_size:
type: integer
description: Maximum NPM package file size in bytes
format: int32
nuget_max_file_size:
type: integer
description: Maximum NuGet package file size in bytes
format: int32
pypi_max_file_size:
type: integer
description: Maximum PyPI package file size in bytes
format: int32
terraform_module_max_file_size:
type: integer
description: Maximum Terraform Module package file size in bytes
format: int32
storage_size_limit:
type: integer
description: Maximum storage size for the root namespace in MiB
format: int32
pipeline_hierarchy_size:
type: integer
description: Maximum number of downstream pipelines in a pipeline's
hierarchy tree
format: int32
required: true
responses:
200:
description: Change plan limits
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_PlanLimit'
400:
description: Bad request
content: {}
401:
description: Unauthorized
content: {}
403:
description: Forbidden
content: {}
/metadata:
get:
tags:
- metadata
summary: Retrieve metadata information for this GitLab instance
description: This feature was introduced in GitLab 15.2.
operationId: getApiV4Metadata
responses:
200:
description: Retrieve metadata information for this GitLab instance
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Metadata'
401:
description: Unauthorized
content: {}
/version:
get:
tags:
- metadata
summary: Retrieves version information for the GitLab instance
description: This feature was introduced in GitLab 8.13 and deprecated in 15.5.
We recommend you instead use the Metadata API.
operationId: getApiV4Version
responses:
200:
description: Retrieves version information for the GitLab instance
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Metadata'
401:
description: Unauthorized
content: {}
/projects/{id}/jobs:
get:
tags:
- jobs
summary: List jobs for a project
operationId: listProjectJobs
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: scope
in: query
required: false
description: Return all jobs with the specified statuses
schema:
type: array
items:
type: string
responses:
'200':
description: An array of jobs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/API_Entities_Job'
/projects/{id}/jobs/{job_id}:
get:
tags:
- jobs
summary: Get a single job by ID
operationId: getSingleJob
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: job_id
in: path
required: true
description: The ID of the job
schema:
type: integer
responses:
'200':
description: A single job object
content:
application/json:
schema:
$ref: '#/components/schemas/API_Entities_Job'
/projects/{id}/jobs/{job_id}/play:
post:
tags:
- jobs
summary: Run a manual job
operationId: triggerManualJob
parameters:
- $ref: '#/components/parameters/ProjectIdOrPath'
- name: job_id
in: path
required: true
description: The ID of the manual job to run
schema:
type: integer
- name: job_variables_attributes
in: query
required: false
description: An array containing the custom variables available to the job
schema:
type: array
items:
type: string
responses:
'200':
description: Job started successfully
components:
parameters:
ProjectIdOrPath:
name: id
in: path
description: The ID or [URL-encoded path of the project](https://docs.gitlab.com/api/rest/#namespaced-paths).
required: true
schema:
anyOf:
- type: string
example: gitlab-org/gitlab
- type: integer
example: 278964
schemas:
API_Entities_Badge:
type: object
properties:
name:
type: string
link_url:
type: string
image_url:
type: string
rendered_link_url:
type: string
rendered_image_url:
type: string
id:
type: string
kind:
type: string
description: API_Entities_Badge model
API_Entities_BasicBadgeDetails:
type: object
properties:
name:
type: string
link_url:
type: string
image_url:
type: string
rendered_link_url:
type: string
rendered_image_url:
type: string
description: API_Entities_BasicBadgeDetails model
API_Entities_AccessRequester:
type: object
properties:
id:
type: integer
format: int32
example: 1
username:
type: string
example: admin
name:
type: string
example: Administrator
state:
type: string
example: active
avatar_url:
type: string
example: https://gravatar.com/avatar/1
avatar_path:
type: string
example: /user/avatar/28/The-Big-Lebowski-400-400.png
custom_attributes:
type: array
items:
$ref: '#/components/schemas/API_Entities_CustomAttribute'
web_url:
type: string
example: https://gitlab.example.com/root
email:
type: string
requested_at:
type: string
description: API_Entities_AccessRequester model
API_Entities_CustomAttribute:
type: object
properties:
key:
type: string
example: foo
value:
type: string
example: bar
API_Entities_Branch:
type: object
properties:
name:
type: string
example: master
commit:
$ref: '#/components/schemas/API_Entities_Commit'
merged:
type: boolean
example: true
protected:
type: boolean
example: true
developers_can_push:
type: boolean
example: true
developers_can_merge:
type: boolean
example: true
can_push:
type: boolean
example: true
default:
type: boolean
example: true
web_url:
type: string
example: https://gitlab.example.com/Commit921/the-dude/-/tree/master
description: API_Entities_Branch model
API_Entities_Commit:
type: object
properties:
id:
type: string
example: 2695effb5807a22ff3d138d593fd856244e155e7
short_id:
type: string
example: 2695effb
created_at:
type: string
format: date-time
example: 2017-07-26T11:08:53+02:00
parent_ids:
type: array
items:
type: string
example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe
title:
type: string
example: Initial commit
message:
type: string
example: Initial commit
author_name:
type: string
example: John Smith
author_email:
type: string
example: john@example.com
authored_date:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
committer_name:
type: string
example: Jack Smith
committer_email:
type: string
example: jack@example.com
committed_date:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
trailers:
type: object
properties: {}
example: '{ "Merged-By": "Jane Doe janedoe@gitlab.com" }'
web_url:
type: string
example: https://gitlab.example.com/janedoe/gitlab-foss/-/commit/ed899a2f4b50b4370feeea94676502b42383c746
API_Entities_MetricImage:
type: object
properties:
id:
type: integer
format: int32
example: 23
created_at:
type: string
format: date-time
example: 2020-11-13T00:06:18.084Z
filename:
type: string
example: file.png
file_path:
type: string
example: /uploads/-/system/alert_metric_image/file/23/file.png
url:
type: string
example: https://example.com/metric
url_text:
type: string
example: An example metric
description: API_Entities_MetricImage model
API_Entities_BatchedBackgroundMigration:
type: object
properties:
id:
type: string
example: "1234"
job_class_name:
type: string
example: CopyColumnUsingBackgroundMigrationJob
table_name:
type: string
example: events
status:
type: string
example: active
progress:
type: number
format: float
example: 50.0
created_at:
type: string
format: date-time
example: 2022-11-28T16:26:39+02:00
description: API_Entities_BatchedBackgroundMigration model
API_Entities_Ci_Variable:
type: object
properties:
variable_type:
type: string
example: env_var
key:
type: string
example: TEST_VARIABLE_1
value:
type: string
example: TEST_1
protected:
type: boolean
masked:
type: boolean
raw:
type: boolean
environment_scope:
type: string
example: '*'
description: API_Entities_Ci_Variable model
API_Entities_Dictionary_Table:
type: object
properties:
table_name:
type: string
example: users
feature_categories:
type: array
items:
type: string
example: database
description: API_Entities_Dictionary_Table model
API_Entities_Cluster:
type: object
properties:
id:
type: string
name:
type: string
created_at:
type: string
domain:
type: string
enabled:
type: string
managed:
type: string
provider_type:
type: string
platform_type:
type: string
environment_scope:
type: string
cluster_type:
type: string
namespace_per_environment:
type: string
user:
$ref: '#/components/schemas/API_Entities_UserBasic'
platform_kubernetes:
$ref: '#/components/schemas/API_Entities_Platform_Kubernetes'
provider_gcp:
$ref: '#/components/schemas/API_Entities_Provider_Gcp'
management_project:
$ref: '#/components/schemas/API_Entities_ProjectIdentity'
description: API_Entities_Cluster model
API_Entities_UserBasic:
type: object
properties:
id:
type: integer
format: int32
example: 1
username:
type: string
example: admin
name:
type: string
example: Administrator
state:
type: string
example: active
avatar_url:
type: string
example: https://gravatar.com/avatar/1
avatar_path:
type: string
example: /user/avatar/28/The-Big-Lebowski-400-400.png
custom_attributes:
type: array
items:
$ref: '#/components/schemas/API_Entities_CustomAttribute'
web_url:
type: string
example: https://gitlab.example.com/root
email:
type: string
API_Entities_Platform_Kubernetes:
type: object
properties:
api_url:
type: string
namespace:
type: string
authorization_type:
type: string
ca_cert:
type: string
API_Entities_Provider_Gcp:
type: object
properties:
cluster_id:
type: string
status_name:
type: string
gcp_project_id:
type: string
zone:
type: string
machine_type:
type: string
num_nodes:
type: string
endpoint:
type: string
API_Entities_ProjectIdentity:
type: object
properties:
id:
type: integer
format: int32
example: 1
description:
type: string
example: desc
name:
type: string
example: project1
name_with_namespace:
type: string
example: John Doe / project1
path:
type: string
example: project1
path_with_namespace:
type: string
example: namespace1/project1
created_at:
type: string
format: date-time
example: 2020-05-07T04:27:17.016Z
API_Entities_Application:
type: object
properties:
id:
type: string
application_id:
type: string
example: 5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737
application_name:
type: string
example: MyApplication
callback_url:
type: string
example: https://redirect.uri
confidential:
type: boolean
example: true
description: API_Entities_Application model
API_Entities_ApplicationWithSecret:
type: object
properties:
id:
type: string
application_id:
type: string
example: 5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737
application_name:
type: string
example: MyApplication
callback_url:
type: string
example: https://redirect.uri
confidential:
type: boolean
example: true
secret:
type: string
example: ee1dd64b6adc89cf7e2c23099301ccc2c61b441064e9324d963c46902a85ec34
description: API_Entities_ApplicationWithSecret model
API_Entities_Avatar:
type: object
properties:
avatar_url:
type: string
description: API_Entities_Avatar model
API_Entities_BroadcastMessage:
type: object
properties:
id:
type: string
message:
type: string
starts_at:
type: string
ends_at:
type: string
color:
type: string
font:
type: string
target_access_levels:
type: string
target_path:
type: string
broadcast_type:
type: string
dismissable:
type: string
active:
type: string
description: API_Entities_BroadcastMessage model
API_Entities_BulkImports:
type: object
properties:
id:
type: integer
format: int32
example: 1
bulk_import_id:
type: integer
format: int32
example: 1
status:
type: string
example: created
enum:
- created
- started
- finished
- timeout
- failed
entity_type:
type: string
enum:
- group
- project
source_full_path:
type: string
example: source_group
destination_full_path:
type: string
example: some_group/source_project
destination_name:
type: string
example: destination_slug
destination_slug:
type: string
example: destination_slug
destination_namespace:
type: string
example: destination_path
parent_id:
type: integer
format: int32
example: 1
namespace_id:
type: integer
format: int32
example: 1
project_id:
type: integer
format: int32
example: 1
created_at:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
updated_at:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
failures:
type: array
items:
$ref: '#/components/schemas/API_Entities_BulkImports_EntityFailure'
migrate_projects:
type: boolean
example: true
description: API_Entities_BulkImports model
API_Entities_BulkImports_EntityFailure:
type: object
properties:
relation:
type: string
example: group
step:
type: string
example: extractor
exception_message:
type: string
example: error message
exception_class:
type: string
example: Exception
correlation_id_value:
type: string
example: dfcf583058ed4508e4c7c617bd7f0edd
created_at:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
pipeline_class:
type: string
example: BulkImports::Groups::Pipelines::GroupPipeline
pipeline_step:
type: string
example: extractor
API_Entities_BulkImport:
type: object
properties:
id:
type: integer
format: int32
example: 1
status:
type: string
example: finished
enum:
- created
- started
- finished
- timeout
- failed
source_type:
type: string
example: gitlab
created_at:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
updated_at:
type: string
format: date-time
example: 2012-05-28T04:42:42-07:00
description: API_Entities_BulkImport model
API_Entities_Appearance:
type: object
properties:
title:
type: string
description:
type: string
pwa_name:
type: string
pwa_short_name:
type: string
pwa_description:
type: string
logo:
type: string
pwa_icon:
type: string
header_logo:
type: string
favicon:
type: string
new_project_guidelines:
type: string
profile_image_guidelines:
type: string
header_message:
type: string
footer_message:
type: string
message_background_color:
type: string
message_font_color:
type: string
email_header_and_footer_enabled:
type: string
description: API_Entities_Appearance model
API_Entities_PlanLimit:
type: object
properties:
ci_pipeline_size:
type: integer
format: int32
example: 0
ci_active_jobs:
type: integer
format: int32
example: 0
ci_project_subscriptions:
type: integer
format: int32
example: 2
ci_pipeline_schedules:
type: integer
format: int32
example: 10
ci_needs_size_limit:
type: integer
format: int32
example: 50
ci_registered_group_runners:
type: integer
format: int32
example: 1000
ci_registered_project_runners:
type: integer
format: int32
example: 1000
conan_max_file_size:
type: integer
format: int32
example: 3221225472
enforcement_limit:
type: integer
format: int32
example: 15000
generic_packages_max_file_size:
type: integer
format: int32
example: 5368709120
helm_max_file_size:
type: integer
format: int32
example: 5242880
limits_history:
type: object
properties: {}
example: |-
{"enforcement_limit"=>[{"timestamp"=>1686909124, "user_id"=>1, "username"=>"x", "value"=>5}],
"notification_limit"=>[{"timestamp"=>1686909124, "user_id"=>2, "username"=>"y", "value"=>7}]}
maven_max_file_size:
type: integer
format: int32
example: 3221225472
notification_limit:
type: integer
format: int32
example: 15000
npm_max_file_size:
type: integer
format: int32
example: 524288000
nuget_max_file_size:
type: integer
format: int32
example: 524288000
pipeline_hierarchy_size:
type: integer
format: int32
example: 1000
pypi_max_file_size:
type: integer
format: int32
example: 3221225472
terraform_module_max_file_size:
type: integer
format: int32
example: 1073741824
storage_size_limit:
type: integer
format: int32
example: 15000
description: API_Entities_PlanLimit model
API_Entities_Metadata:
type: object
properties:
version:
type: string
example: 15.2-pre
revision:
type: string
example: c401a659d0c
kas:
type: object
properties:
enabled:
type: boolean
externalUrl:
type: string
example: grpc://gitlab.example.com:8150
version:
type: string
example: 15.0.0
enterprise:
type: boolean
description: API_Entities_Metadata model
API_Entities_Job:
type: object
properties:
id:
type: integer
description: The ID of the job
name:
type: string
description: The name of the job
status:
type: string
description: The current status of the job
stage:
type: string
description: The stage of the job in the CI/CD pipeline
created_at:
type: string
format: date-time
example: 2016-01-11T10:13:33.506Z
description: The creation time of the job
started_at:
type: string
format: date-time
example: 2016-01-11T10:13:33.506Z
description: The start time of the job
finished_at:
type: string
format: date-time
example: 2016-01-11T10:13:33.506Z
description: The finish time of the job
commit:
$ref: '#/components/schemas/API_Entities_Commit'
archived:
type: boolean
description: Indicates if the job is archived
allow_failure:
type: boolean
description: Indicates if the job is allowed to fail
erased_at:
type: string
format: date-time
example: 2016-01-11T10:13:33.506Z
description: The time when the job was erased, if applicable
duration:
type: integer
description: The duration of the job in seconds
queued_duration:
type: number
description: The duration the job was queued before execution, in seconds
ref:
type: string
description: The reference for the job
artifacts:
type: array
description: The artifacts produced by the job
tag:
type: boolean
description: Indicates if the job is tagged
web_url:
type: string
description: The URL for accessing the job in the web interface
project:
type: object
properties:
ci_job_token_scope_enabled:
type: boolean
description: Indicates if the CI/CD job token scope setting is enabled for the project
user:
$ref: '#/components/schemas/API_Entities_UserBasic'
description: The user that started the job
description: API_Entities_Job model
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Private-Token