Skip to content

Capability Matrix

Which operations are available in each consumer surface — Dashboard, CLI (bnerd), Terraform Provider, and the REST API.

Legend: ✓ = supported · — = not applicable or not yet available


Ephemeral Workspaces

Operation Dashboard CLI Terraform API
List workspaces bnerd workspace list data.bnerd_workspaces GET /workspaces
Show workspace bnerd workspace get data.bnerd_workspace GET /workspaces/{id}
Launch workspace bnerd workspace launch POST /workspaces
Revoke workspace bnerd workspace revoke DELETE /workspaces/{id}

Compute — Servers

Operation Dashboard CLI Terraform API
List servers bnerd servers list data.bnerd_servers GET /cloud/servers
Show server bnerd servers get data.bnerd_server GET /cloud/servers/{id}
Create server bnerd servers create bnerd_server POST /cloud/servers
Delete server bnerd servers delete bnerd_server (destroy) DELETE /cloud/servers/{id}
List images bnerd images list data.bnerd_images GET /cloud/images
List flavors bnerd flavors list data.bnerd_flavors GET /cloud/flavors
List SSH keypairs bnerd ssh-keypairs list data.bnerd_ssh_keypairs GET /cloud/ssh-keypairs
Create SSH keypair POST /cloud/ssh-keypairs
Delete SSH keypair DELETE /cloud/ssh-keypairs/{id}

Compute — Volumes

Operation Dashboard CLI Terraform API
List volumes bnerd volumes list data.bnerd_volumes GET /cloud/volumes
Show volume bnerd volumes get data.bnerd_volume GET /cloud/volumes/{id}

Compute — Security Groups

Operation Dashboard CLI Terraform API
List groups bnerd security-groups list data.bnerd_security_groups GET /cloud/security-groups
Show group bnerd security-groups get data.bnerd_security_group GET /cloud/security-groups/{id}
Create group bnerd security-groups create bnerd_security_group POST /cloud/security-groups
Update group bnerd security-groups update bnerd_security_group PUT /cloud/security-groups/{id}
Delete group bnerd security-groups delete bnerd_security_group (destroy) DELETE /cloud/security-groups/{id}
List rules bnerd security-groups rules data.bnerd_security_group_rules GET /cloud/security-groups/{id}/rules
Add rule bnerd security-groups rule-add bnerd_security_group_rule POST /cloud/security-groups/{id}/rules
Remove rule bnerd security-groups rule-delete bnerd_security_group_rule (destroy) DELETE /cloud/security-groups/{id}/rules/{rule_id}

Compute — Networking

Operation Dashboard CLI Terraform API
List networks bnerd networks list data.bnerd_networks GET /cloud/networks
Show network bnerd networks get data.bnerd_network GET /cloud/networks/{id}
Create network bnerd networks create bnerd_network POST /cloud/networks
Delete network bnerd networks delete bnerd_network (destroy) DELETE /cloud/networks/{id}
List subnets bnerd subnets list data.bnerd_subnets GET /cloud/subnets
Show subnet bnerd subnets get data.bnerd_subnet GET /cloud/subnets/{id}
Create subnet bnerd subnets create bnerd_subnet POST /cloud/subnets
Delete subnet bnerd subnets delete bnerd_subnet (destroy) DELETE /cloud/subnets/{id}
List routers bnerd routers list data.bnerd_routers GET /cloud/routers
Show router bnerd routers get data.bnerd_router GET /cloud/routers/{id}
Create router bnerd routers create bnerd_router POST /cloud/routers
Update router bnerd routers update bnerd_router PATCH /cloud/routers/{id}
Delete router bnerd routers delete bnerd_router (destroy) DELETE /cloud/routers/{id}
Attach router interface bnerd routers attach-subnet bnerd_router_interface POST /cloud/routers/{id}/interfaces
Detach router interface bnerd routers detach-subnet bnerd_router_interface (destroy) DELETE /cloud/routers/{id}/interfaces/{port_id}
List ports data.bnerd_ports GET /cloud/ports
Show port data.bnerd_port GET /cloud/ports/{id}
List floating IPs bnerd floating-ips list data.bnerd_floating_ips GET /cloud/floating-ips
Show floating IP bnerd floating-ips get data.bnerd_floating_ip GET /cloud/floating-ips/{id}
Allocate floating IP bnerd_floating_ip POST /cloud/floating-ips
Release floating IP bnerd_floating_ip (destroy) DELETE /cloud/floating-ips/{id}

Compute — Load Balancers

