{"openapi":"3.1.0","info":{"title":"Network Wiz Pro","description":"Network and cloud architecture diagrams with real device and vendor icons (Cisco, pfSense, AWS, Azure, GCP, Kubernetes, servers, databases, endpoints), nested zones with CIDRs, styled links, an inventory table, an editable draw.io export, plus a VLSM subnet planner. Diagram PNGs are attached as a zip (openaiFileResponse) so ChatGPT can display them with Code Interpreter.","version":"2.0.0"},"servers":[{"url":"https://cybrix.ai/networkwiz","description":"Network Wiz Pro API"}],"paths":{"/health":{"get":{"tags":["meta"],"summary":"Service health check","operationId":"health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-openai-isConsequential":false}},"/network":{"post":{"tags":["diagrams"],"summary":"Draw a network / cloud architecture diagram with device icons, zones and links","description":"Returns image_url (PNG), svg_url, drawio_url (editable), inventory_markdown, resolved_types, warnings; attaches the PNG.","operationId":"draw_network","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-openai-isConsequential":false}},"/icons":{"get":{"tags":["diagrams"],"summary":"Find icon types for a device, product or cloud service","operationId":"search_icons","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"e.g. firewall, postgres, azure load balancer","title":"Q"},"description":"e.g. firewall, postgres, azure load balancer"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":40,"minimum":1,"default":15,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-openai-isConsequential":false}},"/subnets":{"post":{"tags":["ip"],"summary":"Plan subnets (VLSM), split a network, or describe a CIDR","operationId":"plan_subnets","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubnetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-openai-isConsequential":false}}},"components":{"schemas":{"NetLink":{"properties":{"source":{"type":"string","title":"Source","description":"Node id."},"target":{"type":"string","title":"Target","description":"Node id."},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"Protocol, port, speed or VLAN."},"kind":{"anyOf":[{"type":"string","enum":["ethernet","fiber","wan","wireless","vpn","logical","trunk","serial","allowed","blocked"]},{"type":"null"}],"title":"Kind","description":"Preset line style."},"arrows":{"type":"string","enum":["forward","both","none","reverse"],"title":"Arrows","default":"forward"},"style":{"anyOf":[{"type":"string","enum":["solid","dashed","dotted","bold"]},{"type":"null"}],"title":"Style"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"}},"type":"object","required":["source","target"],"title":"NetLink"},"NetNode":{"properties":{"id":{"type":"string","title":"Id","description":"Unique id."},"label":{"type":"string","title":"Label","description":"Device name."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Device type or product, e.g. router, l3 switch, firewall, pfsense, web server, postgres, laptop, access point, aws lambda."},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip","description":"Address or subnet shown under the name."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Third line, e.g. model or VLAN."},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone","description":"Zone id."},"highlight":{"type":"boolean","title":"Highlight","default":false}},"type":"object","required":["id","label"],"title":"NetNode"},"NetZone":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label","description":"Zone name, e.g. DMZ, Office LAN, AWS VPC."},"cidr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cidr","description":"Shown under the zone name."},"parent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent","description":"Enclosing zone id for nesting."},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"Border colour name or hex."}},"type":"object","required":["id","label"],"title":"NetZone"},"NetworkRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"nodes":{"items":{"$ref":"#/components/schemas/NetNode"},"type":"array","maxItems":120,"minItems":1,"title":"Nodes"},"zones":{"items":{"$ref":"#/components/schemas/NetZone"},"type":"array","maxItems":40,"title":"Zones"},"links":{"items":{"$ref":"#/components/schemas/NetLink"},"type":"array","maxItems":300,"title":"Links"},"direction":{"type":"string","enum":["TB","LR"],"title":"Direction","description":"TB top-down (default) or LR left-right.","default":"TB"},"provider":{"anyOf":[{"type":"string","enum":["generic","onprem","aws","azure","gcp","k8s"]},{"type":"null"}],"title":"Provider","description":"Preferred icon set when a type is ambiguous."},"theme":{"type":"string","enum":["light","dark"],"title":"Theme","default":"light"},"compact":{"type":"boolean","title":"Compact","description":"Smaller icons and spacing for big diagrams.","default":false},"edges":{"type":"string","enum":["spline","ortho","polyline"],"title":"Edges","description":"Edge routing.","default":"spline"}},"type":"object","required":["nodes"],"title":"NetworkRequest"},"SubnetItem":{"properties":{"name":{"type":"string","title":"Name"},"hosts":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Hosts","description":"Hosts needed."},"prefix":{"anyOf":[{"type":"integer","maximum":128.0,"minimum":1.0},{"type":"null"}],"title":"Prefix","description":"Or a fixed prefix length."}},"type":"object","required":["name"],"title":"SubnetItem"},"SubnetRequest":{"properties":{"network":{"type":"string","title":"Network","description":"Parent network, e.g. 10.0.0.0/16."},"subnets":{"anyOf":[{"items":{"$ref":"#/components/schemas/SubnetItem"},"type":"array"},{"type":"null"}],"title":"Subnets","description":"VLSM allocation, largest first."},"split_prefix":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Split Prefix","description":"Or split evenly into this prefix."}},"type":"object","required":["network"],"title":"SubnetRequest"}}}}