Initial commit: add Gitea PyPI publish workflow
This commit is contained in:
96
src/conduit_client/models/compute.py
Normal file
96
src/conduit_client/models/compute.py
Normal file
@@ -0,0 +1,96 @@
|
||||
"""Models for the Proxmox compute façade."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pydantic import ConfigDict, Field
|
||||
|
||||
from .common import ConduitModel
|
||||
|
||||
|
||||
class _AllowExtra(ConduitModel):
|
||||
"""Mixin that allows unknown fields to be forwarded to the API."""
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
str_strip_whitespace=True,
|
||||
extra="allow",
|
||||
)
|
||||
|
||||
|
||||
class ComputeTicketRequest(ConduitModel):
|
||||
"""Body for POST /compute/auth/ticket."""
|
||||
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
class ComputeTicketResponse(ConduitModel):
|
||||
"""Response from POST /compute/auth/ticket."""
|
||||
|
||||
ticket: str
|
||||
csrfpreventiontoken: str = Field(..., alias="CSRFPreventionToken")
|
||||
username: str
|
||||
|
||||
|
||||
class TaskResponse(ConduitModel):
|
||||
"""Response from async compute actions."""
|
||||
|
||||
task: str
|
||||
|
||||
|
||||
class CreateVmRequest(_AllowExtra):
|
||||
"""Body for POST /compute/vms."""
|
||||
|
||||
node: str
|
||||
vmid: int | None = None
|
||||
|
||||
|
||||
class CreateContainerRequest(_AllowExtra):
|
||||
"""Body for POST /compute/containers."""
|
||||
|
||||
node: str
|
||||
ostemplate: str
|
||||
vmid: int | None = None
|
||||
|
||||
|
||||
class CloneVmRequest(ConduitModel):
|
||||
"""Body for POST /compute/vms/{vmid}/clone."""
|
||||
|
||||
newid: int
|
||||
name: str | None = None
|
||||
full: bool | None = None
|
||||
target: str | None = None
|
||||
|
||||
|
||||
class MigrateVmRequest(ConduitModel):
|
||||
"""Body for POST /compute/vms/{vmid}/migrate."""
|
||||
|
||||
target: str
|
||||
online: bool | None = None
|
||||
|
||||
|
||||
class CreateSnapshotRequest(ConduitModel):
|
||||
"""Body for POST /compute/vms/{vmid}/snapshots."""
|
||||
|
||||
snapname: str
|
||||
vmstate: bool | None = None
|
||||
description: str | None = None
|
||||
|
||||
|
||||
class UploadStorageRequest(ConduitModel):
|
||||
"""Body for POST /compute/storage/{storage}/upload."""
|
||||
|
||||
content: str
|
||||
filename: str
|
||||
|
||||
|
||||
class NodeTasksQuery(ConduitModel):
|
||||
"""Query parameters for GET /compute/nodes/{node}/tasks."""
|
||||
|
||||
limit: int | None = None
|
||||
|
||||
|
||||
class StorageQuery(ConduitModel):
|
||||
"""Query parameters for storage listing endpoints."""
|
||||
|
||||
node: str | None = None
|
||||
Reference in New Issue
Block a user