pve-sdk
v1.0.2
Published
A typed SDK for interfacing with the Proxmox VE API.
Maintainers
Readme
pve-sdk
A typed SDK for interfacing with the Proxmox VE API. Includes code for generating this SDK from the API specification. This version was generated against Proxmox VE 9.2.5.
Usage
The SDK is structured identically to PVE's API paths, with types also sourced from the API specification. Supported authentication methods are API tokens (recommended) or password/TOTP with automatic ticket renewal.
import PVE from 'pve-sdk';
const client = new PVE({
hostname: 'https://example.com:8006',
username: 'root@pam',
tokenId: 'my-token',
tokenSecret: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
});
const taskId = await client.nodes.node('my-node').qemu.createVm({ vmid: 100 });
const taskStatus = await client.nodes.node('my-node').tasks.upid(taskId).status.readTaskStatus();
console.info(taskStatus.status);Building from API specification
Copy the PVE API specification to src/apidoc.json. This can be sourced from
/usr/share/pve-docs/api-viewer/apidoc.js on an up-to-date PVE installation. The start of the new
file should look something like this:
[
{
"children": [
{
"children": [
{
"info": {
"DELETE": {
"allowtoken": 1,
"description": "Mark replication job for removal.",
"method": "DELETE",
"name": "delete",Then, run pnpm i and pnpm run generate to generate index.ts.
