X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fxapp_onboarder%2Fguide%2Fembedded-schema.json;fp=docs%2Fxapp_onboarder%2Fguide%2Fembedded-schema.json;h=2e3d88956c18886dc3e702c10255d8840e4e1162;hb=e1776fcf6b16276b3d315ca929d6e2f5d0e6328a;hp=0000000000000000000000000000000000000000;hpb=a77ec6df0a387fd5a5fc9f219a60604f9147b7cd;p=it%2Fdev.git diff --git a/docs/xapp_onboarder/guide/embedded-schema.json b/docs/xapp_onboarder/guide/embedded-schema.json new file mode 100644 index 0000000..2e3d889 --- /dev/null +++ b/docs/xapp_onboarder/guide/embedded-schema.json @@ -0,0 +1,435 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://o-ran-sc.org/xapp_root.json", + "type": "object", + "title": "The xApp Root Schema", + "required": [ + "xapp_name", + "version", + "containers" + ], + "properties": { + "xapp_name": { + "$id": "#/properties/xapp_name", + "type": "string", + "title": "The xApp Name", + "default": "xapp", + "examples": [ + "example_xapp" + ] + }, + "version": { + "$id": "#/properties/version", + "type": "string", + "title": "The xApp version", + "default": "1.0.0", + "examples": [ + "1.0.0" + ], + "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$" + }, + "containers": { + "$id": "#/properties/containers", + "type": "array", + "title": "The Container Schema", + "items": { + "$id": "#/properties/containers/items", + "type": "object", + "title": "The Container Items Schema", + "required": [ + "name", + "image" + ], + "properties": { + "name": { + "$id": "#/properties/containers/items/properties/name", + "type": "string", + "title": "The xApp Container Name", + "default": "xapp", + "examples": [ + "xapp" + ] + }, + "image": { + "$id": "#/properties/containers/items/properties/image", + "type": "object", + "title": "The Container Image", + "required": [ + "registry", + "name", + "tag" + ], + "properties": { + "registry": { + "$id": "#/properties/containers/items/properties/image/properties/registry", + "type": "string", + "title": "The xApp Image Registry", + "default": "nexus3.o-ran-sc.org:10002", + "examples": [ + "nexus3.o-ran-sc.org:10002" + ], + "pattern": "^[A-Za-z0-9\\.-]{1,}\\.[A-Za-z]{1,}(?:\\:\\d+)?$" + }, + "name": { + "$id": "#/properties/containers/items/properties/image/properties/name", + "type": "string", + "title": "The xApp Image Name", + "default": "xapp", + "examples": [ + "xapp" + ] + }, + "tag": { + "$id": "#/properties/containers/items/properties/image/properties/tag", + "type": "string", + "title": "The xApp Image Tag", + "default": "latest", + "examples": [ + "latest" + ] + } + } + }, + "command": { + "$id": "#/properties/containers/items/properties/command", + "type": "string", + "title": "Command To Run The xApp Container", + "default": "command", + "examples": [ + "command" + ] + } + } + } + }, + "livenessProbe": { + "$id": "#/properties/livenessprobe", + "type": "object", + "title": "The Liveness Probe Definition", + "properties": { + "exec": { + "$id": "#/properties/livenessprobe/exec", + "type": "object", + "title": "Script of Liveness Probe", + "properties": { + "command": { + "$id": "#/properties/livenessprobe/exec/command", + "type": "array", + "items": [ + { + "$id": "#/properties/livenessprobe/exec/command/item", + "type": "string", + "title": "The Command Item", + "default": "/bin/sh", + "examples": [ + "/bin/sh" + ] + } + ] + } + }, + "required": [ + "command" + ] + }, + "httpGet": { + "$id": "#/properties/livenessprobe/httpget", + "type": "object", + "title": "Http of Liveness Probe", + "properties": { + "path": { + "$id": "#/properties/livenessprobe/httpget/path", + "type": "string", + "title": "The Path of Http Liveness Probe", + "default": "/health", + "examples": [ + "/health" + ] + }, + "port": { + "$id": "#/properties/livenessprobe/httpget/port", + "type": "integer", + "title": "The Port of Http Liveness Probe", + "default": 80, + "examples": [ + 80 + ] + } + }, + "required": [ + "path", + "port" + ] + }, + "initialDelaySeconds": { + "$id": "#/properties/livenessprobe/initialdelayseconds", + "type": "integer", + "title": "Initial Delay of Liveness Probe", + "default": 5, + "examples": [ + 5 + ] + }, + "periodSeconds": { + "$id": "#/properties/livenessprobe/periodseconds", + "type": "integer", + "title": "Period of Liveness Probe", + "default": 15, + "examples": [ + 15 + ] + } + }, + "oneOf": [ + { + "$id": "#/properties/livenessprobe/oneof/exec", + "required": ["exec", "initialDelaySeconds", "periodSeconds"] + }, + { + "$id": "#/properties/livenessprobe/oneof/httpget", + "required": ["httpGet", "initialDelaySeconds", "periodSeconds"] + } + ] + }, + "readinessProbe": { + "$id": "#/properties/readinessprobe", + "type": "object", + "title": "The Readiness Probe Definition", + "properties": { + "exec": { + "$id": "#/properties/readinessprobe/exec", + "type": "object", + "title": "Script of Readiness Probe", + "properties": { + "command": { + "$id": "#/properties/readinessprobe/exec/command", + "type": "array", + "items": [ + { + "type": "string" + } + ] + } + }, + "required": [ + "command" + ] + }, + "httpGet": { + "$id": "#/properties/readinessprobe/httpget", + "type": "object", + "title": "Http of Readiness Probe", + "properties": { + "path": { + "$id": "#/properties/readinessprobe/httpget/path", + "type": "string", + "title": "The Path of Http Readiness Probe", + "default": "/health", + "examples": [ + "/health" + ] + }, + "port": { + "$id": "#/properties/readinessprobe/httpget/port", + "type": "integer", + "title": "The Port of Http Readiness Probe", + "default": 80, + "examples": [ + 80 + ] + } + }, + "required": [ + "path", + "port" + ] + }, + "initialDelaySeconds": { + "$id": "#/properties/readinessprobe/initialdelayseconds", + "type": "integer", + "title": "Initial Delay of Readiness Probe", + "default": 5, + "examples": [ + 5 + ] + }, + "periodSeconds": { + "$id": "#/properties/readinessprobe/periodseconds", + "type": "integer", + "title": "Period of Readiness Probe", + "default": 15, + "examples": [ + 15 + ] + } + }, + "oneOf": [ + { + "$id": "#/properties/readinessprobe/oneof/exec", + "required": ["exec", "initialDelaySeconds", "periodSeconds"] + }, + { + "$id": "#/properties/readinessprobe/oneof/httpget", + "required": ["httpGet", "initialDelaySeconds", "periodSeconds"] + } + ] + }, + "messaging": { + "type": "object", + "$id": "#/properties/messaging", + "title": "The Messaging Schema", + "properties": { + "ports": { + "$id": "#/properties/messaging/ports", + "type": "array", + "title": "The Ports for Messaging", + "items":{ + "$id": "#/properties/messaging/ports/items", + "type": "object", + "title": "The Item of Port", + "required": ["name", "container", "port"], + "dependencies": { + "txMessages": ["rxMessages", "policies"], + "rxMessages": ["txMessages", "policies"], + "policies": ["rxMessages", "txMessages"] + }, + "properties": { + "name": { + "$id": "#/properties/messaging/ports/items/name", + "type": "string", + "title": "The Name of the Port", + "default": "App", + "examples": [ + "App" + ] + }, + "container": { + "$id": "#/properties/messaging/ports/items/container", + "type": "string", + "title": "The Container of the Port", + "default": "xapp", + "examples": [ + "xapp" + ] + }, + "port": { + "$id": "#/properties/messaging/ports/items/port", + "type": "integer", + "title": "The Port Number", + "default": 8080, + "examples": [ + 8080 + ] + }, + "description": { + "$id": "#/properties/messaging/ports/items/description", + "type": "string", + "title": "The description for the port", + "default": "port description", + "examples": [ + "port description" + ] + }, + "txMessages": { + "$id": "#/properties/messaging/ports/items/txmessages", + "type": "array", + "title": "The txMessage Types", + "items":{ + "$id": "#/properties/messaging/ports/items//txmessages/item", + "type": "string", + "title": "The txMessage Types Item", + "default": "RIC_SUB", + "examples": [ + "RIC_SUB" + ] + } + }, + "rxMessages": { + "$id": "#/properties/messaging/ports/items/rxmessages", + "type": "array", + "title": "The rxMessage Types", + "items":{ + "$id": "#/properties/messaging/ports/items/rxmessages/item", + "type": "string", + "title": "The rxMessage Types Item", + "default": "RIC_SUB", + "examples": [ + "RIC_SUB" + ] + } + }, + "policies": { + "$id": "#/properties/messaging/ports/items/policies", + "type": "array", + "title": "The Policies Types", + "items":{ + "$id": "#/properties/messaging/ports/items/policies/item", + "type": "integer", + "title": "The Policy Types Item", + "default": 1, + "examples": [ + 1 + ] + } + } + } + } + } + }, + "required": [ + "ports" + ] + + }, + "metrics": { + "type": "array", + "$id": "#/properties/metrics", + "title": "The Metrics Schema", + "items": { + "$id": "#/properties/metrics/items", + "type": "object", + "title": "The Metrics Items Schema", + "required": [ + "objectName", + "objectInstance", + "name", + "type", + "description" + ], + "properties": { + "objectName": { + "$id": "#/properties/metrics/items/objectname", + "type": "string", + "title": "The Object Name" + }, + "objectInstance": { + "$id": "#/properties/metrics/items/objectinstance", + "type": "string", + "title": "The Object Instance" + }, + "name": { + "$id": "#/properties/metrics/items/name", + "type": "string", + "title": "The Object Name" + }, + "type": { + "$id": "#/properties/metrics/items/type", + "type": "string", + "title": "The Object Type" + }, + "description": { + "$id": "#/properties/metrics/items/description", + "type": "string", + "title": "The Object Description" + } + } + } + }, + "controls": { + "required": [ + "__empty_control_section__" + ] + } + + } +} \ No newline at end of file