diff options
author | 2020-08-04 14:46:34 -0700 | |
---|---|---|
committer | 2020-08-20 11:42:12 -0700 | |
commit | 6fc3a329aba55dfa2d4867bde9d8a3126b45f59a (patch) | |
tree | 21e39a03255198a8f0781a78ad9e2ade1f3c28ed /src/orchestrator/api/json-schemas/generic-placement-intent-app.json | |
parent | 6e5ca4741dab0de3b4d89f410f0ff9d0313d6aee (diff) |
Add Validation for API's
Adding input validations for API based
on Json schemas
Issue-ID: MULTICLOUD-1096
Signed-off-by: Ritu Sood <ritu.sood@intel.com>
Change-Id: If6591bdef6305f87cbce7ef56d894376f687c6c1
Diffstat (limited to 'src/orchestrator/api/json-schemas/generic-placement-intent-app.json')
-rw-r--r-- | src/orchestrator/api/json-schemas/generic-placement-intent-app.json | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/orchestrator/api/json-schemas/generic-placement-intent-app.json b/src/orchestrator/api/json-schemas/generic-placement-intent-app.json new file mode 100644 index 00000000..0b6447c2 --- /dev/null +++ b/src/orchestrator/api/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 |