# -*- coding: utf-8 -*-

##
# Copyright 2015 Telefonica Investigacion y Desarrollo, S.A.U.
# This file is part of openvim
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##

''' Definition of dictionaries schemas used by validating input
    These dictionaries are validated using jsonschema library
'''
__author__="Alfonso Tierno"
__date__ ="$10-jul-2014 12:07:15$"

#
# SCHEMAS to validate input data
#

path_schema = {"type": "string", "maxLength": 255, "pattern": "^(\.){0,2}(/[^/\"':{}\(\)]+)+$"}
http_schema = {"type": "string", "pattern": "^https?://[^'\"=]+$"}
port_schema = {"type": "integer","minimum": 1, "maximun": 65534}
ip_schema = {"type": "string", "pattern": "^([0-9]{1,3}.){3}[0-9]{1,3}$"}
cidr_schema = {"type": "string", "pattern": "^([0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$"}
name_schema = {"type": "string", "minLength": 1, "maxLength": 255, "pattern": "^[^,;()'\"]+$"}
nameshort_schema = {"type": "string", "minLength": 1, "maxLength": 64, "pattern": "^[^,;()'\"]+$"}
nametiny_schema = {"type": "string", "minLength": 1, "maxLength": 12, "pattern": "^[^,;()'\"]+$"}
xml_text_schema = {"type": "string", "minLength": 1, "maxLength": 1000, "pattern": "^[^']+$"}
description_schema = {"type": ["string", "null"], "maxLength": 255, "pattern": "^[^'\"]+$"}
id_schema_fake = {"type": "string", "minLength": 2, "maxLength": 36}
                  # "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
id_schema = {"type": "string", "pattern": "^[a-fA-F0-9]{8}(-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}$"}
pci_schema = {"type": "string", "pattern": "^[0-9a-fA-F]{4}(:[0-9a-fA-F]{2}){2}\.[0-9a-fA-F]$"}
# used by VIO neutron-port-show <host_moid>-<domain>:<bus>:<device>.<function>-<VF-id>
pci_extended_schema = {"type": "string", "pattern": "^([0-9a-fA-F]{4}-)?[0-9a-fA-F]{4}(:[0-9a-fA-F]{2}){2}"
                                                     "\.[0-9a-fA-F](-[0-9a-fA-F]{3})?$"}
bandwidth_schema = {"type": "string", "pattern": "^[0-9]+ *([MG]bps)?$"}
integer0_schema = {"type": "integer", "minimum": 0}
integer1_schema = {"type": "integer", "minimum": 1}
vlan_schema = {"type": "integer", "minimum": 1, "maximun": 4095}
vlan1000_schema = {"type": "integer", "minimum": 1000, "maximun": 4095}
mac_schema = {"type": "string", "pattern": "^[0-9a-fA-F][02468aceACE](:[0-9a-fA-F]{2}){5}$"}
            # must be unicast LSB bit of MSB byte ==0
net_bind_schema = {"oneOf": [
    {"type": "null"},
    {"type": "string", "pattern":
        "^(default|((bridge|macvtap):[0-9a-zA-Z\.\-]{1,50})|openflow:[/0-9a-zA-Z\.\-]{1,50}(:vlan)?)$"}
]}
yes_no_schema = {"type": "string", "enum": ["yes", "no"]}
log_level_schema = {"type": "string", "enum":["DEBUG", "INFO", "WARNING","ERROR","CRITICAL"]}

