From 6fc3a329aba55dfa2d4867bde9d8a3126b45f59a Mon Sep 17 00:00:00 2001 From: Ritu Sood Date: Tue, 4 Aug 2020 14:46:34 -0700 Subject: Add Validation for API's Adding input validations for API based on Json schemas Issue-ID: MULTICLOUD-1096 Signed-off-by: Ritu Sood Change-Id: If6591bdef6305f87cbce7ef56d894376f687c6c1 --- .../api/json-schemas/provider-network.json | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 src/orchestrator/api/json-schemas/provider-network.json (limited to 'src/orchestrator/api/json-schemas/provider-network.json') diff --git a/src/orchestrator/api/json-schemas/provider-network.json b/src/orchestrator/api/json-schemas/provider-network.json new file mode 100644 index 00000000..0aef0304 --- /dev/null +++ b/src/orchestrator/api/json-schemas/provider-network.json @@ -0,0 +1,122 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "required": [ + "cniType", + "ipv4Subnets", + "providerNetType", + "vlan" + ], + "type": "object", + "properties": { + "ipv4Subnets": { + "items": { + "required": [ + "name", + "subnet" + ], + "type": "object", + "properties": { + "subnet": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + }, + "excludeIps": { + "type": "string", + "maxLength": 128 + }, + "gateway": { + "type": "string", + "maxLength": 128 + }, + "name": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + } + } + }, + "type": "array" + }, + "cniType": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + }, + "vlan": { + "required": [ + "logicalInterfaceName", + "nodeLabelList", + "providerInterfaceName", + "vlanID", + "vlanNodeSelector" + ], + "type": "object", + "properties": { + "vlanNodeSelector": { + "type": "string", + "maxLength": 128 + }, + "nodeLabelList": { + "items": { + "type": "string", + "maxLength": 128 + }, + "type": "array" + }, + "providerInterfaceName": { + "type": "string", + "maxLength": 128 + }, + "vlanID": { + "type": "string", + "maxLength": 128 + }, + "logicalInterfaceName": { + "type": "string", + "maxLength": 128 + } + } + }, + "providerNetType": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + } + } + }, + "metadata": { + "required": ["name"], + "properties": { + "userData2": { + "description": "User relevant data for the resource", + "type": "string", + "example": "Some more data", + "maxLength": 512 + }, + "userData1": { + "description": "User relevant data for the resource", + "type": "string", + "example": "Some data", + "maxLength": 512 + }, + "name": { + "description": "Name of the resource", + "type": "string", + "example": "ResName", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + }, + "description": { + "description": "Description for the resource", + "type": "string", + "example": "Resource description", + "maxLength": 1024 + } + } + } + } +} \ No newline at end of file -- cgit 1.2.3-korg