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/orchestrator/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/orchestrator/json-schemas')
8 files changed, 503 insertions, 0 deletions
diff --git a/src/orchestrator/json-schemas/composite-app.json b/src/orchestrator/json-schemas/composite-app.json new file mode 100644 index 00000000..3f976831 --- /dev/null +++ b/src/orchestrator/json-schemas/composite-app.json @@ -0,0 +1,45 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "version": { + "description": "Composite Application Version", + "type": "string", + "example": "v1", + "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/orchestrator/json-schemas/composite-profile.json b/src/orchestrator/json-schemas/composite-profile.json new file mode 100644 index 00000000..e404a64c --- /dev/null +++ b/src/orchestrator/json-schemas/composite-profile.json @@ -0,0 +1,46 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "app-name": { + "description": "Application Name", + "required": [ + "app-name" + ], + "type": "string", + "example": "Application1", + "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/orchestrator/json-schemas/controller.json b/src/orchestrator/json-schemas/controller.json new file mode 100644 index 00000000..3263ff21 --- /dev/null +++ b/src/orchestrator/json-schemas/controller.json @@ -0,0 +1,73 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "required": [ + "host", + "port", + "type", + "priority" + ], + "type": "object", + "properties": { + "priority": { + "description": "Priority of controller to be called", + "type": "integer", + "example": 4, + "minimum": 0, + "maximum": 100 + }, + "host": { + "description": "Controller reachibility information", + "type": "string", + "example": "10.7.100.4", + "maxLength": 128 + }, + "type": { + "description": "Type of controller (placement, action are 2 types supported)", + "type": "string", + "example": "placement", + "maxLength": 48 + }, + "port": { + "description": "Port for controller", + "type": "integer", + "minimum": 0, + "maximum": 50000, + "example": 9029 + } + } + }, + "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/orchestrator/json-schemas/deployment-group-intent.json b/src/orchestrator/json-schemas/deployment-group-intent.json new file mode 100644 index 00000000..2740747b --- /dev/null +++ b/src/orchestrator/json-schemas/deployment-group-intent.json @@ -0,0 +1,79 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "required": [ + "profile", + "version" + ], + "type": "object", + "description": "DepSpecData has profile, version, OverrideValuesObj", + "properties": { + "override-values": { + "items": { + "required": [ + "app-name", + "values" + ], + "type": "object", + "description": "OverrideValues has appName and ValuesObj", + "properties": { + "app-name": { + "type": "string" + }, + "values": { + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "type": "object" + } + } + }, + "type": "array" + }, + "profile": { + "type": "string", + "maxLength": 128, + "pattern": "[-_0-9a-zA-Z]+$" + }, + "version": { + "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/orchestrator/json-schemas/deployment-intent.json b/src/orchestrator/json-schemas/deployment-intent.json new file mode 100644 index 00000000..6bdc0b43 --- /dev/null +++ b/src/orchestrator/json-schemas/deployment-intent.json @@ -0,0 +1,55 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "required": [ + "intent" + ], + "type": "object", + "description": "IntentSpecData has Intent", + "properties": { + "intent": { + "additionalProperties": { + "type": "string", + "maxLength": 128 + }, + "type": "object", + "example": { + "generic-placement-intent": "gpi-name" + } + } + } + }, + "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/orchestrator/json-schemas/generic-placement-intent-app.json b/src/orchestrator/json-schemas/generic-placement-intent-app.json new file mode 100644 index 00000000..0b6447c2 --- /dev/null +++ b/src/orchestrator/json-schemas/generic-placement-intent-app.json @@ -0,0 +1,117 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "properties": { + "app-name": { + "type": "string", + "example": "appl", + "maxLength": 128 + }, + "anyOf": { + "items": { + "type": "object", + "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames", + "properties": { + "cluster-label-name": { + "type": "string", + "example": "east", + "maxLength": 128 + }, + "provider-name": { + "type": "string", + "example": "provider1", + "maxLength": 128 + }, + "cluster-name": { + "type": "string", + "example": "cluster1", + "maxLength": 128 + } + } + }, + "type": "array" + }, + "allOf": { + "items": { + "type": "object", + "description": "AllOf ProviderName, ClusterName, ClusterLabelName and AnyOfArray", + "properties": { + "provider-name": { + "type": "string", + "example": "provider2", + "maxLength": 128 + }, + "cluster-label-name": { + "type": "string", + "example": "west", + "maxLength": 128 + }, + "anyOf": { + "items": { + "type": "object", + "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames", + "properties": { + "cluster-label-name": { + "type": "string", + "example": "east", + "maxLength": 128 + }, + "provider-name": { + "type": "string", + "example": "provider1", + "maxLength": 128 + }, + "cluster-name": { + "type": "string", + "example": "cluster1", + "maxLength": 128 + } + } + }, + "type": "array" + }, + "cluster-name": { + "type": "string", + "example": "cluster2", + "maxLength": 128 + } + } + }, + "type": "array" + } + } + }, + "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/orchestrator/json-schemas/generic-placement-intent.json b/src/orchestrator/json-schemas/generic-placement-intent.json new file mode 100644 index 00000000..44df9087 --- /dev/null +++ b/src/orchestrator/json-schemas/generic-placement-intent.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "spec": { + "type": "object", + "description": "Spec", + "properties": { + "logical-cloud": { + "description": "Logical Cloud to use for this intent", + "required": [ + "logical-cloud" + ], + "type": "string", + "example": "cloud1", + "maxLength": 128 + } + } + }, + "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/orchestrator/json-schemas/metadata.json b/src/orchestrator/json-schemas/metadata.json new file mode 100644 index 00000000..960545ee --- /dev/null +++ b/src/orchestrator/json-schemas/metadata.json @@ -0,0 +1,37 @@ + +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "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 |