Operation Dashboard CLI Terraform API
List load balancers bnerd loadbalancers list data.bnerd_loadbalancers GET /cloud/loadbalancers
Show load balancer bnerd loadbalancers get data.bnerd_loadbalancer GET /cloud/loadbalancers/{id}
List listeners data.bnerd_lb_listeners GET /cloud/lb/listeners
List pools data.bnerd_lb_pools GET /cloud/lb/pools
List pool members data.bnerd_lb_pool_members GET /cloud/lb/pools/{id}/members
List health monitors data.bnerd_lb_health_monitors GET /cloud/lb/health-monitors

DNS

Operation Dashboard CLI Terraform API
List zones bnerd dns zones list data.bnerd_dns_zones GET /dns/zones
Create zone bnerd dns zones create bnerd_dns_zone POST /dns/zones
Delete zone bnerd dns zones delete bnerd_dns_zone (destroy) DELETE /dns/zones/{id}
List records bnerd dns records list data.bnerd_dns_records GET /dns/zones/{id}/records
Create record bnerd dns records create bnerd_dns_record POST /dns/zones/{id}/records
Update record bnerd dns records update bnerd_dns_record PATCH /dns/zones/{zone_id}/records/{name}/{type}
Delete record bnerd dns records delete bnerd_dns_record (destroy) DELETE /dns/zones/{zone_id}/records/{name}/{type}
Verify domain POST /dns/domains/{id}/verify

Object Storage (RGW)

Operation Dashboard CLI Terraform API
List RGW users bnerd rgw users list data.bnerd_rgw_users GET /rgw/users
Create RGW user bnerd rgw users create bnerd_rgw_user POST /rgw/users
Delete RGW user bnerd rgw users delete bnerd_rgw_user (destroy) DELETE /rgw/users/{id}
Rotate S3 key bnerd rgw users renew-key POST /rgw/users/{id}/renew_key
List buckets bnerd rgw buckets list data.bnerd_rgw_buckets GET /rgw/users/{id}/buckets
Create bucket bnerd rgw buckets create POST /rgw/users/{id}/buckets
Delete bucket bnerd rgw buckets delete DELETE /rgw/users/{id}/buckets/{name}

Kubernetes

Operation Dashboard CLI Terraform API
List clusters bnerd k8s list data.bnerd_k8s_clusters GET /k8s/clusters
Show cluster bnerd k8s get data.bnerd_k8s_cluster GET /k8s/clusters/{id}
Create cluster POST /k8s/clusters
Delete cluster DELETE /k8s/clusters/{id}
List cloud profiles bnerd cloud-profiles list data.bnerd_k8s_cloudprofiles GET /k8s/cloudprofiles
Show cloud profile bnerd cloud-profiles get GET /k8s/cloudprofiles/{name}

Account & Organization

Operation Dashboard CLI Terraform API
List organizations bnerd org list data.bnerd_organizations GET /organizations
Switch active organization ✓ (org-switcher) bnerd org switch ?organization_id=<uuid> query param
Current account + all memberships GET /accounts/mememberships[]
Active organization for request ✓ (auto-injected) ✓ (auto-injected) ?organization_id=<uuid>current_organization_id
List projects bnerd projects list data.bnerd_projects GET /organizations/{org_id}/projects
Show project bnerd projects get GET /organizations/{org_id}/projects/{id}
Create project bnerd_project POST /organizations/{org_id}/projects
List members bnerd members list GET /memberships
Show member bnerd members get GET /memberships/{id}
Remove member bnerd members delete DELETE /memberships/{id}
Invite member bnerd invitations create POST /invitations
Accept invitation ✓ (email link) bnerd invitations accept PATCH /invite/{token}/accept (unauthenticated)
Create API token POST /organizations/{org_id}/api_tokens

Apps / Service Catalog

Operation Dashboard CLI Terraform API
List apps bnerd apps list data.bnerd_apps GET /apps
Show app bnerd apps get data.bnerd_app GET /apps/{id}
Create app POST /apps
Update app PATCH /apps/{id}
Delete app DELETE /apps/{id}

Operators

Operators are installed and configured via Helm; the customer-facing operations are declarative (CRD apply/delete). There is no REST API surface for operator management — all interactions go through kubectl and the CRDs.

Managed service Dashboard kubectl / CRDs Terraform API
Object Storage (S3 Operator) ✓ (via Object Storage UI) S3User, S3Bucket CRDs bnerd_rgw_user POST /rgw/users
Managed Nextcloud NextcloudInstance CRD
Volume Backups BackupPolicy CRD
Log Aggregation (Loki) LokiStack CRD
WireGuard VPN Gateway VPNGateway CRD

Notes

  • Terraform data sources are read-only — use them to reference existing resources without managing them.
  • Terraform managed resources support create, read, update (where applicable), and delete; all changes go through terraform plan / terraform apply.
  • CLI output can be switched to JSON or YAML with -o json / -o yaml on any list or show command.
  • Operations marked — are available via the API but do not yet have a dedicated CLI command or Terraform resource. Use the API directly or the Dashboard for those.

See Also