Concept
Networking
ZennoHosting networking is built from distinct resources: private project networks, VM attachments inside those networks, and separate public IP resources with port forwarding rules. Use them together, but do not collapse them into a single lifecycle.
Network model
- A project can own one or more network resources.
- Private networks are created without manually supplying
cidr; the platform assigns it. - VMs are attached to networks explicitly and receive their internal address from the platform model.
Public IPs are represented as project resources. Port forwarding rules are managed underneath a specific
publicIpId.During VM creation,
publicIpModecontrols whether the request should use a new public IP, reuse an existing one, or omit a public IP.
- 1
Create or inspect the private network
Start from the private network resource so the VM has a clear project-scoped place to attach. Do not assume you should supply the subnet manually at creation time.
- 2
Attach the VM and inspect internal addressing
The attach and update calls define where the VM sits inside the network. Treat the resulting internal IP as a platform-assigned value to read from the resource state.
- 3
Create or locate a project public IP resource
Public exposure is not configured on the network object itself. It is configured through a project public IP resource identified by
publicIpId, either created directly or reused later. - 4
Create port forwarding rules under that public IP
Each forwarding rule maps external traffic to a VM and port inside the project network.
Deletion model
Public IP removal is a separate operation. When you need to release external addressing, use the public IP delete endpoint directly instead of treating public IP cleanup as part of network deletion.
Important distinction
Product UI may visually group private networking and public exposure together, but the API model is still split: private networks own internal topology, while public IP resources own external addressing and forwarding rules.
Related endpoints
/projects/{projectId}/networksCreate a private project network with platform-assigned subnet data.
/projects/{projectId}/networks/{networkId}/vmsAttach a VM to a network.
/projects/{projectId}/networks/{networkId}/vms/{vmId}Adjust VM network attachment settings such as internal IP.
/projects/{projectId}/public-ipsCreate a project public IP resource.
/projects/{projectId}/public-ipsList project public IP resources.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsCreate a port forwarding rule.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsInspect forwarding rules bound to a public IP.
/projects/{projectId}/public-ips/{publicIpId}Delete the public IP resource itself.