Core Concepts
Networking
The current API exposes project networks, VM attachments inside those networks, and public IP resources with port forwarding rules. Use these together rather than treating them as one flat object.
Network model
- A project can own one or more network resources.
- VMs are attached to networks explicitly and can receive an internal IP during that step.
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 network resource so the VM has a clear project-scoped place to attach.
- 2
Attach the VM and assign an internal address if needed
The attach and update calls define where the VM sits inside that network and what internal address it should use.
- 3
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. - 4
Create port forwarding rules under that public IP
Each forwarding rule maps external traffic to a VM and port inside the project network.
Important constraint
The current swagger documents listing and reading public IP resources, plus port-forward management beneath an
existing publicIpId. It does not expose a standalone create public IP operation in this surface.
Related endpoints
/projects/{projectId}/networksCreate a project network.
/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-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.