Metadata-Version: 2.4
Name: nexovirt
Version: 0.1.0
Summary: Official Python SDK for the NexoVirt REST API over Proxmox VE (hosts, guests, plans, IPAM, firewall, snapshots).
Home-page: 
Author: NexoVirt
Author-email: NexoVirt <hello@nexovirt.com>
License-Expression: MIT
Project-URL: Homepage, https://nexovirt.com
Project-URL: Documentation, https://docs.nexovirt.com/api
Project-URL: Repository, https://github.com/NexoVirt/nexovirt-python
Project-URL: Issues, https://github.com/NexoVirt/nexovirt-python/issues
Keywords: nexovirt,proxmox,proxmox-ve,vps,virtualization,rest-api,sdk,kvm,lxc
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author
Dynamic: license-file

# NexoVirt SDK for Python

Official Python client for the [NexoVirt](https://nexovirt.com) REST API, a clean,
token-authenticated API over Proxmox VE for managing hosts, guests (KVM VMs + LXC
containers), plans, IPAM, firewall, snapshots and more.

- **Docs:** [NexoVirt REST API reference](https://docs.nexovirt.com/api)
- **What is NexoVirt:** a self-hosted control panel and REST API for Proxmox VE. See [nexovirt.com](https://nexovirt.com)

Generated from the NexoVirt [OpenAPI specification](https://docs.nexovirt.com/api), so it
always matches the live API. See [Regenerating](#regenerating) below.

## Install

```bash
pip install nexovirt
```

## Quick start

Create an API token in your panel under **Settings → API tokens**, then point the client at
your panel's `/api/v1` base URL:

```python
import nexovirt
from nexovirt.api.hosts_nodes_api import HostsNodesApi
from nexovirt.api.guests_api import GuestsApi

config = nexovirt.Configuration(
    host="https://your-panel.example/api/v1",
    access_token="YOUR_TOKEN",  # Bearer token from Settings -> API tokens
)

with nexovirt.ApiClient(config) as client:
    hosts = HostsNodesApi(client)
    guests = GuestsApi(client)

    all_hosts = hosts.list_hosts()          # every Proxmox host
    result = guests.list_guests(host_id=1)  # guests on host 1
    print(result.data)
```

Every response uses the NexoVirt envelope `{ success, data, error }`; list endpoints add
`meta: { page, perPage, total }`.

## Authentication

All requests send `Authorization: Bearer <token>`. Tokens can be host-scoped, IP-allowlisted
and rate-limited in the panel. A scoped token gets `403` on any host it may not touch.

## Regenerating

This SDK is generated with [OpenAPI Generator](https://openapi-generator.tech):

```bash
./scripts/regenerate.sh
```

## License

MIT. See [LICENSE](./LICENSE).
