Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

wasmCloud Control Interface API

The wasmCloud control interface provides a NATS-based API for managing the wasmCloud lattice. It supports operations for starting and stopping actors and providers, establishing links between components, querying host inventories, and managing application deployments. The wash CLI and wasmCloud dashboard interact with hosts through this interface.

wasmCloud Control Interface API is one of 5 APIs that wasmCloud publishes on the APIs.io network, described by an AsyncAPI event-driven specification.

Tagged areas include Control API, Lattice Management, and NATS. The published artifact set on APIs.io includes API documentation, an API reference, and an AsyncAPI specification.

This event API exposes 15 operations across 8 channels, and defines 25 schemas. It is described by AsyncAPI 2.6.0, at version 1.0.

The API connects through a single server, {natsUrl} (nats).

15 operations 8 channels 25 schemas

Metadata

The identity and technical contract details declared by the specification.

Specification
AsyncAPI 2.6.0
API Version
1.0
Server
{natsUrl} (nats)
License
Resource Areas
1

Channels & Operations 15

Across 8 channels, the API surfaces 15 operations. Each is listed below with its action, channel, parameters, and response codes.

Channels 15
SUB
wasmbus.ctl.v1.{lattice}.host.get
Receive host summary responses
receiveHostList 1 param body
PUB
wasmbus.ctl.v1.{lattice}.host.get
Query all hosts in the lattice
getHosts 1 param body
SUB
wasmbus.ctl.v1.{lattice}.host.{hostId}.inv
Receive host inventory response
receiveHostInventory 2 params body
PUB
wasmbus.ctl.v1.{lattice}.host.{hostId}.inv
Query a host for its running inventory
getHostInventory 2 params body
SUB
wasmbus.ctl.v1.{lattice}.component.scale.{hostId}
Receive scale command acknowledgment
receiveScaleResponse 2 params body
PUB
wasmbus.ctl.v1.{lattice}.component.scale.{hostId}
Scale a component to a desired replica count on a host
scaleComponent 2 params body
SUB
wasmbus.ctl.v1.{lattice}.provider.start.{hostId}
Receive start provider acknowledgment
receiveStartProviderAck 2 params body
PUB
wasmbus.ctl.v1.{lattice}.provider.start.{hostId}
Start a capability provider on a host
startProvider 2 params body
SUB
wasmbus.ctl.v1.{lattice}.provider.stop.{hostId}
Receive stop provider acknowledgment
receiveStopProviderAck 2 params body
PUB
wasmbus.ctl.v1.{lattice}.provider.stop.{hostId}
Stop a running capability provider on a host
stopProvider 2 params body
SUB
wasmbus.ctl.v1.{lattice}.link.put
Receive put link acknowledgment
receivePutLinkAck 1 param body
PUB
wasmbus.ctl.v1.{lattice}.link.put
Create or update a component-to-provider link
putLink 1 param body
SUB
wasmbus.ctl.v1.{lattice}.link.del
Receive delete link acknowledgment
receiveDeleteLinkAck 1 param body
PUB
wasmbus.ctl.v1.{lattice}.link.del
Remove a component-to-provider link
deleteLink 1 param body
SUB
wasmbus.ctl.v1.{lattice}.evt.{hostId}
Receive a wasmCloud host lifecycle event
receiveHostEvent 2 params body

Messages & Schemas 25

The contract defines 25 schemas that model the data carried by its messages. The most detailed are LinkDefinition (8 properties), HostEvent (7 properties), ScaleComponentCommand (5 properties), ComponentDescription (5 properties). Each schema is shown below with its type and property counts.

EmptyRequest
message
An empty request body used for query operations that require no parameters
HostSummaryResponse
message
Summary information about a wasmCloud host
HostInventoryResponse
message
Full inventory of components and providers running on a host
ScaleComponentCommand
message
Command to scale a WebAssembly component to a desired replica count
StartProviderCommand
message
Command to start a capability provider on a wasmCloud host
StopProviderCommand
message
Command to stop a running capability provider on a wasmCloud host
PutLinkCommand
message
Command to create or update a link between a component and a provider
DeleteLinkCommand
message
Command to remove a link between a component and a provider
CtlOperationAck
message
Acknowledgment response for control interface commands
ComponentScaledEvent
message
CloudEvent emitted when a component's replica count changes
ProviderStartedEvent
message
CloudEvent emitted when a capability provider successfully starts
ProviderStoppedEvent
message
CloudEvent emitted when a capability provider stops
LinkdefSetEvent
message
CloudEvent emitted when a link definition is created or updated
HostHeartbeatEvent
message
Periodic heartbeat event emitted by each wasmCloud host
HostSummary
object
Summary information about a wasmCloud host participating in the lattice.
5 properties 3 required
HostInventory
object
Complete inventory of a wasmCloud host including all running components and capability providers.
5 properties 3 required
ComponentDescription
object
Description of a WebAssembly component running on a wasmCloud host.
5 properties 2 required
ProviderDescription
object
Description of a capability provider running on a wasmCloud host.
4 properties 2 required
ScaleComponentCommand
object
Command to scale a WebAssembly component to a desired number of replicas on a specific wasmCloud host.
5 properties 3 required
StartProviderCommand
object
Command to start a capability provider on a wasmCloud host.
4 properties 2 required
StopProviderCommand
object
Command to stop a running capability provider on a wasmCloud host.
1 property 1 required
LinkDefinition
object
A link definition connecting a wasmCloud component to a capability provider. Links enable components to use provider capabilities and carry optional configurat…
8 properties 5 required
DeleteLinkCommand
object
Command to remove an existing link definition from the lattice.
4 properties 4 required
CtlOperationAck
object
Acknowledgment returned by a wasmCloud host in response to a control interface command. Indicates whether the command was accepted; actual completion is asynch…
2 properties 1 required
HostEvent
object
A CloudEvents-formatted event emitted by a wasmCloud host for observability. Covers component and provider lifecycle changes, link definition changes, heartbea…
7 properties 7 required

Specification

The full machine-readable AsyncAPI contract behind this narrative.

Source

wasmcloud-control-asyncapi.yml Raw ↑

Other APIs wasmCloud publishes across the network.

wasmCloud Application Deployment Manager (wadm) API
wasmCloud wash CLI
wasmCloud WIT Interfaces
wasmCloud Kubernetes Operator