YAML model

Public topology file: topology.yml. Optional decorative sidecar: eve-presentation.yml. Canonical description: docs/yaml-model.md.

  • version: eve-iac/v1
  • Nodes keyed by n_1, n_2, … . name: is the EVE display hostname and may be duplicated. Link endpoints and configset keys use that IaC id, never the hostname.
  • Networks keyed by net_1, net_2, …, one key per canvas object, including internal, pnet, nat0, and private. name: (LAN) is the canvas label and is never the map key. Traffic filters are filter_1, filter_2, …. Tasks are t_1, t_2, …. A public key must never encode a native EVE identity.
  • Node/network icon is first-class, not attributes.icon
  • On reconcile to EVE, a managed node option absent from this file means the template default. Writing that default explicitly is the same value. icon: "", image: "", and an allowed empty text attribute are the empty string, and reconcile can send it. sat omitted and sat: -1 are any. An omitted configset is no boot-selector intent. Pull from EVE does not write those defaults back into the file.
  • configsets.<set>.<node> is the startup-config library. nodes.<node>.configset is the independent boot selector. default is the built-in EVE store, not a named library. Named sets start at id 2.
  • Checkbox node flags are public booleans (true / false). The codec turns EVE 0 / 1 into those booleans and writes 0 / 1 back. Network manage flags stay "0" / "1".
  • Link interface names come from live templates (eve_iac_interfaces), not from training data
  • MCP JSON (eve_iac_public) is the same public tree as this YAML. eve_iac_schema is lazy public structure (JSON Schema fragments), not lab data. Topology writes go through eve_iac_edit. Startup-config index/search/get go through eve_iac_config; put/delete through eve_iac_config_edit. AI MUST NOT filesystem-edit topology.yml, eve-presentation.yml, or configs/**. Humans may still edit YAML and configs in the VS Code editor. eve_iac_inspect is live observation, not desired YAML. Live eve_iac_link_quality / eve_iac_link_suspend do not rewrite this file. eve_iac_link_quality save: true persists NETEM into the UNL (admin, unlocked lab); omitted save is live-only. YAML source_impairment remains the deploy/reconcile desired state. There is no YAML suspend field. READ NARROWLY / WRITE NARROWLY / VALIDATE GLOBALLY / WRITE ATOMICALLY.
  • Semantic model: not a byte-identical .unl. YAML comments are not preserved.
  • Optional tasks: keys are stable IaC ids t_1, t_2, …. The live EVE task id is managed by the agent. type and data are opaque (HTML workbooks are type: public with base64 data) and are not identity.

Attribute keys are template-dependent and are not fully enumerated in the static JSON schema.

VPCS configs are VPCS scripts. SR Linux docker configs are JSON. Those languages are not interchangeable with Cisco CLI.