{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/spectro-cloud/main/json-schema/spectro-cloud-v1-vlan-schema.json",
  "title": "v1VLAN",
  "description": "VLAN interface configuration",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/spectro-cloud-edge-mgmt-api-openapi.yml#/components/schemas/v1VLAN",
  "type": "object",
  "properties": {
    "bridgeName": {
      "description": "Name of the bridge this VLAN is a member of, empty if not part of any bridge",
      "type": "string"
    },
    "configStatus": {
      "description": "Detailed configuration status from networkctl",
      "type": "string"
    },
    "gateway": {
      "description": "Gateway IP address",
      "type": "string"
    },
    "ip": {
      "description": "IP address (required for static type)",
      "type": "string"
    },
    "mtu": {
      "description": "MTU for the VLAN interface",
      "type": "integer",
      "format": "int64"
    },
    "name": {
      "description": "VLAN interface name (e.g., ens32.100 or bond0.100)",
      "type": "string"
    },
    "nameservers": {
      "description": "DNS nameservers",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "parentName": {
      "description": "Parent interface name (NIC or Bond)",
      "type": "string"
    },
    "parentType": {
      "description": "Type of parent interface",
      "type": "string",
      "enum": [
        "nic",
        "bond"
      ]
    },
    "status": {
      "description": "Status of the VLAN interface (up/down/applying/unknown)",
      "type": "string"
    },
    "subnet": {
      "description": "Subnet mask (required for static type)",
      "type": "string"
    },
    "type": {
      "description": "Network configuration type",
      "type": "string",
      "enum": [
        "dhcp",
        "static"
      ]
    },
    "vlanID": {
      "description": "VLAN ID (1-4094)",
      "type": "string"
    }
  }
}