{ "module": "openapi_first.templates.vet_app", "content": { "path": "openapi_first.templates.vet_app", "docstring": "OpenAPI-first Veterinary Clinic application template.\n\nThis package contains a complete, runnable example of an OpenAPI-first\nveterinary clinic management service. It demonstrates all ``x-`` extension\nfields consumed by the ``react-openapi`` admin panel renderer.\n\nThe application manages five resources:\n\n- **Parents** — pet owners with contact details\n- **Vets** — veterinarians with specializations\n- **Treatments** — medical procedure catalog\n- **Pets** — animals with species, age, weight, and photos\n- **Appointments** — scheduled visits linking pets, vets, and treatments\n\nAll HTTP routes, methods, schemas, and operation bindings are defined\nin the OpenAPI specification (``openapi.yaml``). Every operation has an\nexplicit ``operationId`` that maps to a Python handler in ``routes.py``.\n\nThis file is a copyable template. It is not part of the ``openapi_first``\nlibrary API surface.\n\n----------------------------------------------------------------------\nOpenAPI x- extension fields demonstrated\n----------------------------------------------------------------------\n\nSchema-level extensions (display metadata for resource endpoints):\n\n ``x-primary-key`` (REQUIRED) Primary key property name\n ``x-display-format`` (REQUIRED) Human-readable label template\n ``x-list-columns`` (REQUIRED) Columns for the datatable\n\nProperty-level extensions (control UI rendering):\n\n ``x-label`` (REQUIRED) Human-readable field label\n ``x-order`` (REQUIRED) Field ordering in forms/detail\n ``x-description`` (optional) Helper text below form fields\n ``x-hidden`` (optional) Visibility in form / list / detail\n ``x-filterable`` (optional) Allows column filtering\n ``x-sortable`` (optional) Allows column sorting\n ``x-fk`` (optional) Foreign key — renders as dropdown\n ``x-fk.resource`` (REQUIRED for FK) Target resource name\n ``x-fk.prefetch`` (optional) Preload all FK options on mount\n ``x-ui-type`` (optional) Custom UI type (e.g. image upload)\n ``x-upload-url`` (optional) Upload endpoint for binary fields\n\n----------------------------------------------------------------------\nScaffolding via CLI\n----------------------------------------------------------------------\n\nCreate a new vet clinic service using the bundled template:\n\n openapi-first vet_app\n\nCreate the service in a custom directory:\n\n openapi-first vet_app my-vet-clinic\n\n----------------------------------------------------------------------\nClient Usage Example\n----------------------------------------------------------------------\n\n from openapi_first.loader import load_openapi\n from openapi_first.client import OpenAPIClient\n\n spec = load_openapi(\"openapi.yaml\")\n client = OpenAPIClient(spec)\n\n # List pets with pagination\n response = client.list_pets(query_params={\"limit\": 10, \"offset\": 0})\n\n # Create a pet with FK references\n response = client.create_pet(\n body={\"name\": \"Fido\", \"species\": \"dog\", \"parents\": [1, 2]}\n )\n\n # Upload a pet photo\n response = client.upload_pet_photo(\n path_params={\"id\": 1},\n body={\"file\": open(\"photo.jpg\", \"rb\")},\n )\n\n----------------------------------------------------------------------\nNon-Goals\n----------------------------------------------------------------------\n\nThis template is intentionally minimal and is NOT:\n- production-ready\n- persistent or concurrency-safe\n- a reference architecture for data storage\n\nIt exists solely as a copyable example for learning, testing, and\nbootstrapping OpenAPI-first services.\n\nThis package is not part of the ``openapi_first`` library API surface.", "objects": { "data": { "name": "data", "kind": "module", "path": "openapi_first.templates.vet_app.data", "signature": null, "docstring": "In-memory data store for the Veterinary Clinic example.\n\nThis module is NOT thread-safe and is intended for demos and scaffolds only.\n\nIt provides minimal, process-local data stores for the five veterinary\nclinic entities. Each store exposes standard CRUD operations backed by\na simple dictionary.\n\nThis module intentionally avoids:\n- persistence\n- concurrency guarantees\n- transactional semantics\n- validation beyond what Pydantic provides\n\nThis module is not part of the ``openapi_first`` library API surface.", "members": { "date": { "name": "date", "kind": "alias", "path": "openapi_first.templates.vet_app.data.date", "signature": "", "docstring": null }, "datetime": { "name": "datetime", "kind": "alias", "path": "openapi_first.templates.vet_app.data.datetime", "signature": "", "docstring": null }, "timezone": { "name": "timezone", "kind": "alias", "path": "openapi_first.templates.vet_app.data.timezone", "signature": "", "docstring": null }, "Parent": { "name": "Parent", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Parent", "signature": "", "docstring": null }, "ParentCreate": { "name": "ParentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.data.ParentCreate", "signature": "", "docstring": null }, "Vet": { "name": "Vet", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Vet", "signature": "", "docstring": null }, "VetCreate": { "name": "VetCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.data.VetCreate", "signature": "", "docstring": null }, "Treatment": { "name": "Treatment", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Treatment", "signature": "", "docstring": null }, "TreatmentCreate": { "name": "TreatmentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.data.TreatmentCreate", "signature": "", "docstring": null }, "Procedure": { "name": "Procedure", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Procedure", "signature": "", "docstring": null }, "BasicNote": { "name": "BasicNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.BasicNote", "signature": "", "docstring": null }, "HeartRateNote": { "name": "HeartRateNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.HeartRateNote", "signature": "", "docstring": null }, "DentalNote": { "name": "DentalNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.DentalNote", "signature": "", "docstring": null }, "VaccineNote": { "name": "VaccineNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.VaccineNote", "signature": "", "docstring": null }, "PreOpNote": { "name": "PreOpNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.PreOpNote", "signature": "", "docstring": null }, "SurgeryNote": { "name": "SurgeryNote", "kind": "alias", "path": "openapi_first.templates.vet_app.data.SurgeryNote", "signature": "", "docstring": null }, "Pet": { "name": "Pet", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Pet", "signature": "", "docstring": null }, "PetCreate": { "name": "PetCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.data.PetCreate", "signature": "", "docstring": null }, "Appointment": { "name": "Appointment", "kind": "alias", "path": "openapi_first.templates.vet_app.data.Appointment", "signature": "", "docstring": null }, "AppointmentCreate": { "name": "AppointmentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.data.AppointmentCreate", "signature": "", "docstring": null }, "list_parents": { "name": "list_parents", "kind": "function", "path": "openapi_first.templates.vet_app.data.list_parents", "signature": "", "docstring": null }, "get_parent": { "name": "get_parent", "kind": "function", "path": "openapi_first.templates.vet_app.data.get_parent", "signature": "", "docstring": null }, "create_parent": { "name": "create_parent", "kind": "function", "path": "openapi_first.templates.vet_app.data.create_parent", "signature": "", "docstring": null }, "update_parent": { "name": "update_parent", "kind": "function", "path": "openapi_first.templates.vet_app.data.update_parent", "signature": "", "docstring": null }, "delete_parent": { "name": "delete_parent", "kind": "function", "path": "openapi_first.templates.vet_app.data.delete_parent", "signature": "", "docstring": null }, "list_vets": { "name": "list_vets", "kind": "function", "path": "openapi_first.templates.vet_app.data.list_vets", "signature": "", "docstring": null }, "get_vet": { "name": "get_vet", "kind": "function", "path": "openapi_first.templates.vet_app.data.get_vet", "signature": "", "docstring": null }, "create_vet": { "name": "create_vet", "kind": "function", "path": "openapi_first.templates.vet_app.data.create_vet", "signature": "", "docstring": null }, "update_vet": { "name": "update_vet", "kind": "function", "path": "openapi_first.templates.vet_app.data.update_vet", "signature": "", "docstring": null }, "delete_vet": { "name": "delete_vet", "kind": "function", "path": "openapi_first.templates.vet_app.data.delete_vet", "signature": "", "docstring": null }, "list_treatments": { "name": "list_treatments", "kind": "function", "path": "openapi_first.templates.vet_app.data.list_treatments", "signature": "", "docstring": null }, "get_treatment": { "name": "get_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.data.get_treatment", "signature": "", "docstring": null }, "create_treatment": { "name": "create_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.data.create_treatment", "signature": "", "docstring": null }, "update_treatment": { "name": "update_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.data.update_treatment", "signature": "", "docstring": null }, "delete_treatment": { "name": "delete_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.data.delete_treatment", "signature": "", "docstring": null }, "list_pets": { "name": "list_pets", "kind": "function", "path": "openapi_first.templates.vet_app.data.list_pets", "signature": "", "docstring": null }, "get_pet": { "name": "get_pet", "kind": "function", "path": "openapi_first.templates.vet_app.data.get_pet", "signature": "", "docstring": null }, "create_pet": { "name": "create_pet", "kind": "function", "path": "openapi_first.templates.vet_app.data.create_pet", "signature": "", "docstring": null }, "update_pet": { "name": "update_pet", "kind": "function", "path": "openapi_first.templates.vet_app.data.update_pet", "signature": "", "docstring": null }, "delete_pet": { "name": "delete_pet", "kind": "function", "path": "openapi_first.templates.vet_app.data.delete_pet", "signature": "", "docstring": null }, "list_appointments": { "name": "list_appointments", "kind": "function", "path": "openapi_first.templates.vet_app.data.list_appointments", "signature": "", "docstring": null }, "get_appointment": { "name": "get_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.data.get_appointment", "signature": "", "docstring": null }, "create_appointment": { "name": "create_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.data.create_appointment", "signature": "", "docstring": null }, "update_appointment": { "name": "update_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.data.update_appointment", "signature": "", "docstring": null }, "delete_appointment": { "name": "delete_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.data.delete_appointment", "signature": "", "docstring": null } } }, "main": { "name": "main", "kind": "module", "path": "openapi_first.templates.vet_app.main", "signature": null, "docstring": "Application entry point for an OpenAPI-first Veterinary Clinic service.\n\nThis module constructs a FastAPI application exclusively from an\nOpenAPI specification and a handler namespace, without using\ndecorator-driven routing.\n\nAll HTTP routes, methods, request/response schemas, and operation\nbindings are defined in the OpenAPI document referenced by\n``openapi_path``. Python callables defined in the ``routes`` module are\nbound to OpenAPI operations strictly via ``operationId``.\n\nThis module contains no routing logic, persistence concerns, or\nframework configuration beyond application assembly.\n\nDesign guarantees:\n- OpenAPI is the single source of truth\n- No undocumented routes can exist\n- Every OpenAPI operationId must resolve to exactly one handler\n- All contract violations fail at application startup\n\nThis file is intended to be used as the ASGI entry point.\n\nExample:\n uvicorn main:app", "members": { "asynccontextmanager": { "name": "asynccontextmanager", "kind": "alias", "path": "openapi_first.templates.vet_app.main.asynccontextmanager", "signature": "", "docstring": null }, "CORSMiddleware": { "name": "CORSMiddleware", "kind": "alias", "path": "openapi_first.templates.vet_app.main.CORSMiddleware", "signature": "", "docstring": null }, "OpenAPIFirstApp": { "name": "OpenAPIFirstApp", "kind": "class", "path": "openapi_first.templates.vet_app.main.OpenAPIFirstApp", "signature": "", "docstring": "FastAPI application enforcing OpenAPI-first design.\n\nNotes:\n **Responsibilities:**\n\n - `OpenAPIFirstApp` subclasses `FastAPI` and replaces manual route\n registration with OpenAPI-driven binding.\n - All routes are derived from the provided OpenAPI specification,\n and each ``operationId`` is mapped to a Python function in the\n supplied routes module.\n - Auth dependencies are auto-injected from the spec's\n ``securitySchemes`` and per-operation ``security`` fields.\n\n **Guarantees:**\n\n - No route can exist without an OpenAPI declaration.\n - No OpenAPI operation can exist without a handler.\n - Swagger UI and ``/openapi.json`` always reflect the provided spec.\n - Handler functions remain framework-agnostic and testable.\n - Auth enforcement is driven entirely by the spec — no manual\n middleware or decorators required.\n\nExample:\n ```python\n from openapi_first import OpenAPIFirstApp\n import app.routes as routes\n\n app = OpenAPIFirstApp(\n openapi_path=\"app/openapi.json\",\n routes_module=routes,\n title=\"Example Service\",\n )\n ```", "members": { "openapi": { "name": "openapi", "kind": "attribute", "path": "openapi_first.templates.vet_app.main.OpenAPIFirstApp.openapi", "signature": "", "docstring": null } } }, "routes": { "name": "routes", "kind": "alias", "path": "openapi_first.templates.vet_app.main.routes", "signature": "", "docstring": null }, "lifespan": { "name": "lifespan", "kind": "function", "path": "openapi_first.templates.vet_app.main.lifespan", "signature": "", "docstring": null }, "app": { "name": "app", "kind": "attribute", "path": "openapi_first.templates.vet_app.main.app", "signature": null, "docstring": null } } }, "models": { "name": "models", "kind": "module", "path": "openapi_first.templates.vet_app.models", "signature": null, "docstring": null, "members": { "date": { "name": "date", "kind": "alias", "path": "openapi_first.templates.vet_app.models.date", "signature": "", "docstring": null }, "datetime": { "name": "datetime", "kind": "alias", "path": "openapi_first.templates.vet_app.models.datetime", "signature": "", "docstring": null }, "Annotated": { "name": "Annotated", "kind": "alias", "path": "openapi_first.templates.vet_app.models.Annotated", "signature": "", "docstring": null }, "Literal": { "name": "Literal", "kind": "alias", "path": "openapi_first.templates.vet_app.models.Literal", "signature": "", "docstring": null }, "BaseModel": { "name": "BaseModel", "kind": "alias", "path": "openapi_first.templates.vet_app.models.BaseModel", "signature": "", "docstring": null }, "Field": { "name": "Field", "kind": "alias", "path": "openapi_first.templates.vet_app.models.Field", "signature": "", "docstring": null }, "Metadata": { "name": "Metadata", "kind": "class", "path": "openapi_first.templates.vet_app.models.Metadata", "signature": "", "docstring": null, "members": { "createdOn": { "name": "createdOn", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Metadata.createdOn", "signature": null, "docstring": null }, "updatedOn": { "name": "updatedOn", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Metadata.updatedOn", "signature": null, "docstring": null } } }, "ParentBase": { "name": "ParentBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.ParentBase", "signature": "", "docstring": null, "members": { "name": { "name": "name", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ParentBase.name", "signature": null, "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ParentBase.email", "signature": null, "docstring": null }, "phone": { "name": "phone", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ParentBase.phone", "signature": null, "docstring": null }, "metadata": { "name": "metadata", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ParentBase.metadata", "signature": null, "docstring": null } } }, "ParentCreate": { "name": "ParentCreate", "kind": "class", "path": "openapi_first.templates.vet_app.models.ParentCreate", "signature": "", "docstring": null }, "Parent": { "name": "Parent", "kind": "class", "path": "openapi_first.templates.vet_app.models.Parent", "signature": "", "docstring": null, "members": { "id": { "name": "id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Parent.id", "signature": null, "docstring": null } } }, "VetBase": { "name": "VetBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.VetBase", "signature": "", "docstring": null, "members": { "name": { "name": "name", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VetBase.name", "signature": null, "docstring": null }, "specialty": { "name": "specialty", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VetBase.specialty", "signature": null, "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VetBase.email", "signature": null, "docstring": null }, "phone": { "name": "phone", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VetBase.phone", "signature": null, "docstring": null }, "metadata": { "name": "metadata", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VetBase.metadata", "signature": null, "docstring": null } } }, "VetCreate": { "name": "VetCreate", "kind": "class", "path": "openapi_first.templates.vet_app.models.VetCreate", "signature": "", "docstring": null }, "Vet": { "name": "Vet", "kind": "class", "path": "openapi_first.templates.vet_app.models.Vet", "signature": "", "docstring": null, "members": { "id": { "name": "id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Vet.id", "signature": null, "docstring": null } } }, "ProcedureNoteBase": { "name": "ProcedureNoteBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.ProcedureNoteBase", "signature": "", "docstring": null, "members": { "summary": { "name": "summary", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ProcedureNoteBase.summary", "signature": null, "docstring": null }, "details": { "name": "details", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ProcedureNoteBase.details", "signature": null, "docstring": null } } }, "BasicNote": { "name": "BasicNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.BasicNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.BasicNote.noteType", "signature": null, "docstring": null } } }, "HeartRateNote": { "name": "HeartRateNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.HeartRateNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.HeartRateNote.noteType", "signature": null, "docstring": null }, "bpm": { "name": "bpm", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.HeartRateNote.bpm", "signature": null, "docstring": null } } }, "DentalNote": { "name": "DentalNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.DentalNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.DentalNote.noteType", "signature": null, "docstring": null }, "procedureType": { "name": "procedureType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.DentalNote.procedureType", "signature": null, "docstring": null }, "teeth": { "name": "teeth", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.DentalNote.teeth", "signature": null, "docstring": null } } }, "VaccineNote": { "name": "VaccineNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.VaccineNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VaccineNote.noteType", "signature": null, "docstring": null }, "medicine": { "name": "medicine", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VaccineNote.medicine", "signature": null, "docstring": null }, "leg": { "name": "leg", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.VaccineNote.leg", "signature": null, "docstring": null } } }, "PreOpNote": { "name": "PreOpNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.PreOpNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PreOpNote.noteType", "signature": null, "docstring": null }, "heartRate": { "name": "heartRate", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PreOpNote.heartRate", "signature": null, "docstring": null }, "temperature": { "name": "temperature", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PreOpNote.temperature", "signature": null, "docstring": null } } }, "SurgeryNote": { "name": "SurgeryNote", "kind": "class", "path": "openapi_first.templates.vet_app.models.SurgeryNote", "signature": "", "docstring": null, "members": { "noteType": { "name": "noteType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.SurgeryNote.noteType", "signature": null, "docstring": null }, "surgeryType": { "name": "surgeryType", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.SurgeryNote.surgeryType", "signature": null, "docstring": null }, "complications": { "name": "complications", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.SurgeryNote.complications", "signature": null, "docstring": null } } }, "ProcedureNotes": { "name": "ProcedureNotes", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.ProcedureNotes", "signature": null, "docstring": null }, "Procedure": { "name": "Procedure", "kind": "class", "path": "openapi_first.templates.vet_app.models.Procedure", "signature": "", "docstring": null, "members": { "name": { "name": "name", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Procedure.name", "signature": null, "docstring": null }, "description": { "name": "description", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Procedure.description", "signature": null, "docstring": null }, "cost": { "name": "cost", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Procedure.cost", "signature": null, "docstring": null }, "notes": { "name": "notes", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Procedure.notes", "signature": null, "docstring": null } } }, "TreatmentBase": { "name": "TreatmentBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.TreatmentBase", "signature": "", "docstring": null, "members": { "label": { "name": "label", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.TreatmentBase.label", "signature": null, "docstring": null }, "description": { "name": "description", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.TreatmentBase.description", "signature": null, "docstring": null }, "metadata": { "name": "metadata", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.TreatmentBase.metadata", "signature": null, "docstring": null } } }, "TreatmentCreate": { "name": "TreatmentCreate", "kind": "class", "path": "openapi_first.templates.vet_app.models.TreatmentCreate", "signature": "", "docstring": null }, "Treatment": { "name": "Treatment", "kind": "class", "path": "openapi_first.templates.vet_app.models.Treatment", "signature": "", "docstring": null, "members": { "id": { "name": "id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Treatment.id", "signature": null, "docstring": null } } }, "PetBase": { "name": "PetBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.PetBase", "signature": "", "docstring": null, "members": { "name": { "name": "name", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.name", "signature": null, "docstring": null }, "species": { "name": "species", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.species", "signature": null, "docstring": null }, "age": { "name": "age", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.age", "signature": null, "docstring": null }, "weight": { "name": "weight", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.weight", "signature": null, "docstring": null }, "birthDate": { "name": "birthDate", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.birthDate", "signature": null, "docstring": null }, "photo": { "name": "photo", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.photo", "signature": null, "docstring": null }, "metadata": { "name": "metadata", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetBase.metadata", "signature": null, "docstring": null } } }, "PetCreate": { "name": "PetCreate", "kind": "class", "path": "openapi_first.templates.vet_app.models.PetCreate", "signature": "", "docstring": null, "members": { "parent_ids": { "name": "parent_ids", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.PetCreate.parent_ids", "signature": null, "docstring": null } } }, "Pet": { "name": "Pet", "kind": "class", "path": "openapi_first.templates.vet_app.models.Pet", "signature": "", "docstring": null, "members": { "id": { "name": "id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Pet.id", "signature": null, "docstring": null }, "parents": { "name": "parents", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Pet.parents", "signature": null, "docstring": null } } }, "AppointmentBase": { "name": "AppointmentBase", "kind": "class", "path": "openapi_first.templates.vet_app.models.AppointmentBase", "signature": "", "docstring": null, "members": { "date": { "name": "date", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentBase.date", "signature": null, "docstring": null }, "notes": { "name": "notes", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentBase.notes", "signature": null, "docstring": null }, "procedures": { "name": "procedures", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentBase.procedures", "signature": null, "docstring": null }, "metadata": { "name": "metadata", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentBase.metadata", "signature": null, "docstring": null } } }, "AppointmentCreate": { "name": "AppointmentCreate", "kind": "class", "path": "openapi_first.templates.vet_app.models.AppointmentCreate", "signature": "", "docstring": null, "members": { "pet_id": { "name": "pet_id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentCreate.pet_id", "signature": null, "docstring": null }, "vet_id": { "name": "vet_id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentCreate.vet_id", "signature": null, "docstring": null }, "treatment_id": { "name": "treatment_id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.AppointmentCreate.treatment_id", "signature": null, "docstring": null } } }, "Appointment": { "name": "Appointment", "kind": "class", "path": "openapi_first.templates.vet_app.models.Appointment", "signature": "", "docstring": null, "members": { "id": { "name": "id", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Appointment.id", "signature": null, "docstring": null }, "pet": { "name": "pet", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Appointment.pet", "signature": null, "docstring": null }, "vet": { "name": "vet", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Appointment.vet", "signature": null, "docstring": null }, "treatment": { "name": "treatment", "kind": "attribute", "path": "openapi_first.templates.vet_app.models.Appointment.treatment", "signature": null, "docstring": null } } } } }, "routes": { "name": "routes", "kind": "module", "path": "openapi_first.templates.vet_app.routes", "signature": null, "docstring": "Veterinary Clinic route handlers bound via OpenAPI operationId.\n\nHandlers explicitly control HTTP response status codes to ensure runtime\nbehavior matches the OpenAPI contract. Domain models defined using\nPydantic are used for request and response payloads.\n\nNo routing decorators, path definitions, or implicit framework behavior\nappear in this module. All routing, HTTP methods, and schemas are defined\nin the OpenAPI specification.", "members": { "Response": { "name": "Response", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.Response", "signature": "", "docstring": null }, "HTTPException": { "name": "HTTPException", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.HTTPException", "signature": "", "docstring": null }, "UploadFile": { "name": "UploadFile", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.UploadFile", "signature": "", "docstring": null }, "StreamingResponse": { "name": "StreamingResponse", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.StreamingResponse", "signature": "", "docstring": null }, "subscribe": { "name": "subscribe", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.subscribe", "signature": "", "docstring": null }, "unsubscribe": { "name": "unsubscribe", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.unsubscribe", "signature": "", "docstring": null }, "ParentCreate": { "name": "ParentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.ParentCreate", "signature": "", "docstring": null }, "VetCreate": { "name": "VetCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.VetCreate", "signature": "", "docstring": null }, "TreatmentCreate": { "name": "TreatmentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.TreatmentCreate", "signature": "", "docstring": null }, "PetCreate": { "name": "PetCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.PetCreate", "signature": "", "docstring": null }, "AppointmentCreate": { "name": "AppointmentCreate", "kind": "alias", "path": "openapi_first.templates.vet_app.routes.AppointmentCreate", "signature": "", "docstring": null }, "list_parents": { "name": "list_parents", "kind": "function", "path": "openapi_first.templates.vet_app.routes.list_parents", "signature": "", "docstring": "List parents (paginated).\n\nParameters\n----------\nlimit : int\n Maximum number of records to return.\noffset : int\n Number of records to skip.\n\nReturns\n-------\ndict\n Paginated response with ``total`` and ``items``." }, "create_parent": { "name": "create_parent", "kind": "function", "path": "openapi_first.templates.vet_app.routes.create_parent", "signature": "", "docstring": "Create a parent.\n\nParameters\n----------\npayload : ParentCreate\n Parent data excluding the ``id`` field.\n\nReturns\n-------\nParent\n The newly created parent." }, "get_parent": { "name": "get_parent", "kind": "function", "path": "openapi_first.templates.vet_app.routes.get_parent", "signature": "", "docstring": "Retrieve a single parent by ID.\n\nParameters\n----------\nid : int\n Identifier of the parent.\n\nReturns\n-------\nParent\n The requested parent.\n\nRaises\n------\nHTTPException\n 404 if the parent does not exist." }, "update_parent": { "name": "update_parent", "kind": "function", "path": "openapi_first.templates.vet_app.routes.update_parent", "signature": "", "docstring": "Update an existing parent.\n\nParameters\n----------\nid : int\n Identifier of the parent.\npayload : ParentCreate\n Updated parent data.\n\nReturns\n-------\nParent\n The updated parent.\n\nRaises\n------\nHTTPException\n 404 if the parent does not exist." }, "delete_parent": { "name": "delete_parent", "kind": "function", "path": "openapi_first.templates.vet_app.routes.delete_parent", "signature": "", "docstring": "Delete an existing parent.\n\nParameters\n----------\nid : int\n Identifier of the parent.\n\nRaises\n------\nHTTPException\n 404 if the parent does not exist." }, "list_vets": { "name": "list_vets", "kind": "function", "path": "openapi_first.templates.vet_app.routes.list_vets", "signature": "", "docstring": "List vets (paginated)." }, "create_vet": { "name": "create_vet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.create_vet", "signature": "", "docstring": "Create a vet." }, "get_vet": { "name": "get_vet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.get_vet", "signature": "", "docstring": "Retrieve a single vet by ID." }, "update_vet": { "name": "update_vet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.update_vet", "signature": "", "docstring": "Update an existing vet." }, "delete_vet": { "name": "delete_vet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.delete_vet", "signature": "", "docstring": "Delete an existing vet." }, "list_treatments": { "name": "list_treatments", "kind": "function", "path": "openapi_first.templates.vet_app.routes.list_treatments", "signature": "", "docstring": "List treatments (catalogue).\n\nReturns\n-------\nlist[Treatment]\n A list of treatment domain objects." }, "create_treatment": { "name": "create_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.create_treatment", "signature": "", "docstring": "Add a treatment (admin only)." }, "get_treatment": { "name": "get_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.get_treatment", "signature": "", "docstring": "Retrieve a single treatment by ID." }, "update_treatment": { "name": "update_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.update_treatment", "signature": "", "docstring": "Update an existing treatment." }, "delete_treatment": { "name": "delete_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.delete_treatment", "signature": "", "docstring": "Delete an existing treatment." }, "list_pets": { "name": "list_pets", "kind": "function", "path": "openapi_first.templates.vet_app.routes.list_pets", "signature": "", "docstring": "List pets (paginated)." }, "create_pet": { "name": "create_pet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.create_pet", "signature": "", "docstring": "Create a pet." }, "get_pet": { "name": "get_pet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.get_pet", "signature": "", "docstring": "Retrieve a single pet by ID." }, "update_pet": { "name": "update_pet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.update_pet", "signature": "", "docstring": "Update an existing pet." }, "delete_pet": { "name": "delete_pet", "kind": "function", "path": "openapi_first.templates.vet_app.routes.delete_pet", "signature": "", "docstring": "Delete an existing pet." }, "upload_pet_photo": { "name": "upload_pet_photo", "kind": "function", "path": "openapi_first.templates.vet_app.routes.upload_pet_photo", "signature": "", "docstring": "Upload a pet photo.\n\nParameters\n----------\nid : int\n Identifier of the pet.\nfile : UploadFile\n Image file to upload.\n\nReturns\n-------\ndict\n A confirmation with the pet ID." }, "list_appointments": { "name": "list_appointments", "kind": "function", "path": "openapi_first.templates.vet_app.routes.list_appointments", "signature": "", "docstring": "List appointments (paginated, filterable)." }, "create_appointment": { "name": "create_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.create_appointment", "signature": "", "docstring": "Create an appointment." }, "get_appointment": { "name": "get_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.get_appointment", "signature": "", "docstring": "Retrieve a single appointment by ID." }, "update_appointment": { "name": "update_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.update_appointment", "signature": "", "docstring": "Update an existing appointment." }, "delete_appointment": { "name": "delete_appointment", "kind": "function", "path": "openapi_first.templates.vet_app.routes.delete_appointment", "signature": "", "docstring": "Delete an existing appointment." }, "stream_actions": { "name": "stream_actions", "kind": "function", "path": "openapi_first.templates.vet_app.routes.stream_actions", "signature": "", "docstring": "Stream animal actions via SSE, scoped to a pet's species." } } }, "sse": { "name": "sse", "kind": "module", "path": "openapi_first.templates.vet_app.sse", "signature": null, "docstring": null, "members": { "asyncio": { "name": "asyncio", "kind": "alias", "path": "openapi_first.templates.vet_app.sse.asyncio", "signature": "", "docstring": null }, "random": { "name": "random", "kind": "alias", "path": "openapi_first.templates.vet_app.sse.random", "signature": "", "docstring": null }, "json": { "name": "json", "kind": "alias", "path": "openapi_first.templates.vet_app.sse.json", "signature": "", "docstring": null }, "subscribe": { "name": "subscribe", "kind": "function", "path": "openapi_first.templates.vet_app.sse.subscribe", "signature": "", "docstring": null }, "unsubscribe": { "name": "unsubscribe", "kind": "function", "path": "openapi_first.templates.vet_app.sse.unsubscribe", "signature": "", "docstring": null } } }, "test_vet_app": { "name": "test_vet_app", "kind": "module", "path": "openapi_first.templates.vet_app.test_vet_app", "signature": null, "docstring": "End-to-end tests for the OpenAPI-first Veterinary Clinic example app.\n\nThese tests validate that all CRUD operations behave correctly\nagainst the in-memory mock data store using Pydantic models.", "members": { "TestClient": { "name": "TestClient", "kind": "alias", "path": "openapi_first.templates.vet_app.test_vet_app.TestClient", "signature": "", "docstring": null }, "app": { "name": "app", "kind": "alias", "path": "openapi_first.templates.vet_app.test_vet_app.app", "signature": "", "docstring": null }, "load_openapi": { "name": "load_openapi", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.load_openapi", "signature": "", "docstring": "Load and validate an OpenAPI 3.x specification from disk.\n\nArgs:\n path (str | Path):\n Filesystem path to an OpenAPI specification file. Supported\n extensions: `.json`, `.yaml`, `.yml`.\n\nReturns:\n dict[str, Any]:\n Parsed and validated OpenAPI specification.\n\nRaises:\n OpenAPISpecLoadError:\n If the file does not exist, cannot be parsed, or fails OpenAPI\n schema validation.\n\nNotes:\n **Guarantees:**\n\n - The specification is parsed based on file extension and validated\n using a strict OpenAPI schema validator.\n - Any error results in an immediate exception, preventing\n application startup." }, "OpenAPIClient": { "name": "OpenAPIClient", "kind": "class", "path": "openapi_first.templates.vet_app.test_vet_app.OpenAPIClient", "signature": "", "docstring": "OpenAPI-first HTTP client (`httpx`-based).\n\nNotes:\n **Responsibilities:**\n\n - This client derives all callable methods directly from an\n OpenAPI 3.x specification. Each `operationId` becomes a method\n on the client instance.\n\n **Guarantees:**\n\n - One callable per `operationId`.\n - Explicit parameters (path, query, headers, body).\n - No implicit schema inference or mutation.\n - Returns raw `httpx.Response` objects.\n - No response validation or deserialization.\n\nExample:\n ```python\n from openapi_first import loader, client\n\n spec = loader.load_openapi(\"openapi.yaml\")\n\n api = client.OpenAPIClient(\n spec=spec,\n base_url=\"http://localhost:8000\",\n )\n\n # Call operationId: getUser\n response = api.getUser(\n path_params={\"user_id\": 123}\n )\n\n print(response.status_code)\n print(response.json())\n ```", "members": { "spec": { "name": "spec", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.OpenAPIClient.spec", "signature": "", "docstring": null }, "base_url": { "name": "base_url", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.OpenAPIClient.base_url", "signature": "", "docstring": null }, "client": { "name": "client", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.OpenAPIClient.client", "signature": "", "docstring": null }, "operations": { "name": "operations", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.OpenAPIClient.operations", "signature": "", "docstring": null } } }, "test_client": { "name": "test_client", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.test_client", "signature": null, "docstring": null }, "spec": { "name": "spec", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.spec", "signature": null, "docstring": null }, "client": { "name": "client", "kind": "attribute", "path": "openapi_first.templates.vet_app.test_vet_app.client", "signature": null, "docstring": null }, "test_list_parents": { "name": "test_list_parents", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_list_parents", "signature": "", "docstring": "List parents returns paginated response." }, "test_create_parent": { "name": "test_create_parent", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_create_parent", "signature": "", "docstring": "Creating a parent returns 201 with the created entity." }, "test_get_parent": { "name": "test_get_parent", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_get_parent", "signature": "", "docstring": "Get parent by ID returns the entity." }, "test_update_parent": { "name": "test_update_parent", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_update_parent", "signature": "", "docstring": "Update parent replaces its values." }, "test_delete_parent": { "name": "test_delete_parent", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_delete_parent", "signature": "", "docstring": "Delete parent returns 204 and removes the entity." }, "test_list_vets": { "name": "test_list_vets", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_list_vets", "signature": "", "docstring": "List vets returns paginated response." }, "test_create_vet": { "name": "test_create_vet", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_create_vet", "signature": "", "docstring": "Creating a vet returns 201." }, "test_list_treatments": { "name": "test_list_treatments", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_list_treatments", "signature": "", "docstring": "List treatments returns an array." }, "test_create_treatment": { "name": "test_create_treatment", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_create_treatment", "signature": "", "docstring": "Creating a treatment returns 201." }, "test_create_pet": { "name": "test_create_pet", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_create_pet", "signature": "", "docstring": "Creating a pet links FK references." }, "test_upload_pet_photo": { "name": "test_upload_pet_photo", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_upload_pet_photo", "signature": "", "docstring": "Upload pet photo returns 200." }, "test_list_appointments": { "name": "test_list_appointments", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_list_appointments", "signature": "", "docstring": "List appointments returns paginated response with filter params." }, "test_full_appointment_lifecycle": { "name": "test_full_appointment_lifecycle", "kind": "function", "path": "openapi_first.templates.vet_app.test_vet_app.test_full_appointment_lifecycle", "signature": "", "docstring": "Create a parent, vet, treatment, pet, then an appointment." } } } } } }