Container Registry API (v2.1.1)
Managing registries, repositories, and tokens
List registries
List available container registries
Authorizations:
query Parameters
| limit | integer  Default:  10 limit | 
| offset | integer  Default:  0 offset | 
| search | string search | 
| sort_field | string (SortRegistriesField)   Default:  "name"  Enum: "name" "createdAt" "size"  sort_field | 
| sort_type | string (SortType)   Default:  "asc"  Enum: "asc" "desc"  sort_type | 
Responses
Response samples
- 200
[- {- "createdAt": "2019-08-24T14:15:22Z",
- "id": "string",
- "name": "string",
- "size": 5368709120,
- "sizeLimit": 21474836480,
- "status": "CREATING",
- "used": 25
 }
]Create container registry
Create New Container registry
Authorizations:
Request Body schema: application/jsonrequired
Container Registry Params
| name required | string | 
Responses
Request samples
- Payload
{- "name": "my-registry"
}Response samples
- 201
- 400
- 403
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "id": "string",
- "name": "string",
- "size": 5368709120,
- "sizeLimit": 21474836480,
- "status": "CREATING",
- "used": 25
}Get registry information
Get registry information by ID
Authorizations:
path Parameters
| id required | string Container Registry ID | 
Responses
Response samples
- 200
- default
{- "createdAt": "2019-08-24T14:15:22Z",
- "id": "string",
- "name": "string",
- "size": 5368709120,
- "sizeLimit": 21474836480,
- "status": "CREATING",
- "used": 25
}List registries
List available container registries
Authorizations:
query Parameters
| limit | integer  Default:  10 limit | 
| offset | integer  Default:  0 offset | 
| search | string search | 
| sort_field | string (SortRegistriesField)   Default:  "name"  Enum: "name" "createdAt" "size"  sort_field | 
| sort_type | string (SortType)   Default:  "asc"  Enum: "asc" "desc"  sort_type | 
Responses
Response samples
- 200
{- "registries": [- {- "createdAt": "2019-08-24T14:15:22Z",
- "id": "string",
- "name": "string",
- "size": 5368709120,
- "status": "CREATING"
 }
 ],
- "totalCount": 0
}List integrated clusters
List clusters integrated with registry
Authorizations:
path Parameters
| id required | string Container Registry ID | 
Responses
Response samples
- 200
- default
{- "clusters": [- {- "id": "5d8504c1-bb11-43d2-88a8-bb07303422b3",
- "name": "cluster-1",
- "pool": "ru-9"
 }
 ],
- "totalCount": 1
}Initiate registry garbage collection
Initiate registry garbage collection
Authorizations:
path Parameters
| id required | string Container Registry ID | 
query Parameters
| delete-untagged | boolean Delete untagged images | 
Responses
Response samples
- 409
- default
{- "error": "garbage collection is in progress, please retry later"
}Get information about the garbage size.
Returns information about the garbage size
Authorizations:
path Parameters
| id required | string Container Registry ID | 
Responses
Response samples
- 200
- default
{- "sizeNonReferenced": 56723502,
- "sizeSummary": 87639320,
- "sizeUntagged": 30915818
}List repositories
Authorizations:
path Parameters
| id required | string Container Registry ID | 
query Parameters
| limit | integer  Default:  10 Limit of repositories in response. | 
| offset | integer  Default:  0 Number of repositories to skip. | 
| search | string Search repository by name. | 
| sort_field | string (SortReposField)   Default:  "name"  Enum: "name" "updatedAt" "size"  Sort repositories by field. | 
| sort_type | string (SortType)   Default:  "asc"  Enum: "asc" "desc"  Ascending or descending repositories sort. | 
| short | boolean Short output, return only repository names. When short output is enabled, sorting can only be done by name. | 
Responses
Response samples
- 200
- default
[- {- "name": "string",
- "size": 0,
- "type": "helm_chart",
- "updatedAt": "2019-08-24T14:15:22Z"
 }
]Delete repository
Delete repository by name
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
Responses
Response samples
- 409
- default
{- "error": "garbage collection is in progress, please retry later"
}Show repository information
Get information about repository by name
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
Responses
Response samples
- 200
- default
{- "name": "string",
- "size": 0,
- "type": "helm_chart",
- "updatedAt": "2019-08-24T14:15:22Z"
}Cleanup repository
Cleanup repository by name
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
Request Body schema: application/jsonrequired
Cleanup repository params
| digests | Array of strings List of manifests to delete. | 
| disable_gc | boolean  Default:  false Disable garbage collection after deletion of tags and manifests. | 
| tags | Array of strings List of tags to delete. | 
Responses
Request samples
- Payload
{- "digests": [- "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa"
 ],
- "disable_gc": false,
- "tags": [- "tag1",
- "tag2"
 ]
}Response samples
- 200
- 409
- default
{- "deleted": [- {- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "tags": [- "tag1",
- "tag2"
 ]
 }
 ],
- "failed": [- {- "digest": "sha256:778766204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "error": "error message",
- "tags": [- "tag1",
- "tag2"
 ]
 }
 ]
}List repository images
List repository images
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
Responses
Response samples
- 200
- default
[- {- "architecture": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "layers": [- {- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "size": 0
 }
 ],
- "mediaType": "string",
- "os": "string",
- "size": 0,
- "tags": [- "string"
 ]
 }
]Delete manifest
Delete image by manifest digest
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
| reference required | string digest. | 
Responses
Response samples
- 409
- default
{- "error": "garbage collection is in progress, please retry later"
}List of image layers
List of image layers
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string repository name. | 
| reference required | string digest or tag. | 
Responses
Response samples
- 200
- default
[- {- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "size": 0
 }
]List repositories
Authorizations:
path Parameters
| id required | string Container Registry ID | 
query Parameters
| limit | integer  Default:  10 Limit of repositories in response. | 
| offset | integer  Default:  0 Number of repositories to skip. | 
| search | string Search repository by name. | 
| sort_field | string (SortReposField)   Default:  "name"  Enum: "name" "updatedAt" "size"  Sort repositories by field. | 
| sort_type | string (SortType)   Default:  "asc"  Enum: "asc" "desc"  Ascending or descending repositories sort. | 
| short | boolean Short output, return only repository names. When short output is enabled, sorting can only be done by name. | 
Responses
Response samples
- 200
- default
{- "filteredCount": 0,
- "repositories": [- {- "name": "string",
- "size": 0,
- "type": "helm_chart",
- "updatedAt": "2019-08-24T14:15:22Z"
 }
 ],
- "totalCount": 0
}List repository images
Authorizations:
path Parameters
| id required | string Container Registry ID | 
| name required | string Repository name | 
query Parameters
| limit | integer  Default:  10 Limit of images in response. | 
| offset | integer  Default:  0 Number of images to skip. | 
| search | string Search image by tag or digest. | 
Responses
Response samples
- 200
- default
{- "filteredCount": 0,
- "images": [- {- "architecture": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "layers": [- {- "digest": "sha256:778066204fb734c2fb80cb8127cb35d67d742806a4eaf1aba0b5393c4ae6f2aa",
- "size": 0
 }
 ],
- "mediaType": "string",
- "os": "string",
- "size": 0,
- "tags": [- "string"
 ]
 }
 ],
- "totalCount": 0
}Create a new token
Create new token
Authorizations:
query Parameters
| ttl | string  Default:  "12h"  Enum: "12h" "1y"  Token TTL: 
 | 
