{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "device_management_ip": {
            "type": "string",
            "description": "Management IP of the Device"
        },
        "device_abstract_config": {
            "type": "object",
            "description": "JSON string of the device abstract config derived from VNC data model"
        },
        "additional_feature_params": {
            "type": "object",
            "additionalProperties": false,
            "description": "Additional feature specific parameters that are not defined in the VNC data model. These could be vendor specific parameters.",
            "properties": {
                "basic": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "ntp": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "ntp_boot_servers": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "title": "NTP Boot server",
                                        "examples": [
                                            "6.6.6.6"
                                        ]
                                    }
                                },
                                "ntp_servers": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "title": "NTP server",
                                        "examples": [
                                            "8.8.8.8"
                                        ]
                                    }
                                },
                                "time_zone": {
                                    "type": "string",
                                    "title": "Time Zone",
                                    "examples": [
                                        "America/Los_Angeles"
                                    ]
                                }
                            }
                        },
                        "name_servers": {
                            "type": "array",
                            "additionalProperties": false,
                            "items": {
                                "type": "string",
                                "Title": "Domain Name Server",
                                "examples": [
                                    "10.1.1.2",
                                    "11.1.1.2"
                                ]
                            }
                        },
                        "domain_name": {
                            "type": "string",
                            "title": "Domain Name",
                            "examples": [
                                "company.net"
                            ]
                        },
                        "snmp": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "communities": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                            "name": {
                                                "type": "string"
                                            },
                                            "readonly": {
                                                "type": "boolean",
                                                "default": true
                                            }
                                        },
                                        "required": [
                                            "name"
                                        ]
                                    }
                                }
                            }
                        },
                        "static_routes": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                    "subnets",
                                    "nexthop"
                                ],
                                "properties": {
                                    "subnets": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "title": "Subnet",
                                            "examples": [
                                                "10.1.1.0/24",
                                                "10.1.2.0/24"
                                            ]
                                        }
                                    },
                                    "nexthop": {
                                        "type": "string",
                                        "title": "Next hop IP",
                                        "examples": [
                                            "10.1.1.254"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "underlay_ip_clos": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "bgp_hold_time": {
                            "type": "integer",
                            "default": 90
                        }
                    }
                }
            }
        },
        "is_delete": {
            "type": "boolean",
            "description": "Set to true for config delete operation",
            "default": false
        },
        "is_ztp": {
            "type": "boolean",
            "description": "Set to true for greenfield fabric",
            "default": false
        },
        "fabric_fq_name": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "fabric_uuid": {
            "type": "string",
            "format": "uuid"
        }
    }
}