Skip to main content

Proxmox Datacenter Manager API

Project description

clientapi_pdm

Python SDK for the Proxmox Datacenter Manager API. Generated from the upstream apidoc.js from Proxmox Datacenter Manager via openapi-generator-cli with custom Mustache template overrides.

Not an official Proxmox project. Community SDK derived from the upstream apidoc.js. Always verify against the upstream API viewer. https://pdm.proxmox.com/.

Requires Python ≥ 3.9.

Install

pip install clientapi-pdm

Or for development:

pip install -r requirements.txt

Usage

from clientapi_pdm import Configuration, Pve

cfg = Configuration(
    host='https://pdm1.example.com:8443/api2/json',
    api_key={'Authorization': 'PDMAPIToken=user@realm!tokenid:uuid-secret'},
)
pdm = Pdm(configuration=cfg)

# Per-tag properties are lazily instantiated and share the same ApiClient.
# `removeOperationIdPrefix=true` strips the tag prefix from method names,
# so the call is `pdm.qemu.vm_status(...)`, not `pdm.qemu.qemu_vm_status(...)` —
# you're already inside the `qemu` namespace.
status = pdm.qemu.vm_status(node='pdm1', vmid=100)
nodes = pdm.nodes.get_nodes()

Discovering available methods

Each per-tag API class lives at clientapi_pdm.api.<tag>_api.<Tag>Api. List its methods to see what's callable:

print([m for m in dir(pdm.qemu) if not m.startswith('_')])

Generated method-level docstrings explain parameters; the upstream endpoint reference is the upstream API viewer.

The unified Pdm class wraps each per-tag API class (QemuApi, LxcApi, ClusterApi, NodesApi, …) so consumers don't need to instantiate them individually.

Compound configs

PVE encodes many fields as CLI-style shorthand strings (net0=virtio,bridge=vmbr0,firewall=1). Round-trip helpers are emitted for every compound config schema:

from clientapi_pdm.models import PveQemuNetConfig

cfg = PveQemuNetConfig(model='virtio', bridge='vmbr0', firewall=1)
shorthand = cfg.to_shorthand()  # → 'virtio,bridge=vmbr0,firewall=1'

parsed = PveQemuNetConfig.from_shorthand(shorthand)

Indexed families

Numbered properties (net0..net31, mp0..mp255, …) are exposed on every model as a single collapsed nets / mps / … field:

req = QemuCreateVmRequest(
    nets={
        0: 'virtio,bridge=vmbr0',
        3: 'e1000,bridge=vmbr1',
    },
)
# Wire format: { 'net0': 'virtio,bridge=vmbr0', 'net3': 'e1000,bridge=vmbr1' }

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clientapi_pdm-2026.5.24.tar.gz (314.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clientapi_pdm-2026.5.24-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file clientapi_pdm-2026.5.24.tar.gz.

File metadata

  • Download URL: clientapi_pdm-2026.5.24.tar.gz
  • Upload date:
  • Size: 314.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for clientapi_pdm-2026.5.24.tar.gz
Algorithm Hash digest
SHA256 6605cd5d4c139f79099158a92d48c36c212b38614ff9e47114335e47f0631ab4
MD5 f5b016389aaebf63e0153d026eb48363
BLAKE2b-256 a68c98655f79524f25f5e5d2c29c9773dce89a7f2bd0573199efaa4348d98577

See more details on using hashes here.

File details

Details for the file clientapi_pdm-2026.5.24-py3-none-any.whl.

File metadata

File hashes

Hashes for clientapi_pdm-2026.5.24-py3-none-any.whl
Algorithm Hash digest
SHA256 c917d4405cdf8834e6ea263e41bb46b2cd686c3cd53d490ae6a05efe2c192bfa
MD5 a4d3c4d130fa55bd946ce069e534f82e
BLAKE2b-256 6cb870478ac4fb29b19618efdf9b1a06771a29c33023a1c5f4e6b9a504f6c297

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page