Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
---
title: Azure Container Registry as Event Grid source
description: Describes the properties that are provided for Container Registry events with Azure Event Grid
ms.topic: conceptual
ms.date: 12/02/2022
---
# Azure Container Registry as an Event Grid source
This article provides the properties and schema for Container Registry events.Β For an introduction to event schemas, see [Azure Event Grid event schema](event-schema.md).
## Available event types
Azure Container Registry emits the following event types:
| Event type | Description |
| ---------- | ----------- |
| Microsoft.ContainerRegistry.ImagePushed | Raised when an image is pushed. |
| Microsoft.ContainerRegistry.ImageDeleted | Raised when an image is deleted. |
| Microsoft.ContainerRegistry.ChartPushed | Raised when a Helm chart is pushed. |
| Microsoft.ContainerRegistry.ChartDeleted | Raised when a Helm chart is deleted. |
## Example event
# [Cloud event schema](#tab/cloud-event-schema)
The following example shows the schema of an image pushed event:
```json
[{
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld:v1",
"type": "Microsoft.ContainerRegistry.ImagePushed",
"time": "2018-04-25T21:39:47.6549614Z",
"data": {
"id": "31c51664-e5bd-416a-a5df-e5206bc47ed0",
"timestamp": "2018-04-25T21:39:47.276585742Z",
"action": "push",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 3023,
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"length": 3023,
"repository": "aci-helloworld",
"tag": "v1"
},
"request": {
"id": "7c66f28b-de19-40a4-821c-6f5f6c0003a4",
"host": "demo.azurecr.io",
"method": "PUT",
"useragent": "docker/18.03.0-ce go/go1.9.4 git-commit/0520e24 os/windows arch/amd64 UpstreamClient(Docker-Client/18.03.0-ce \\\\(windows\\\\))"
}
},
"specversion": "1.0"
}]
```
The schema for an image deleted event is similar:
```json
[{
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld",
"type": "Microsoft.ContainerRegistry.ImageDeleted",
"time": "2018-04-26T17:56:01.8211268Z",
"data": {
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"timestamp": "2018-04-26T17:56:00.996603117Z",
"action": "delete",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"repository": "aci-helloworld"
},
"request": {
"id": "aeda5b99-4197-409f-b8a8-ff539edb7de2",
"host": "demo.azurecr.io",
"method": "DELETE",
"useragent": "python-requests/2.18.4"
}
},
"specversion": "1.0"
}]
```
The schema for a chart pushed event is similar to the schema for an imaged pushed event, but it doesn't include a request object:
```json
[{
"id": "ea3a9c28-5b17-40f6-a500-3f02b6829277",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"type": "Microsoft.ContainerRegistry.ChartPushed",
"time": "2019-03-12T22:16:31.5164086Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:16:31.0087496+00:00",
"action":"chart_push",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
}
},
"specversion": "1.0"
}]
```
The schema for a chart deleted event is similar to the schema for an imaged deleted event, but it doesn't include a request object:
```json
[{
"id": "39136b3a-1a7e-416f-a09e-5c85d5402fca",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"type": "Microsoft.ContainerRegistry.ChartDeleted",
"time": "019-03-12T22:42:08.7034064Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:42:08.3783775+00:00",
"action":"chart_delete",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
}
},
"specversion": "1.0"
}]
```
# [Event Grid event schema](#tab/event-grid-event-schema)
The following example shows the schema of an image pushed event:
```json
[{
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld:v1",
"eventType": "Microsoft.ContainerRegistry.ImagePushed",
"eventTime": "2018-04-25T21:39:47.6549614Z",
"data": {
"id": "31c51664-e5bd-416a-a5df-e5206bc47ed0",
"timestamp": "2018-04-25T21:39:47.276585742Z",
"action": "push",
"location": "westus",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 3023,
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"length": 3023,
"repository": "aci-helloworld",
"tag": "v1"
},
"request": {
"id": "7c66f28b-de19-40a4-821c-6f5f6c0003a4",
"host": "demo.azurecr.io",
"method": "PUT",
"useragent": "docker/18.03.0-ce go/go1.9.4 git-commit/0520e24 os/windows arch/amd64 UpstreamClient(Docker-Client/18.03.0-ce \\\\(windows\\\\))"
},
"connectedRegistry": {
"name": "edge1"
}
},
"dataVersion": "2.0",
"metadataVersion": "1"
}]
```
The schema for an image deleted event is similar:
```json
[{
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld",
"eventType": "Microsoft.ContainerRegistry.ImageDeleted",
"eventTime": "2018-04-26T17:56:01.8211268Z",
"data": {
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"timestamp": "2018-04-26T17:56:00.996603117Z",
"action": "delete",
"location": "westus",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"repository": "aci-helloworld"
},
"request": {
"id": "aeda5b99-4197-409f-b8a8-ff539edb7de2",
"host": "demo.azurecr.io",
"method": "DELETE",
"useragent": "python-requests/2.18.4"
},
"connectedRegistry": {
"name": "edge1"
}
},
"dataVersion": "2.0",
"metadataVersion": "1"
}]
```
The schema for a chart pushed event is similar to the schema for an imaged pushed event, but it doesn't include a request object:
```json
[{
"id": "ea3a9c28-5b17-40f6-a500-3f02b6829277",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"eventType": "Microsoft.ContainerRegistry.ChartPushed",
"eventTime": "2019-03-12T22:16:31.5164086Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:16:31.0087496+00:00",
"action":"chart_push",
"location": "westus",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
},
"connectedRegistry": {
"name": "edge1"
}
},
"dataVersion": "2.0",
"metadataVersion": "1"
}]
```
The schema for a chart deleted event is similar to the schema for an imaged deleted event, but it doesn't include a request object:
```json
[{
"id": "39136b3a-1a7e-416f-a09e-5c85d5402fca",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"eventType": "Microsoft.ContainerRegistry.ChartDeleted",
"eventTime": "019-03-12T22:42:08.7034064Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:42:08.3783775+00:00",
"action":"chart_delete",
"location": "westus",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
},
"connectedRegistry": {
"name": "edge1"
}
},
"dataVersion": "2.0",
"metadataVersion": "1"
}]
```
---
## Event properties
# [Cloud event schema](#tab/cloud-event-schema)
An event has the following top-level data:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `source` | string | Full resource path to the event source. This field isn't writeable. Event Grid provides this value. |
| `subject` | string | Publisher-defined path to the event subject. |
| `type` | string | One of the registered event types for this event source. |
| `time` | string | The time the event is generated based on the provider's UTC time. |
| `id` | string | Unique identifier for the event. |
| `data` | object | Blob storage event data. |
| `specversion` | string | CloudEvents schema specification version. |
# [Event Grid event schema](#tab/event-grid-event-schema)
An event has the following top-level data:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `topic` | string | Full resource path to the event source. This field isn't writeable. Event Grid provides this value. |
| `subject` | string | Publisher-defined path to the event subject. |
| `eventType` | string | One of the registered event types for this event source. |
| `eventTime` | string | The time the event is generated based on the provider's UTC time. |
| `id` | string | Unique identifier for the event. |
| `location` | string | The location of the event. |
| `connectedRegistry` | object | The connected registry information if the event is generated by a connected registry. |
| `data` | object | Blob storage event data. |
| `dataVersion` | string | The schema version of the data object. The publisher defines the schema version. |
| `metadataVersion` | string | The schema version of the event metadata. Event Grid defines the schema of the top-level properties. Event Grid provides this value. |
---
The data object has the following properties:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `id` | string | The event ID. |
| `timestamp` | string | The time when the event occurred. |
| `action` | string | The action that encompasses the provided event. |
| `target` | object | The target of the event. |
| `request` | object | The request that generated the event. |
The target object has the following properties:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `mediaType` | string | The MIME type of the referenced object. |
| `size` | integer | The number of bytes of the content. Same as Length field. |
| `digest` | string | The digest of the content, as defined by the Registry V2 HTTP API Specification. |
| `length` | integer | The number of bytes of the content. Same as Size field. |
| `repository` | string | The repository name. |
| `tag` | string | The tag name. |
| `name` | string | The chart name. |
| `version` | string | The chart version. |
The request object has the following properties:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `id` | string | The ID of the request that initiated the event. |
| `addr` | string | The IP or hostname and possibly port of the client connection that initiated the event. This value is the RemoteAddr from the standard http request. |
| `host` | string | The externally accessible hostname of the registry instance, as specified by the http host header on incoming requests. |
| `method` | string | The request method that generated the event. |
| `useragent` | string | The user agent header of the request. |
The connectedRegistry object has the following properties:
| Property | Type | Description |
| -------- | ---- | ----------- |
| `name` | string | The name of the connected registry that generated this event. |
## Tutorials and how-tos
|Title |Description |
|---------|---------|
| [Quickstart: send container registry events](/azure/container-registry/container-registry-event-grid-quickstart?toc=%2fazure%2fevent-grid%2ftoc.json) | Shows how to use Azure CLI to send Container Registry events. |
## Next steps
* For an introduction to Azure Event Grid, see [What is Event Grid?](overview.md)
* For more information about creating an Azure Event Grid subscription, see [Event Grid subscription schema](subscription-creation-schema.md).