| docker-config | boolean  Default:  false Return token as Docker config in JSON format | 
Responses
Response samples
- 201
- 400
- default
{- "expireAt": 1609459200,
- "expireIn": 43200,
- "token": "44d570a1-21a7-404f-bbda-3a99872e2776"
}List tokens
List tokens
Authorizations:
query Parameters
| limit | integer  Default:  10 limit | 
| offset | integer  Default:  0 offset | 
| sort_field | string (SortTokensField)   Default:  "createdAt"  Enum: "name" "createdAt" "lastUsedAt" "expiresAt"  sort_field | 
| sort_type | string (SortType)   Default:  "asc"  Enum: "asc" "desc"  sort_type | 
| search | string search by name or uuid | 
| scope_mode | string  Enum: "ro" "rw"  filter tokens by mode | 
Responses
Response samples
- 200
- default
{- "tokens": [- {- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2030-01-01T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "lastUsedAt": "2023-02-14T15:25:10Z",
- "name": "my-token",
- "scope": {- "allRegistries": false,
- "modeRW": false,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 },
- "status": "active"
 }
 ],
- "totalCount": 1
}Create token
Create token
Authorizations:
query Parameters
| docker-config | boolean Return token as Docker config JSON | 
Request Body schema: application/jsonrequired
Create token request
| required | object (TokenExpiration)  | 
| name | string Token name | 
| required | object (TokenScope)  | 
Responses
Request samples
- Payload
{- "expiration": {- "expiresAt": "2030-01-01T00:00:00Z",
- "isSet": true
 },
- "name": "my-token",
- "scope": {- "allRegistries": true,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 }
}Response samples
- 201
- default
{- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2030-01-01T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "name": "my-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 },
- "status": "active",
- "token": "<token>"
}Get token
Get token
Authorizations:
path Parameters
| id required | string Token identifier | 
Responses
Response samples
- 200
- default
{- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2030-01-01T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "lastUsedAt": "2023-02-14T15:25:10Z",
- "name": "my-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 },
- "status": "active"
}Update token
Update token
Authorizations:
path Parameters
| id required | string Token identifier | 
Request Body schema: application/jsonrequired
Update token request
| object (TokenExpiration)  | |
| name | string | 
| object (TokenScope)  | 
Responses
Request samples
- Payload
{- "name": "my-new-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe"
 ]
 }
}Response samples
- 200
- default
{- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2030-01-01T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "lastUsedAt": "2023-02-14T15:25:10Z",
- "name": "my-new-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe"
 ]
 },