config_schema = {
    "title": "main configuration information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties":{
        "http_port": port_schema,
        "http_admin_port": port_schema,
        "http_host": nameshort_schema,
        "http_url_prefix": path_schema, # it does not work yet; it's supposed to be the base path to be used by bottle, but it must be explicitly declared
        "db_host": nameshort_schema,
        "db_user": nameshort_schema,
        "db_passwd": {"type": "string"},
        "db_name": nameshort_schema,
        "of_controller_ip": ip_schema,
        "of_controller_port": port_schema,
        "of_controller_dpid": nameshort_schema,
        "of_controller_nets_with_same_vlan": {"type" : "boolean"},
        "of_controller": nameshort_schema, #{"type":"string", "enum":["floodlight", "opendaylight"]},
        "of_controller_module": {"type":"string"},
        "of_user": nameshort_schema,
        "of_password": nameshort_schema,
        "test_mode": {"type": "boolean"}, # leave for backward compatibility
        "mode": {"type":"string", "enum":["normal", "host only", "OF only", "development", "test"] },
        "development_bridge": {"type":"string"},
        "tenant_id": {"type" : "string"},
        "image_path": path_schema,      # leave for backward compatibility
        "host_image_path": path_schema,
        "host_ssh_keyfile": path_schema,
        "network_vlan_range_start": vlan_schema,
        "network_vlan_range_end": vlan_schema,
        "bridge_ifaces": {
            "type": "object",
            "patternProperties": {
                "." : {
                    "type": "array",
                    "items": integer0_schema,
                    "minItems":2,
                    "maxItems":2,
                },
            },
            "minProperties": 2
        },
        "dhcp_server": {
            "type": "object",
            "properties": {
                "host": name_schema,
                "port": port_schema,
                "provider": {"type": "string", "enum": ["isc-dhcp-server"]},
                "user": nameshort_schema,
                "password": {"type": "string"},
                "key": path_schema,         # for backward compatibility, use keyfile instead
                "keyfile": path_schema,
                "bridge_ifaces": {
                    "type": "array",
                    "items": nameshort_schema,
                },
                "nets": {
                    "type": "array",
                    "items": name_schema,
                },
            },
            "required": ['host', 'provider', 'user']
        },
        "log_level": log_level_schema,
        "log_level_db": log_level_schema,
        "log_level_of": log_level_schema,
        "network_type": {"type": "string", "enum": ["ovs", "bridge"]},
        "ovs_controller_file_path": path_schema,
        "ovs_controller_ip": nameshort_schema,
        "ovs_controller_user": nameshort_schema,
        "ovs_controller_password": {"type": "string"},
        "ovs_controller_keyfile": path_schema,
    },
    "patternProperties": {
        "of_*" : {"type": ["string", "integer", "boolean"]}
    },
    "required": ['db_host', 'db_user', 'db_passwd', 'db_name'],
    "additionalProperties": False
}



metadata_schema={
    "type":"object",
    "properties":{
        "architecture": {"type":"string"},
        "use_incremental": yes_no_schema,
        "vpci": pci_schema,
        "os_distro": {"type":"string"},
        "os_type": {"type":"string"},
        "os_version": {"type":"string"},
        "bus": {"type":"string"},
        "topology": {"type":"string", "enum": ["oneSocket", "oneSocket:hyperthreading"]}
    }
}

tenant_new_schema = {
    "title":"tenant creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "tenant":{
            "type":"object",
            "properties":{
                "id":id_schema,
                "name": nameshort_schema,
                "description":description_schema,
                "enabled":{"type" : "boolean"}
            },
            "required": ["name"]
        }
    },
    "required": ["tenant"],
    "additionalProperties": False
}

tenant_edit_schema = {
    "title":"tenant edition information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "tenant":{
            "type":"object",
            "minProperties":1,
            "properties":{
                "name":nameshort_schema,
                "description":description_schema,
                "enabled":{"type" : "boolean"}
            },
            "additionalProperties": False,
        }
    },
    "required": ["tenant"],
    "additionalProperties": False
}
interfaces_schema={
    "type":"array",
    "minItems":0,
    "items":{
        "type":"object",
        "properties":{
            "name":name_schema,
            "dedicated":{"type":"string","enum":["yes","no","yes:sriov"]},
            "bandwidth":bandwidth_schema,
            "vpci":pci_schema,
            "uuid":id_schema,
            "mac_address":mac_schema
        },
        "additionalProperties": False,
        "required": ["dedicated", "bandwidth"]
    }
}

extended_schema={
    "type":"object", 
    "properties":{                  
        "processor_ranking":integer0_schema,
        "devices":{
            "type": "array", 
            "items":{
                "type": "object",
                "properties":{
                    "type":{"type":"string", "enum":["usb","disk","cdrom","xml"]},
                    "vpci":pci_schema,
                    "imageRef":id_schema,
                    "xml":xml_text_schema,
                    "dev":nameshort_schema,
                    "size":integer1_schema,
                },
                "additionalProperties": False,
                "required": ["type"]
            }
        },
        "numas":{
            "type": "array",
            "items":{
                "type": "object",
                "properties":{
                    "memory":integer1_schema,
                    "cores":integer1_schema,
                    "paired-threads":integer1_schema,
                    "threads":integer1_schema,
                    "cores-id":{"type":"array","items":integer0_schema},
                    "paired-threads-id":{"type":"array","items":{"type":"array","minItems":2,"maxItems":2,"items":integer0_schema}},
                    "threads-id":{"type":"array","items":integer0_schema},
                    "interfaces":interfaces_schema
                },
                "additionalProperties": False,
                "minProperties": 1,
                #"required": ["memory"]
            }
        }
    },
    #"additionalProperties": False,
    #"required": ["processor_ranking"]
}

