Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

JSON schema is used to describe the attributes and values in the xApp descriptor JSON file. The xApp onboarding process verifies the types and values of the xApp parameters in the descriptor.

...

The schema file consists of two parts: sections that are static and cannot be changed for different xApp, and xApp specific controls section.

When an operator is onboarding an xApp, he/she will provide the controls section schema with together with the xApp descriptor.

The xapp_onboarder will combine the schema files into one.

...

  • messaging: this schema defines the messaging parameters structure

    Code Block
    	    "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: this schema defines the metrics structure

    Code Block
    		"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: This section will be replaced by the submitted control section schema. If the controls section schema is not provided, the following will be used to make sure that the xApp onboarder will reject an xApp descriptor with an undefined control section.

    Code Block
    		"controls": {
    			"required": [
    				"__empty_control_section__"
    			]
    		}

    You can download the schema file here

    View file
    nameschema.json
    height250