# Generated by ariadne-codegen
# Source: ../graphql

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import RunOnEnum


class JsonForm(BaseModel):
    json_form: Optional["JsonFormJsonForm"] = Field(alias="jsonForm")


class JsonFormJsonForm(BaseModel):
    json_schema: Optional[Any] = Field(alias="jsonSchema")
    data: Optional[Any]
    ui_schema: Optional[Any] = Field(alias="uiSchema")
    base_schema: Optional[Any] = Field(alias="baseSchema")
    run_on: Optional[RunOnEnum] = Field(alias="runOn")
    devices: Optional[List[Optional["JsonFormJsonFormDevices"]]]
    groups: Optional[List[Optional["JsonFormJsonFormGroups"]]]
    interfaces: Optional[List[Optional["JsonFormJsonFormInterfaces"]]]
    clients: Optional[List[Optional["JsonFormJsonFormClients"]]]


class JsonFormJsonFormDevices(BaseModel):
    id: str
    hostname: Optional[str]


class JsonFormJsonFormGroups(BaseModel):
    id: str
    name: Optional[str]


class JsonFormJsonFormInterfaces(BaseModel):
    id: str
    name: Optional[str]
    device: Optional["JsonFormJsonFormInterfacesDevice"]


class JsonFormJsonFormInterfacesDevice(BaseModel):
    id: str
    hostname: Optional[str]


class JsonFormJsonFormClients(BaseModel):
    id: str
    macaddress: Optional[str]


JsonForm.model_rebuild()
JsonFormJsonForm.model_rebuild()
JsonFormJsonFormInterfaces.model_rebuild()