host_data_schema={
    "title":"hosts manual insertion information schema",
    "type":"object", 
    "properties":{
        "id": id_schema,
        "admin_state_up": {"type": "boolean"},
        "created_at": {"type": "string"},        # ignored, just for compatibility with host-list
        "ip_name": nameshort_schema,
        "name": name_schema,
        "description": description_schema,
        "user": nameshort_schema,
        "password": nameshort_schema,
        "keyfile": path_schema,
        "features": description_schema,
        "ranking": integer0_schema,
        "autodiscover": {"type": "boolean"},    # try to discover host parameters instead of providing in this schema
        "hypervisors": description_schema,   #Unikernels extension
        "devices": {
            "type": "array", 
            "items": {
                "type": "object",
                "properties": {
                    "type": {"type": "string", "enum": ["usb", "disk"]},
                    "vpci": pci_schema
                },
                "additionalProperties": False,
                "required": ["type"]
            }
        },
        "numas": {
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "object",
                "properties": {
                    "admin_state_up": {"type": "boolean"},
                    "hugepages": integer0_schema,
                    "hugepages_consumed": integer0_schema,  # ignored, just for compatibility with host-list
                    "numa_socket": integer0_schema,
                    "memory": integer1_schema,
                    "cores":{
                        "type": "array",
                        "minItems": 2,
                        "items": {
                            "type": "object",
                            "properties": {
                                "core_id": integer0_schema,
                                "thread_id": integer0_schema,
                                "status": {"type": "string", "enum": ["noteligible"]},
                                "instance_id": {"type": "string"},   # ignored, just for compatibility with host-list
                                "v_thread_id": {"type": "integer"}   # ignored, just for compatibility with host-list
                            },
                            "additionalProperties": False,
                            "required": ["core_id", "thread_id"]
                        }
                    },
                    "interfaces": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                            "type": "object",
                            "properties": {
                                "source_name": nameshort_schema,
                                "mac": mac_schema,
                                "Mbps": integer0_schema,
                                "pci": pci_schema,
                                "sriovs": {
                                    "type": "array",
                                    "minItems":1,
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "source_name": {"oneOf": [integer0_schema, nameshort_schema]},
                                            "mac": mac_schema,
                                            "vlan": integer0_schema,  # ignored, just for backward compatibility
                                            "pci": pci_schema,
                                        },
                                        "additionalProperties": False,
                                        "required": ["source_name", "mac", "pci"]
                                    }
                                },
                                "switch_port": nameshort_schema,
                                "switch_dpid": nameshort_schema,
                                "switch_mac": mac_schema,
                            },
                            "additionalProperties": False,
                            "required": ["source_name", "mac", "Mbps", "pci"]
                        }
                    },
                },
                "additionalProperties": False,
                "required": ["cores", "numa_socket"]
            }
        }
    },
    "additionalProperties": False,
    "required": ["name", "user", "ip_name"]
}

host_edit_schema={
    "title":"hosts creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "host":{
            "type":"object",
            "properties":{
                "ip_name":nameshort_schema,
                "name": name_schema,
                "description":description_schema,
                "user":nameshort_schema,
                "password":nameshort_schema,
                "admin_state_up":{"type":"boolean"},
                "numas":{
                    "type":"array", 
                    "items":{
                        "type": "object",
                        "properties":{
                            "numa_socket": integer0_schema,
                            "admin_state_up":{"type":"boolean"},
                            "interfaces":{
                                "type":"array", 
                                "items":{
                                    "type": "object",
                                    "properties":{
                                        "source_name": nameshort_schema,
                                        "switch_dpid": nameshort_schema,
                                        "switch_port": nameshort_schema,
                                    },
                                    "required": ["source_name"],
                                }
                            }
                        }, 
                        "required": ["numa_socket"],
                        "additionalProperties": False,
                    }
                }
            },
            "minProperties": 1,
            "additionalProperties": False
        },
    },
    "required": ["host"],
    "minProperties": 1,
    "additionalProperties": False
}

host_new_schema = {
    "title":"hosts creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "host": host_data_schema,
        "host-data":host_data_schema
    },
    "required": ["host"],
    "minProperties": 1,
    "maxProperties": 2,
    "additionalProperties": False
}