- "status": "active"
}Refresh token
Refresh token
Authorizations:
path Parameters
| id required | string Token identifier | 
Request Body schema: application/jsonrequired
Update token expiration
| required | object (TokenExpiration)  | ||||
| 
 | |||||
Responses
Request samples
- Payload
{- "expiration": {- "expiresAt": "2029-03-20T00:00:00Z",
- "isSet": true
 }
}Response samples
- 200
- default
{- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2029-03-20T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "lastUsedAt": "2023-02-14T15:25:10Z",
- "name": "my-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 },
- "status": "active"
}Regenerate token
Revoke token and generate a new one with the same properties
Authorizations:
path Parameters
| id required | string Token identifier | 
Request Body schema: application/jsonrequired
Token regeneration request
| required | object (TokenExpiration)  | ||||
| 
 | |||||
Responses
Request samples
- Payload
{- "expiration": {- "expiresAt": "2029-03-20T00:00:00Z",
- "isSet": true
 }
}Response samples
- 201
- default
{- "createdAt": "2023-02-13T15:00:00Z",
- "expiration": {- "expiresAt": "2029-03-20T00:00:00Z",
- "isSet": true
 },
- "id": "c29e3f63-0711-4772-a415-ad79973bdaef",
- "lastUsedAt": "2023-02-14T15:25:10Z",
- "name": "my-token",
- "scope": {- "allRegistries": false,
- "modeRW": true,
- "registryIds": [- "888af692-c646-4b76-a234-81ca9b5bcafe",
- "6303699d-c2cd-40b1-8428-9dcd6cc3d00d"
 ]
 },
- "status": "active"
}