2021-09-30 23:02:18 +05:30
---
stage: Package
group: Package
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
2021-10-27 15:23:28 +05:30
# Debian project distributions API **(FREE SELF)**
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42670) in GitLab 13.5.
> - [Deployed behind a feature flag](../../user/feature_flags.md), disabled by default.
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
This is the reference documentation for the Debian project distributions API. This API is behind a
feature flag that is disabled by default. To use this API, you must [enable the Debian API ](#enable-the-debian-api ).
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
WARNING:
This API is under development and is not meant for production use.
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
For more information about working with Debian packages, see the
[Debian package registry documentation ](../../user/packages/debian_repository/index.md ).
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
## Enable the Debian API
2021-09-30 23:02:18 +05:30
2021-10-27 15:23:28 +05:30
The Debian API is behind a feature flag that is disabled by default.
[GitLab administrators with access to the GitLab Rails console ](../../administration/feature_flags.md )
can opt to enable it. To enable it, follow the instructions in
[Enable the Debian API ](../../user/packages/debian_repository/index.md#enable-the-debian-api ).
2021-09-30 23:02:18 +05:30
## List all Debian distributions in a project
Lists Debian distributions in the given project.
```plaintext
GET /projects/:id/debian_distributions
```
| Attribute | Type | Required | Description |
| ---------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](../index.md#namespaced-path-encoding ). |
| `codename` | string | no | Filter with a specific `codename` . |
| `suite` | string | no | Filter with a specific `suite` . |
```shell
curl --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/projects/5/debian_distributions"
```
Example response:
```json
[
{
"id": 1,
"codename": "unstable",
"suite": null,
"origin": null,
"label": null,
"version": null,
"description": null,
"valid_time_duration_seconds": null,
"components": [
"main"
],
"architectures": [
"all",
"amd64"
]
}
]
```
## Single Debian project distribution
Gets a single Debian project distribution.
```plaintext
GET /projects/:id/debian_distributions/:codename
```
| Attribute | Type | Required | Description |
| ---------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](../index.md#namespaced-path-encoding ) owned by the authenticated user. |
| `codename` | integer | yes | The `codename` of a distribution. |
```shell
curl --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable"
```
Example response:
```json
{
"id": 1,
"codename": "unstable",
"suite": null,
"origin": null,
"label": null,
"version": null,
"description": null,
"valid_time_duration_seconds": null,
"components": [
"main"
],
"architectures": [
"all",
"amd64"
]
}
```
## Create a Debian project distribution
Creates a Debian project distribution.
```plaintext
POST /projects/:id/debian_distributions
```
| Attribute | Type | Required | Description |
| ----------------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](../index.md#namespaced-path-encoding ) owned by the authenticated user. |
| `codename` | string | yes | The Debian distribution's codename. |
| `suite` | string | no | The new Debian distribution's suite. |
| `origin` | string | no | The new Debian distribution's origin. |
| `label` | string | no | The new Debian distribution's label. |
| `version` | string | no | The new Debian distribution's version. |
| `description` | string | no | The new Debian distribution's description. |
| `valid_time_duration_seconds` | integer | no | The new Debian distribution's valid time duration (in seconds). |
| `components` | architectures | no | The new Debian distribution's list of components. |
| `architectures` | architectures | no | The new Debian distribution's list of architectures. |
```shell
curl --request POST --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/projects/5/debian_distributions?codename=unstable"
```
Example response:
```json
{
"id": 1,
"codename": "unstable",
"suite": null,
"origin": null,
"label": null,
"version": null,
"description": null,
"valid_time_duration_seconds": null,
"components": [
"main"
],
"architectures": [
"all",
"amd64"
]
}
```
## Update a Debian project distribution
Updates a Debian project distribution.
```plaintext
PUT /projects/:id/debian_distributions/:codename
```
| Attribute | Type | Required | Description |
| ----------------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](../index.md#namespaced-path-encoding ) owned by the authenticated user. |
| `codename` | string | yes | The Debian distribution's codename. |
| `suite` | string | no | The Debian distribution's new suite. |
| `origin` | string | no | The Debian distribution's new origin. |
| `label` | string | no | The Debian distribution's new label. |
| `version` | string | no | The Debian distribution's new version. |
| `description` | string | no | The Debian distribution's new description. |
| `valid_time_duration_seconds` | integer | no | The Debian distribution's new valid time duration (in seconds). |
| `components` | architectures | no | The Debian distribution's new list of components. |
| `architectures` | architectures | no | The Debian distribution's new list of architectures. |
```shell
curl --request PUT --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable?suite=new-suite& valid_time_duration_seconds=604800"
```
Example response:
```json
{
"id": 1,
"codename": "unstable",
"suite": "new-suite",
"origin": null,
"label": null,
"version": null,
"description": null,
"valid_time_duration_seconds": 604800,
"components": [
"main"
],
"architectures": [
"all",
"amd64"
]
}
```
## Delete a Debian project distribution
Deletes a Debian project distribution.
```plaintext
DELETE /projects/:id/debian_distributions/:codename
```
| Attribute | Type | Required | Description |
| ---------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](../index.md#namespaced-path-encoding ) owned by the authenticated user. |
| `codename` | integer | yes | The Debian distribution's codename. |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable"
```