Concept
Platform Model
ZennoHosting is organized around projects and their child resources. If you model the API as project-first from the start, the rest of the platform becomes predictable: provisioning inputs stay separate from runtime resources, and follow-up operations stay scoped to the same project.
Provisioning inputs
Images
Define the base OS or machine template used during VM creation.
VM Tariffs
Represent the commercial profile of the VM itself.
Configurations
Expose available VM configuration profiles that can inform your selection logic.
Access and Plugins
Access can be supplied as raw public keys or existing SSH key IDs, and optional plugins can be attached at provisioning time.
Runtime resources
Projects
The top-level scope for VMs, SSH keys, networks, public IPs, and backups.
VMs
The main compute resource. VM responses expose identifiers, resource sizing, and network attachments.
Networks
Project-level network resources to which VMs can be attached and reconfigured.
Public IPs and Backups
Public IPs are project resources, while backups are VM-scoped recovery points managed under a selected VM.
Project-first boundaries
- Create the project before creating SSH keys, networks, public IPs, or VMs.
- Persist
projectIdas a first-class identifier in your client model. - Reuse project-scoped resources instead of rebuilding them ad hoc for every VM request.
- Do not model public IP lifecycle as part of private network lifecycle. They are related, but distinct.
Provisioning decisions that matter
A correct VM create payload depends on live input resolution. Before you call create, resolve the image, the VM tariff, and any optional public IP behavior. If you request a new public IP, remember that public IP pricing is a separate decision from VM pricing rather than a property of the VM tariff itself.
Modeling recommendation
In client code, treat projectId, vmId, networkId, and publicIpId
as stable references. They are the main join keys for almost every follow-up request in the current API surface.
Related endpoints
/projectsList top-level project resources.
/imagesInspect available image identifiers.
/tariffsInspect tariff identifiers used during VM creation.
/projects/{projectId}/vmsCreate the main compute resource.
/projects/{projectId}/public-ipsCreate a project-level public IP resource.
/projects/{projectId}/vms/{vmId}Read the VM state after an asynchronous operation.