overcast local AWS emulator

Service Reference

MSK — Managed Streaming for Kafka

MSK uses the REST JSON protocol. The v1 endpoints are under /v1/ and the v2 cluster API under /api/v2/.

MSK — Managed Streaming for Kafka

AWS docs: https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html

MSK uses the REST JSON protocol and no other. The v1 endpoints are under /v1/; the v2 cluster API — CreateClusterV2, DescribeClusterV2, ListClustersV2 — is under /api/v2/clusters, which is where AWS binds it. Both share one cluster store, so a cluster created through either API is visible through the other.

When Docker is available, CreateCluster starts a real Redpanda container (docker.redpanda.com/redpandadata/redpanda) with automatic port allocation from MSK_PORT_BASE (default 49092). A TCP health check polls port 9092 until the broker is reachable before transitioning the cluster to “ACTIVE”. When Docker is unavailable, operations are metadata-only and status transitions immediately.

GetBootstrapBrokers returns the allocated broker endpoint once the container is running.


Summary

Category✅ Supported❌ Unsupported
Clusters813
Configurations5
Kafka versions1
Tagging3

Endpoints

Clusters

OperationStatusNotesAWS Docs
CreateCluster✅ SupportedDocker-backed (Redpanda); async CREATING→ACTIVE once the broker answers ApiVersions; a broker that never answers ends in FAILED with stateInfo; port auto-alloc from MSK_PORT_BASE; a cluster name already in use in the region is a ConflictExceptiondocs
DescribeCluster✅ SupportedLook up cluster by ARNdocs
ListClusters✅ SupportedList all clusters; optional clusterNameFilter query param matches on the name prefixdocs
DeleteCluster✅ SupportedSets state to “DELETING”; stops and removes Docker container asynchronouslydocs
GetBootstrapBrokers✅ SupportedReturns bootstrapBrokerString with allocated host:port when Docker container is runningdocs
CreateClusterV2✅ SupportedPROVISIONED: same Docker/Redpanda lifecycle as v1; SERVERLESS: metadata-only, immediately ACTIVE; rejects a request naming both or neither; shares one cluster-name namespace with CreateCluster, so a name already in use is a ConflictExceptiondocs
DescribeClusterV2✅ SupportedReturns v2 shape with clusterType and provisioned/serverless sub-objectdocs
ListClustersV2✅ SupportedclusterNameFilter (prefix), clusterTypeFilter, maxResults and nextToken query params; page size capped at 100docs
UpdateBrokerCount❌ Unsupportedstub; returns 501docs
UpdateBrokerStorage❌ Unsupportedstub; returns 501docs
UpdateBrokerType❌ Unsupportedstub; returns 501docs
UpdateMonitoring❌ Unsupportedstub; returns 501docs
UpdateSecurity❌ Unsupportedstub; returns 501docs
RebootBroker❌ Unsupportedstub; returns 501docs
BatchAssociateScramSecret❌ UnsupportedSCRAM authentication - not implementeddocs
BatchDisassociateScramSecret❌ UnsupportedSCRAM authentication - not implementeddocs
ListScramSecrets❌ UnsupportedSCRAM authentication - not implementeddocs
CreateVpcConnection❌ Unsupportedstub; returns 501docs
DeleteVpcConnection❌ Unsupportedstub; returns 501docs
DescribeVpcConnection❌ Unsupportedstub; returns 501docs
ListVpcConnections❌ Unsupportedstub; returns 501docs

Configurations

OperationStatusNotesAWS Docs
CreateConfiguration✅ SupportedStores name, description, kafka versions; a configuration name already in use in the region is a ConflictExceptiondocs
DescribeConfiguration✅ SupportedLook up configuration by ARNdocs
ListConfigurations✅ SupportedList all configurationsdocs
DeleteConfiguration✅ SupportedRemoves stored configurationdocs
UpdateClusterConfiguration✅ SupportedReads the modeled configurationInfo object; validates currentVersion; a configuration ARN that does not exist is a NotFoundException; returns clusterOperationArndocs

Kafka versions

OperationStatusNotesAWS Docs
ListKafkaVersions✅ SupportedReturns hardcoded list: 3.6.0, 3.5.1, 3.4.0, 2.8.1, 2.6.0docs

Tagging

OperationStatusNotesAWS Docs
TagResource✅ SupportedARN-scoped tag storagedocs
ListTagsForResource✅ SupportedReturns all tags for an ARNdocs
UntagResource✅ SupportedRemoves specific tag keysdocs