diff options
author | Rajamohan Raj <rajamohan.raj@intel.com> | 2020-08-26 00:28:12 +0000 |
---|---|---|
committer | Rajamohan Raj <rajamohan.raj@intel.com> | 2020-09-10 22:12:17 +0000 |
commit | b2c9f4c61d00bf18e7a253c410479f8124640106 (patch) | |
tree | f2c3df18a5cb904f3b57b858cff7d889a36837c6 /src/ncm/json-schemas | |
parent | 4759e43ff7f29727477b0d928047bf5ca283cef1 (diff) |
Adding validations for all JSON data across modules
Issue-ID: MULTICLOUD-1198
Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com>
Change-Id: Idc2fbfd6e875bd7b662c7d60925aeb776b3f7bea
Diffstat (limited to 'src/ncm/json-schemas')
-rw-r--r-- | src/ncm/json-schemas/provider-network.json | 122 | ||||
-rw-r--r-- | src/ncm/json-schemas/virtual-network.json | 75 |
2 files changed, 197 insertions, 0 deletions
diff --git a/src/ncm/json-schemas/provider-network.json b/src/ncm/json-schemas/provider-network.json new file mode 100644 index 00000000..0aef0304 --- /dev/null +++ b/src/ncm/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 diff --git a/src/ncm/json-schemas/virtual-network.json b/src/ncm/json-schemas/virtual-network.json new file mode 100644 index 00000000..f2bc9d3d --- /dev/null +++ b/src/ncm/json-schemas/virtual-network.json @@ -0,0 +1,75 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "properties": { + "ipv4Subnets": { + "items": { + "required": [ + "name", + "subnet" + ], + "type": "object", + "properties": { + "subnet": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + }, + "excludeIps": { + "type": "string", + "maxLength": 1024 + }, + "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]+$" + } + } + }, + "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 |