Bug 1068 fixed for auth_url in keystone
[osm/NBI.git] / osm_nbi / validation.py
index 7c074d2..6a483f3 100644 (file)
@@ -43,7 +43,7 @@ time_schema = {"type": "string", "pattern": "^[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-
 pci_schema = {"type": "string", "pattern": "^[0-9a-fA-F]{4}(:[0-9a-fA-F]{2}){2}\\.[0-9a-fA-F]$"}
 # allows [] for wildcards. For that reason huge length limit is set
 pci_extended_schema = {"type": "string", "pattern": "^[0-9a-fA-F.:-\\[\\]]{12,40}$"}
-http_schema = {"type": "string", "pattern": "^https?://[^'\"=]+$"}
+http_schema = {"type": "string", "pattern": "^(https?|http)://[^'\"=]+$"}
 bandwidth_schema = {"type": "string", "pattern": "^[0-9]+ *([MG]bps)?$"}
 memory_schema = {"type": "string", "pattern": "^[0-9]+ *([MG]i?[Bb])?$"}
 integer0_schema = {"type": "integer", "minimum": 0}
@@ -236,6 +236,7 @@ additional_params_for_vnf = {
             "member-vnf-index": name_schema,
             "additionalParams": object_schema,
             "k8s-namespace": name_schema,
+            "config-units": integer1_schema,  # number of configuration units of this vnf, by default 1
             "additionalParamsForVdu": {
                 "type": "array",
                 "items": {
@@ -243,8 +244,10 @@ additional_params_for_vnf = {
                     "properties": {
                         "vdu_id": name_schema,
                         "additionalParams": object_schema,
+                        "config-units": integer1_schema,   # number of configuration units of this vdu, by default 1
                     },
-                    "required": ["vdu_id", "additionalParams"],
+                    "required": ["vdu_id"],
+                    "minProperties": 2,
                     "additionalProperties": False,
                 },
             },
@@ -257,6 +260,7 @@ additional_params_for_vnf = {
                         "additionalParams": object_schema,
                         "kdu_model": name_schema,
                         "k8s-namespace": name_schema,
+                        "config-units": integer1_schema,    # number of configuration units of this knf, by default 1
                     },
                     "required": ["kdu_name"],
                     "minProperties": 2,
@@ -287,6 +291,7 @@ ns_instantiate = {
         "placement-constraints": object_schema,
         "additionalParamsForNs": object_schema,
         "additionalParamsForVnf": additional_params_for_vnf,
+        "config-units": integer1_schema,    # number of configuration units of this ns, by default 1
         "k8s-namespace": name_schema,
         "ssh_keys": {"type": "array", "items": {"type": "string"}},
         "timeout_ns_deploy": integer1_schema,
@@ -365,6 +370,7 @@ ns_terminate = {
         "autoremove": bool_schema,
         "timeout_ns_terminate": integer1_schema,
         "skip_terminate_primitives": bool_schema,
+        "netsliceInstanceId": id_schema,
     },
     "additionalProperties": False
 }
@@ -651,6 +657,32 @@ k8srepo_edit_schema = {
     "additionalProperties": False
 }
 
+# OSM Repos
+osmrepo_types = {"enum": ["osm"]}
+osmrepo_properties = {
+    "name": name_schema,
+    "description": description_schema,
+    "type": osmrepo_types,
+    "url": description_schema
+    # "user": shortname_schema,
+    # "password": passwd_schema
+}
+osmrepo_new_schema = {
+    "title": "osm repo creation input schema",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "type": "object",
+    "properties": osmrepo_properties,
+    "required": ["name", "type", "url"],
+    "additionalProperties": False
+}
+osmrepo_edit_schema = {
+    "title": "osm repo edit input schema",
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "type": "object",
+    "properties": osmrepo_properties,
+    "additionalProperties": False
+}
+
 # PDUs
 pdu_interface = {
     "type": "object",