allow external port for SDN net
[osm/NBI.git] / osm_nbi / validation.py
index 69caff7..d40814e 100644 (file)
@@ -145,7 +145,7 @@ ip_profile_dhcp_schema = {
 }
 
 ip_profile_schema = {
-    "title": "ip profile validation schame",
+    "title": "ip profile validation schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
     "properties": {
@@ -158,7 +158,7 @@ ip_profile_schema = {
 }
 
 ip_profile_update_schema = {
-    "title": "ip profile validation schame",
+    "title": "ip profile validation schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
     "properties": {
@@ -173,14 +173,28 @@ ip_profile_update_schema = {
 }
 
 provider_network_schema = {
-    "title": "provider network validation schame",
+    "title": "provider network validation schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
     "properties": {
         "physical-network": name_schema,
         "segmentation-id": name_schema,
+        "sdn-ports": {  # external ports to append to the SDN-assist network
+            "type": "array",
+            "items": {
+                "type": "object",
+                "properties": {
+                    "switch_id": shortname_schema,
+                    "switch_port": shortname_schema,
+                    "mac_address": mac_schema,
+                    "vlan": vlan_schema,
+                },
+                "additionalProperties": True
+            }
+        },
+        "network-type": shortname_schema,
     },
-    "additionalProperties": False
+    "additionalProperties": True
 }
 
 ns_instantiate_internal_vld = {
@@ -265,9 +279,12 @@ ns_instantiate = {
         "nsdId": id_schema,
         "vimAccountId": id_schema,
         "wimAccountId": {"OneOf": [id_schema, bool_schema, null_schema]},
+        "placement-engine": string_schema,
+        "placement-constraints": object_schema,
         "additionalParamsForNs": object_schema,
         "additionalParamsForVnf": additional_params_for_vnf,
         "ssh_keys": {"type": "array", "items": {"type": "string"}},
+        "timeout_ns_deploy": integer1_schema,
         "nsr_id": id_schema,
         "vduImage": name_schema,
         "vnf": {
@@ -434,7 +451,7 @@ vim_account_new_schema = {
     "additionalProperties": False
 }
 
-wim_type = shortname_schema  # {"enum": ["tapi", "onos", "odl", "dynpac", "fake"]}
+wim_type = shortname_schema  # {"enum": ["ietfl2vpn", "onos", "odl", "dynpac", "fake"]}
 
 wim_account_edit_schema = {
     "title": "wim_account edit input schema",
@@ -480,21 +497,24 @@ wim_account_new_schema = {
 
 sdn_properties = {
     "name": name_schema,
+    "type": {"type": "string"},
+    "url": {"type": "string"},
+    "user": shortname_schema,
+    "password": passwd_schema,
+    "config": {"type": "object"},
     "description": description_schema,
+    # The folowing are deprecated. Maintanied for backward compatibility
     "dpid": dpid_Schema,
     "ip": ip_schema,
     "port": port_schema,
-    "type": {"type": "string", "enum": ["opendaylight", "floodlight", "onos"]},
     "version": {"type": "string", "minLength": 1, "maxLength": 12},
-    "user": shortname_schema,
-    "password": passwd_schema
 }
 sdn_new_schema = {
     "title": "sdn controller information schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
     "properties": sdn_properties,
-    "required": ["name", "port", 'ip', 'dpid', 'type'],
+    "required": ["name", 'type'],
     "additionalProperties": False
 }
 sdn_edit_schema = {
@@ -546,7 +566,7 @@ k8scluster_nets_schema = {
     "title": "k8scluster nets input schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
-    "patternProperties": {".": {"oneOf": [description_schema, null_schema]}},
+    "patternProperties": {".": {"oneOf": [name_schema, null_schema]}},
     "minProperties": 1,
     "additionalProperties": False
 }
@@ -651,7 +671,6 @@ pdu_new_schema = {
     "required": ["name", "type", "interfaces"],
     "additionalProperties": False
 }
-
 pdu_edit_schema = {
     "title": "pdu edit input schema",
     "$schema": "http://json-schema.org/draft-04/schema#",
@@ -676,6 +695,22 @@ pdu_edit_schema = {
     "minProperties": 1
 }
 
+# VNF PKG OPERATIONS
+vnfpkgop_new_schema = {
+    "title": "VNF PKG operation creation input schema",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "type": "object",
+    "properties": {
+        "lcmOperationType": string_schema,
+        "vnfPkgId": id_schema,
+        "kdu_name": name_schema,
+        "primitive": name_schema,
+        "primitive_params": {"type": "object"},
+    },
+    "required": ["lcmOperationType", "vnfPkgId", "kdu_name", "primitive", "primitive_params"],
+    "additionalProperties": False
+}
+
 # USERS
 project_role_mappings = {
     "title": "list pf projects/roles",
@@ -713,6 +748,7 @@ user_new_schema = {
     "type": "object",
     "properties": {
         "username": shortname_schema,
+        "domain_name": shortname_schema,
         "password": passwd_schema,
         "projects": nameshort_list_schema,
         "project_role_mappings": project_role_mappings,
@@ -751,6 +787,7 @@ project_new_schema = {
     "properties": {
         "name": shortname_schema,
         "admin": bool_schema,
+        "domain_name": shortname_schema,
         "quotas": {
             "type": "object",
             "properties": {topic: integer0_schema for topic in topics_with_quota},
@@ -867,6 +904,7 @@ nsi_instantiate = {
         "nsiDescription": {"oneOf": [description_schema, null_schema]},
         "nstId": string_schema,
         "vimAccountId": id_schema,
+        "timeout_nsi_deploy": integer1_schema,
         "ssh_keys": {"type": "string"},
         "nsi_id": id_schema,
         "additionalParamsForNsi": object_schema,