flavor_new_schema = {
    "title":"flavor creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "flavor":{
            "type":"object",
            "properties":{
                "id":id_schema,
                "name":name_schema,
                "description":description_schema,
                "ram":integer0_schema,
                "vcpus":integer0_schema,
                "extended": extended_schema,
                "public": yes_no_schema
            },
            "required": ["name"]
        }
    },
    "required": ["flavor"],
    "additionalProperties": False
}
flavor_update_schema = {
    "title":"flavor update information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "flavor":{
            "type":"object",
            "properties":{
                "name":name_schema,
                "description":description_schema,
                "ram":integer0_schema,
                "vcpus":integer0_schema,
                "extended": extended_schema,
                "public": yes_no_schema
            },
            "minProperties": 1,
            "additionalProperties": False
        }
    },
    "required": ["flavor"],
    "additionalProperties": False
}

image_new_schema = {
    "title":"image creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "image":{
            "type":"object",
            "properties":{
                "id":id_schema,
                "path": {"oneOf": [path_schema, http_schema]},
                "description":description_schema,
                "name":name_schema,
                "metadata":metadata_schema,
                "public": yes_no_schema
            },
            "required": ["name","path"]
        }
    },
    "required": ["image"],
    "additionalProperties": False
}

image_update_schema = {
    "title":"image update information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "image":{
            "type":"object",
            "properties":{
                "path":{"oneOf": [path_schema, http_schema]},
                "description":description_schema,
                "name":name_schema,
                "metadata":metadata_schema,
                "public": yes_no_schema
            },
            "minProperties": 1,
            "additionalProperties": False
        }
    },
    "required": ["image"],
    "additionalProperties": False
}

networks_schema={
    "type":"array",
    "items":{
        "type":"object",
        "properties":{
            "name":name_schema,
            "bandwidth":bandwidth_schema,
            "vpci":pci_schema,
            "uuid":id_schema,
            "mac_address": mac_schema,
            "ip_address": ip_schema,
            "model": {"type":"string", "enum":["virtio","e1000","ne2k_pci","pcnet","rtl8139"]},
            "type": {"type":"string", "enum":["virtual","PF","VF","VFnotShared"]}
        },
        "additionalProperties": False,
        "required": ["uuid"]
    }
}

server_new_schema = {
    "title":"server creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "server":{
            "type":"object",
            "properties":{
                "id":id_schema,
                "name":name_schema,
                "description":description_schema,
                "start":{"type":"string", "enum":["yes","no","paused"]},
                "hostId":id_schema,
                "flavorRef":id_schema,
                "imageRef":id_schema,
                "hypervisor":{"type":"string", "enum":["kvm","xen-unik","xenhvm"]}, #Unikernels extension
                "osImageType":{"type":"string", "enum":["clickos","other"]}, #Unikernels extension
                "extended": extended_schema,
                "networks":networks_schema
            },
            "required": ["name","flavorRef","imageRef"]
        }
    },
    "required": ["server"],
    "additionalProperties": False
}

server_action_schema = {
    "title":"server action information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "start":{"oneOf":[{"type": "null"}, {"type":"string", "enum":["rebuild","null"] }]},
        "pause":{"type": "null"},
        "resume":{"type": "null"},
        "shutoff":{"type": "null"},
        "shutdown":{"type": "null"},
        "forceOff":{"type": "null"},
        "terminate":{"type": "null"},
        "createImage":{
            "type":"object",
            "properties":{ 
                "path":path_schema,
                "description":description_schema,
                "name":name_schema,
                "metadata":metadata_schema,
                "imageRef": id_schema,
                "disk": {"oneOf":[{"type": "null"}, {"type":"string"}] },
            },
            "required": ["name"]
        },
        "rebuild":{"type": ["object","null"]},
        "reboot":{
            "type": ["object","null"],
#            "properties": {
#                "type":{"type":"string", "enum":["SOFT"] }
#            }, 
#            "minProperties": 1,
#            "maxProperties": 1,
#            "additionalProperties": False
        }
    },
    "minProperties": 1,
    "maxProperties": 1,
    "additionalProperties": False
}

