Skip to main content

Container Registry

This page tracks which Azure Container Registry REST API operations are implemented in Topaz, split by control plane (ARM resource management) and data plane (OCI / Docker Registry HTTP API).

Legend​

SymbolMeaning
✅Implemented
❌Not implemented

Control Plane​

The control plane covers ARM operations available under management.azure.com — creating and managing registry resources, replications, webhooks, etc.

Cache Rules​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
List❌
Update❌

Connected Registries​

REST reference

OperationStatus
Create❌
Deactivate❌
Delete❌
Get❌
List❌
Update❌

Credential Sets​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
List❌
Update❌

Operations​

REST reference

OperationStatus
List❌

Private Endpoint Connections​

REST reference

OperationStatus
Create Or Update❌
Delete❌
Get❌
List❌

Registries​

REST reference

OperationStatusNotes
Check Name Availability✅
Create✅Implemented via PUT (CreateOrUpdate)
Delete✅
Generate Credentials✅
Get✅
Get Private Link Resource❌
Import Image❌
List✅Lists all registries under a subscription
List By Resource Group✅
List Credentials✅
List Private Link Resources❌
List Usages✅
Regenerate Credential✅
Update✅PATCH

Replications​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
List✅
Update❌

Scope Maps​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
List❌
Update❌

Tokens​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
List❌
Update❌

Webhooks​

REST reference

OperationStatus
Create❌
Delete❌
Get❌
Get Callback Config❌
List❌
List Events❌
Ping❌
Update❌

Data Plane​

The data plane covers the OCI Distribution Spec / Docker Registry HTTP API v2, served from the registry's own hostname (e.g. <registry>.cr.topaz.local.dev:8892).

Authentication​

ACR OAuth2 token exchange docs

OperationStatusNotes
GET /v2/ (challenge)✅Returns 401 Bearer challenge; accepts Basic (admin creds) or Bearer (JWT)
POST /oauth2/exchange✅Exchanges AAD access token for ACR refresh token
GET /oauth2/token✅Fetch repository-scoped Bearer access token (Docker daemon flow)
POST /oauth2/token✅Exchange refresh token for scoped repository access token

Manifests​

OperationStatusNotes
Get✅GET /v2/{name}/manifests/{reference} — returns stored manifest JSON with original Content-Type
Put✅PUT /v2/{name}/manifests/{reference} — stores by tag and by digest
Delete✅DELETE /v2/{name}/manifests/{reference} — deletes by tag or digest; also removes digest-indexed copy
Check existence✅HEAD /v2/{name}/manifests/{reference} — returns 200 + Docker-Content-Digest + Content-Type + Content-Length when manifest exists

Blobs​

OperationStatusNotes
Get✅GET /v2/{name}/blobs/{digest} — returns raw blob bytes with Content-Length
Check existence✅HEAD /v2/{name}/blobs/{digest} — returns 200 + Content-Length when blob exists
Delete✅DELETE /v2/{name}/blobs/{digest} — deletes existing blob by digest
Initiate upload✅POST /v2/{name}/blobs/uploads/ — returns session UUID
Upload (monolithic)✅PUT /v2/{name}/blobs/uploads/{uuid}?digest=... with body
Upload (chunked)✅PATCH /v2/{name}/blobs/uploads/{uuid} then PUT to finalize

Tags​

OperationStatusNotes
List✅GET /v2/{name}/tags/list (OCI) and GET /acr/v1/{name}/_tags (ACR data-plane) — supports n and last pagination params
Delete✅DELETE /acr/v1/{name}/_tags/{tag} — used by az acr repository delete --image <name:tag>

Repositories​

OperationStatusNotes
List✅GET /v2/_catalog and GET /acr/v1/_catalog — returns {"repositories":[...]} sorted; supports n and last pagination params
Delete✅DELETE /acr/v1/{name} — used by az acr repository delete --repository <name>

Tasks API​

This section tracks task-oriented ARM operations for building and running container images via triggers and pipelines.

Registries (Tasks)​

REST reference

OperationStatus
Get Build Source Upload Url❌
Schedule Run✅

Runs​

REST reference

OperationStatus
Cancel❌
Get✅
Get Log Sas Url✅
List✅
Update✅

Tasks​

REST reference

OperationStatus
Create✅
Delete✅
Get✅
Get Details✅
List✅
Run✅
Update✅
Star on GitHub