# Generated by @docstream/fastapi-server-emitter
# Do not edit this file manually — regenerate with: tsp compile .
# This file contains Pydantic v2 models and enums generated from TypeSpec.
from __future__ import annotations

from enum import Enum
from typing import Literal
from pydantic import BaseModel, Field

from .common import RendererConfig

class Transport(str, Enum):
    local = "local"
    ssh = "ssh"
    wireguard = "wireguard"

class Context(BaseModel):
    id: str
    sources: list[Source]
    renderer: RendererConfig | None = Field(None)

class Source(BaseModel):
    transport: Transport
    location: str
    source_alias: str | None = Field(None)
    slug: str
    renderer: RendererConfig | None = Field(None)

class ContextCreate(BaseModel):
    id: str
    sources: list[SourceCreate] | None = Field(None)
    renderer: RendererConfig | None = Field(None)

class SourceCreate(BaseModel):
    transport: Transport
    location: str
    source_alias: str | None = Field(None)
    renderer: RendererConfig | None = Field(None)

class ContextUpdate(BaseModel):
    renderer: RendererConfig | None = Field(None)

class ContextList(BaseModel):
    contexts: list[Context]

class SourceList(BaseModel):
    sources: list[Source]

class HealthResponse(BaseModel):
    status: Literal["ok"]

class ReadyResponse(BaseModel):
    status: Literal["ready"]