network_new_schema = {
    "title": "network creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "network": {
            "type": "object",
            "properties":{
                "id": id_schema,
                "name": name_schema,
                "type": {"type":"string", "enum": ["bridge_man", "bridge_data", "data", "ptp"]},
                "shared": {"type": "boolean"},
                "tenant_id": id_schema,
                "admin_state_up": {"type": "boolean"},
                "provider:vlan": vlan_schema,
                "provider:physical": net_bind_schema,
                "region": nameshort_schema,
                "cidr": cidr_schema,
                "enable_dhcp": {"type": "boolean"},
                "dhcp_first_ip": ip_schema,
                "dhcp_last_ip": ip_schema,
                "dns": {"type": "array", "items": [ip_schema]},
                "links":    {"type": "array", "items": {"type": "object", "properties": {
                                "nat": cidr_schema,
                                "iface": name_schema,
                                "vlan": vlan_schema},
                                "required": ["iface"],
                                "additionalProperties": False
                                },

                             },
                "routes":   {"type": "object", "properties":  {"default": ip_schema}, "patternProperties": {
                                                            "^([0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$": ip_schema,
                                                            },
                                                            "additionalProperties": False
                             },

                "bind_net": name_schema,   # can be name, or uuid
                "bind_type": {"oneOf": [{"type": "null"}, {"type": "string", "pattern": "^vlan:[0-9]{1,4}$"}]}
            },
        "required": ["name"]
        }
    },
    "required": ["network"],
    "additionalProperties": False
}

network_update_schema = {
    "title":"network update information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "network":{
            "type":"object",
            "properties":{
                "name":name_schema,
                "type":{"type":"string", "enum":["bridge_man","bridge_data","data", "ptp"]},
                "shared":{"type":"boolean"},
                "tenant_id":id_schema,
                "admin_state_up":{"type":"boolean"},
                "provider:vlan":vlan_schema, 
                "provider:physical":net_bind_schema,
                "cidr":cidr_schema,
                "enable_dhcp": {"type":"boolean"},
                # "dhcp_first_ip": ip_schema,
                # "dhcp_last_ip": ip_schema,
                "bind_net":name_schema, #can be name, or uuid
                "bind_type":{"oneOf":[{"type":"null"},{"type":"string", "pattern":"^vlan:[0-9]{1,4}$"}]}
            },
            "minProperties": 1,
            "additionalProperties": False
        }
    },
    "required": ["network"],
    "additionalProperties": False
}


port_new_schema = {
    "title":"port creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "port":{
            "type":"object",
            "properties":{
                "id":id_schema,
                "name":nameshort_schema,
                "network_id":{"oneOf":[{"type": "null"}, id_schema ]},
                "tenant_id":id_schema,
                "mac_address": {"oneOf":[{"type": "null"}, mac_schema] },
                "admin_state_up":{"type":"boolean"},
                "bandwidth":bandwidth_schema,
                "binding:switch_port":nameshort_schema,
                "binding:vlan": {"oneOf":[{"type": "null"}, vlan_schema ]}
            },
            "required": ["name"]
        }
    },
    "required": ["port"],
    "additionalProperties": False
}

port_update_schema = {
    "title":"port update information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "port":{
            "type":"object",
            "properties":{
                "name":nameshort_schema,
                "network_id":{"anyOf":[{"type":"null"}, id_schema ] }
            },
            "minProperties": 1,
            "additionalProperties": False
        }
    },
    "required": ["port"],
    "additionalProperties": False
}

localinfo_schema = {
    "title":"localinfo information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "files":{ "type": "object"},
        "inc_files":{ "type": "object"},
        "server_files":{ "type": "object"}
    },
    "required": ["files"]
}

hostinfo_schema = {
    "title":"host information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type":"object",
    "properties":{
        "iface_names":{
            "type":"object",
            "patternProperties":{
                ".":{ "type": "string"}
            },
            "minProperties": 1
        }
    },
    "required": ["iface_names"]
}

openflow_controller_schema = {
    "title": "network creation information schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "ofc": {
            "type": "object",
            "properties": {
                "name": name_schema,
                "dpid": nameshort_schema,
                "ip": nameshort_schema,
                "port": port_schema,
                "type": nameshort_schema,
                "version": nametiny_schema,
                "user": nameshort_schema,
                "password": nameshort_schema
            },
            "required": ["dpid", "type", "ip", "port", "name"]
        }
    },
    "required": ["ofc"],
    "additionalProperties": False
}

of_port_new_schema = {
    "title": "OF port mapping",
    "type": "object",
    "properties": {
        "ofc_id": id_schema,
        "region": nameshort_schema,
        "compute_node": nameshort_schema,
        "pci": {"OneOf": [{"type": "null"}, pci_extended_schema]},
        "switch_dpid": nameshort_schema,
        "switch_port": nameshort_schema,
        "switch_mac": mac_schema
    },
    "required": ["region", "compute_node",  "pci", "switch_dpid"]
}

of_port_map_new_schema = {
    "title": "OF port mapping",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "of_port_mapings": {"type": "array", "items": of_port_new_schema, "minLenght":1},
    },
    "required": ["of_port_mapings"],
    "additionalProperties": False

}
