Skip to content
Back to main site

Azure Event Hubs

Create an Event Hubs namespace, an event hub with two partitions and a consumer group through Azure Resource Manager.

Plan: Pro68 of 68 operations implemented across its API

This page checks management resources only: AMQP and Kafka delivery, throughput and capture weren't tested, and the REST send route answers HTTP 501 DataPlaneNotEmulated.

Example checked on Vera 1.2.2, 8 November 2026. Each coverage note names its own evidence and date.

Start Vera as in Get started, with your license key activated and the emulator started by the Vera launcher (Activate Pro). Then open Bash in a terminal of its own (on macOS, whose terminal starts zsh, type bash first), go to an empty scratch directory and run this; it needs curl and Python 3. It fetches the emulator's own certificate, so every request checks TLS, and defines azmsg_request, azmsg_json and azmsg_wait, which this page's commands use. The bearer token vera-local is a dummy local credential, not your license key.

Terminal window
export VERA_CA_CERT="$PWD/vera-ca.pem"
curl --fail --silent --show-error --noproxy '*' --insecure \
https://localhost:8543/_vera/ca.pem --output "$VERA_CA_CERT"
curl --fail --silent --show-error --noproxy '*' \
--cacert "$VERA_CA_CERT" https://localhost:8543/_vera/health; echo
AZURE_ENDPOINT=https://localhost:8543
SUB=00000000-0000-0000-0000-000000000001
RG=azmsg-launch
BASE="/subscriptions/$SUB/resourceGroups/$RG"
44 more lines: show the full setup
# Writes each response to last.json and its headers to last.headers.
azmsg_request() {
local method=$1 url=$2 body=${3:-} content_type=${4:-application/json} host
[[ "$url" == /* ]] && url="$AZURE_ENDPOINT$url"
host=$(python3 -c 'import sys,urllib.parse; u=urllib.parse.urlparse(sys.argv[1]); assert u.scheme=="https" and (u.hostname=="localhost" or u.hostname.endswith(".localhost")) and u.port==8543; print(u.hostname)' "$url") || return 1
local args=(--noproxy '*' --silent --show-error --fail-with-body --max-time 30
--cacert "$VERA_CA_CERT" --resolve "$host:8543:127.0.0.1"
-H 'Authorization: Bearer vera-local' -D last.headers -o last.json -X "$method")
[[ -n "$body" ]] && args+=(-H "Content-Type: $content_type" --data-binary "@$body")
curl "${args[@]}" "$url"
}
azmsg_json() { python3 -c 'import json,sys; v=json.load(open(sys.argv[1]));
for k in sys.argv[2].split("."): v=v[int(k)] if isinstance(v,list) else v[k]
print(v if isinstance(v,str) else json.dumps(v))' "$1" "$2"; }
azmsg_wait() {
local poll state
poll=$(python3 - <<'PY'
from pathlib import Path
h={}
for line in Path('last.headers').read_text().splitlines():
if ':' in line:
k,v=line.split(':',1); h[k.lower()]=v.strip()
print(h.get('azure-asyncoperation') or h.get('location') or '')
PY
) || return 1
[[ -z "$poll" ]] && return 0
for attempt in {1..30}; do
azmsg_request GET "$poll" || return
state=$(python3 - <<'PY'
import json
from pathlib import Path
body=Path('last.json').read_text()
if body.strip():
v=json.loads(body); print(v.get('status',v.get('properties',{}).get('provisioningState','')))
else:
status=Path('last.headers').read_text().splitlines()[0].split()[1]
print('Succeeded' if status in ('200','204') else '')
PY
) || return 1
case "$state" in Succeeded|Completed) return 0;; Failed|Canceled|Cancelled) cat last.json; return 1;; esac
sleep 1
done
echo 'Operation did not finish within 30 polls' >&2; return 1
}

The health check answers {"cloud": "azure", "generation_status": "generated", "status": "ok"}. Requests go only to the emulator at https://localhost:8543: the helper refuses any other address, including the Azure-looking URLs some responses hold. When you've finished, close the terminal and delete the scratch directory; that removes only these local files, not what you created in the emulator.

The example uses Resource Manager’s Microsoft.EventHub API at version 2026-01-01, the version tested with Vera 1.2.2. It manages resources only, so it needs no producer, consumer or Kafka client.

Create a namespace, an event hub with two partitions and a consumer group named reader, then read the hub back. This example is configuration only: no event is sent or received (see Limitations).

The first lines create the resource group azmsg-launch for the example’s resources. azmsg_wait follows the namespace’s creation, a long-running operation, until the namespace is ready, since creating the hub sooner can return 409. Only the last command prints.

Terminal window
cat > rg.json <<'JSON'
{"location":"eastus"}
JSON
azmsg_request PUT "$BASE?api-version=2025-04-01" rg.json
HUBNS="$BASE/providers/Microsoft.EventHub/namespaces/azmsgfinal-hubs"
cat > hubs-namespace.json <<'JSON'
{"location":"eastus","sku":{"name":"Standard","tier":"Standard","capacity":1}}
JSON
azmsg_request PUT "$HUBNS?api-version=2026-01-01" hubs-namespace.json
azmsg_wait
cat > hub.json <<'JSON'
{"properties":{"partitionCount":2,"messageRetentionInDays":1}}
JSON
azmsg_request PUT "$HUBNS/eventhubs/events?api-version=2026-01-01" hub.json
cat > consumer.json <<'JSON'
{"properties":{"userMetadata":"Vera docs"}}
JSON
azmsg_request PUT "$HUBNS/eventhubs/events/consumergroups/reader?api-version=2026-01-01" consumer.json
azmsg_request GET "$HUBNS/eventhubs/events?api-version=2026-01-01"
cp last.json hub-result.json
python3 -m json.tool hub-result.json

The namespace request returns 201; the hub’s and the consumer group’s return 200. The hub keeps its partition count and retention, and the response also lists its partition IDs, "0" and "1". These are selected fields; the response also has the hub’s resource ID and timestamps.

Output (selected fields)
{
"name": "events",
"properties": {
"messageRetentionInDays": 1,
"partitionCount": 2
}
}

Read the consumer group back too. It keeps its userMetadata:

Terminal window
azmsg_request GET "$HUBNS/eventhubs/events/consumergroups/reader?api-version=2026-01-01"
python3 -m json.tool last.json
Output (selected fields)
{
"properties": {
"userMetadata": "Vera docs"
}
}

To clean up, delete the consumer group, the event hub and the namespace. The commands print nothing when they succeed.

Terminal window
HUBNS="$BASE/providers/Microsoft.EventHub/namespaces/azmsgfinal-hubs"
azmsg_request DELETE "$HUBNS/eventhubs/events/consumergroups/reader?api-version=2026-01-01"
azmsg_request DELETE "$HUBNS/eventhubs/events?api-version=2026-01-01"
azmsg_request DELETE "$HUBNS?api-version=2026-01-01"
azmsg_wait

This leaves the resource group azmsg-launch in place: deleting a resource group fails in Vera 1.2.2, as Resource Manager basics explains. A fresh emulator starts without it.

  • Namespaces, created with a Standard SKU, read and deleted.
  • Event hubs, created with partitionCount and messageRetentionInDays, read back with their partition IDs, and deleted. A partition count of 0 returned 400 InvalidResourceDefinitionBadRequest. In testing of Vera 1.2.0 preview, a hub created before its namespace had finished provisioning returned 409; the same request returned 200 once it had.
  • Consumer groups, created with userMetadata, read back and deleted.

The main limits are below. A few more apply to every service, and the API coverage notes cover smaller differences.

  • No event was sent or received. AMQP and Kafka weren’t tested on Vera 1.2.0 preview or Vera 1.2.0-rc.3, so delivery, checkpoints, throughput, retention and capture aren’t established. A hub’s partition count and retention are stored settings, not shown to take effect.
  • No REST send. Management operations work as shown, but the emulator doesn’t serve Event Hubs data calls. In Vera 1.2.0-rc.3, a POST to the hub’s REST route, https://<namespace>.servicebus.localhost:8543/events/messages, answered HTTP 501 DataPlaneNotEmulated, saying the resource is managed through Resource Manager. The result says nothing about AMQP.
  • Capture, failover and replication are settings only. An event hub’s capture settings are stored but nothing is captured, a namespace failover or disaster-recovery change updates local records without replicating data, and authorization rules and keys aren’t propagated to a data plane. This release’s API has no Event Hubs data plane for events.
  • Not run as examples: authorization rules and keys, network rule sets, private endpoints, disaster recovery, clusters, application groups and schema groups. The API coverage marks these from a review of Vera 1.2.0’s source, with their limits in the notes.

Every operation of the API on this page, from its pinned public definition, and whether Vera 1.2.0 implements it. Only the API surfaces in this release are listed, and each operation once. Implementation availability was reviewed against the Vera 1.2.0 source on 6 November 2026. Source inspection identifies a local implementation and its known limits; it doesn't mean every operation or API version was tested with a request. Each note names its evidence: a Local observation without a build or date is from Vera 1.2.0 preview, on 5 November 2026, and one from a later build, such as Vera 1.2.0-rc.3 or Vera 1.2.2, names that build and its date. No response was compared with Azure's. What the statuses mean

ApplicationGroup

4 of 4 implemented
OperationStatusNotes
ApplicationGroup_CreateOrUpdateApplicationGroupImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
ApplicationGroup_DeleteImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
ApplicationGroup_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
ApplicationGroup_ListByNamespaceImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

Clusters

8 of 8 implemented
OperationStatusNotes
Clusters_CreateOrUpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_DeleteImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_ListAvailableClusterRegionImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_ListByResourceGroupImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_ListBySubscriptionImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_ListNamespacesImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Clusters_UpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

Configuration

2 of 2 implemented
OperationStatusNotes
Configuration_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Configuration_PatchImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

ConsumerGroups

4 of 4 implemented
OperationStatusNotes
ConsumerGroups_CreateOrUpdateImplementedLocal observation: Created a consumer group with userMetadata: HTTP 200.
ConsumerGroups_DeleteImplementedLocal observation: Deleted the example's consumer group in the page's cleanup.
ConsumerGroups_GetImplementedLocal observation: Read the consumer group back with its userMetadata: HTTP 200.
ConsumerGroups_ListByEventHubImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

DisasterRecoveryConfigs

10 of 10 implemented
OperationStatusNotes
DisasterRecoveryConfigs_BreakPairingImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_CheckNameAvailabilityImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_CreateOrUpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_DeleteImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_FailOverImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_GetAuthorizationRuleImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_ListImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_ListAuthorizationRulesImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
DisasterRecoveryConfigs_ListKeysImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

EventHubs

10 of 10 implemented
OperationStatusNotes
EventHubs_CreateOrUpdateImplementedLocal observation: Created an event hub with two partitions: HTTP 200. Sent before the namespace had finished provisioning, the same request returned HTTP 409, and a partitionCount of 0 returned HTTP 400 InvalidResourceDefinitionBadRequest.
EventHubs_CreateOrUpdateAuthorizationRuleImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_DeleteImplementedLocal observation: Deleted the example's event hub in the page's cleanup.
EventHubs_DeleteAuthorizationRuleImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_GetImplementedLocal observation: Read the event hub back with its partitionCount, messageRetentionInDays and partition IDs "0" and "1": HTTP 200.
EventHubs_GetAuthorizationRuleImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_ListAuthorizationRulesImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_ListByNamespaceImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_ListKeysImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
EventHubs_RegenerateKeysImplementedSource inspection: Stores authorization rules, keys and capture settings locally; the rules aren't propagated to a data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

Namespaces

17 of 17 implemented
OperationStatusNotes
Namespaces_CheckNameAvailabilityImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_CreateOrUpdateImplementedLocal observation: Created a Standard namespace: HTTP 201.
Namespaces_CreateOrUpdateAuthorizationRuleImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_CreateOrUpdateNetworkRuleSetImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_DeleteImplementedLocal observation: Deleted the example's namespace in the page's cleanup.
Namespaces_DeleteAuthorizationRuleImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_FailoverImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_GetImplementedLocal observation: Read the namespace: HTTP 200, and HTTP 404 after it was deleted.
Namespaces_GetAuthorizationRuleImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_GetNetworkRuleSetImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_ListImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_ListAuthorizationRulesImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_ListByResourceGroupImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_ListKeysImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_ListNetworkRuleSetImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_RegenerateKeysImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
Namespaces_UpdateImplementedSource inspection: Namespace failover and replica readiness reflect local records only, and this release has no Event Hubs event data plane. Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

NetworkSecurityPerimeterConfiguration

1 of 1 implemented
OperationStatusNotes
NetworkSecurityPerimeterConfiguration_ListImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

NetworkSecurityPerimeterConfigurations

2 of 2 implemented
OperationStatusNotes
NetworkSecurityPerimeterConfigurations_CreateOrUpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
NetworkSecurityPerimeterConfigurations_GetResourceAssociationNameImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

Operations

1 of 1 implemented
OperationStatusNotes
Operations_ListImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

PrivateEndpointConnections

4 of 4 implemented
OperationStatusNotes
PrivateEndpointConnections_CreateOrUpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
PrivateEndpointConnections_DeleteImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
PrivateEndpointConnections_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
PrivateEndpointConnections_ListImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

PrivateLinkResources

1 of 1 implemented
OperationStatusNotes
PrivateLinkResources_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.

SchemaRegistry

4 of 4 implemented
OperationStatusNotes
SchemaRegistry_CreateOrUpdateImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
SchemaRegistry_DeleteImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
SchemaRegistry_GetImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.
SchemaRegistry_ListByNamespaceImplementedSource inspection: Management configuration only; Event Hubs streaming, capture, replication and Azure RBAC aren't provided by these operations.