X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fvalidation.py;h=81b288dab362f0c8cff3ecea815fbf4d5184b47e;hp=1dd70dc1e8ff4ac22d3fb91ba3a053b2db1cb340;hb=5c01e193a17fcf730406e39fe7d019e1dee5c64d;hpb=4f9d4ae68e34cd69fbef5f6f4d74833f03832562 diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py index 1dd70dc..81b288d 100644 --- a/osm_nbi/validation.py +++ b/osm_nbi/validation.py @@ -266,6 +266,7 @@ ns_instantiate = { "name": string_schema, "vim-network-name": {"OneOf": [string_schema, object_schema]}, "vim-network-id": {"OneOf": [string_schema, object_schema]}, + "ns-net": object_schema, "wimAccountId": {"OneOf": [id_schema, bool_schema, null_schema]}, "ip-profile": object_schema, "vnfd-connection-point-ref": { @@ -564,6 +565,17 @@ pdu_edit_schema = { } # USERS +project_role_mapping = { + "title": "", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "project": shortname_schema, + "role": shortname_schema + }, + "required": ["project", "role"], + "additionalProperties": False +} user_new_schema = { "$schema": "http://json-schema.org/draft-04/schema#", "title": "New user schema", @@ -572,8 +584,13 @@ user_new_schema = { "username": shortname_schema, "password": passwd_schema, "projects": nameshort_list_schema, + "project_role_mappings": { + "type": "array", + "items": project_role_mapping, + "minItems": 1 + }, }, - "required": ["username", "password", "projects"], + "required": ["username", "password"], "additionalProperties": False } user_edit_schema = { @@ -588,6 +605,11 @@ user_edit_schema = { array_edition_schema ] }, + "project_role_mappings": { + "type": "array", + "items": project_role_mapping, + "minItems": 1 + }, }, "minProperties": 1, "additionalProperties": False @@ -616,6 +638,32 @@ project_edit_schema = { "minProperties": 1 } +# ROLES +roles_new_schema = { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "New role schema for administrators", + "type": "object", + "properties": { + "name": shortname_schema, + "definition": object_schema, + }, + "required": ["name"], + "additionalProperties": False +} +roles_edit_schema = { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Roles edit schema for administrators", + "type": "object", + "properties": { + "_id": id_schema, + "name": shortname_schema, + "definition": object_schema, + }, + "required": ["_id", "name", "definition"], + "additionalProperties": False, + "minProperties": 1 +} + # GLOBAL SCHEMAS nbi_new_input_schemas = { @@ -638,26 +686,10 @@ nbi_edit_input_schemas = { } # NETSLICE SCHEMAS -nsi_slice_instantiate = deepcopy(ns_instantiate) -nsi_slice_instantiate["title"] = "netslice subnet instantiation params input schema" -nsi_slice_instantiate["properties"]["id"] = name_schema -nsi_slice_instantiate["properties"]["additionalParamsForNsi"] = object_schema -nsi_slice_instantiate["properties"]["additionalParamsForSubnet"] = { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": name_schema, - "additionalParamsForNs": object_schema, - "additionalParamsForVnf": additional_params_for_vnf - }, - "required": ["id"], - "additionalProperties": False - } -} -del nsi_slice_instantiate["required"] -del nsi_slice_instantiate["properties"]["additionalParamsForNs"] -del nsi_slice_instantiate["properties"]["additionalParamsForVnf"] +nsi_subnet_instantiate = deepcopy(ns_instantiate) +nsi_subnet_instantiate["title"] = "netslice subnet instantiation params input schema" +nsi_subnet_instantiate["properties"]["id"] = name_schema +del nsi_subnet_instantiate["required"] nsi_vld_instantiate = { "title": "netslice vld instantiation params input schema", @@ -686,10 +718,11 @@ nsi_instantiate = { "vimAccountId": id_schema, "ssh_keys": {"type": "string"}, "nsi_id": id_schema, + "additionalParamsForNsi": object_schema, "netslice-subnet": { "type": "array", "minItems": 1, - "items": nsi_slice_instantiate + "items": nsi_subnet_instantiate }, "netslice-vld": { "type": "array",