Metadata File Configuration

This section explains the format of a Boon Amber Metadata File configuration.

Structure

The metadata configuration file should conform to a particular schema, which comprises two main objects: "definitions" and "operations". The Operations Object describes the REST operation, and the Definitions Object describes the input and output schemas referenced to these operations.

Example:

{
    "definitions": {
        ...
    },
    "operations": {
        ...
    }
}

Operations Object

The Operations Object describes the operations that would be displayed in the Operation dropdown under the Operation section of the Agents' configuration blade. This object contains one or more operations specified as key-value pairs (separated by comma), where the key is the name of the REST operation, which should be unique, and the value is an object that contains several properties that describe the REST operation, as explained below.

Example:

"operations": {
		"Get Sensors": {
			"endPoint": "/v1/sensors",
			"method": "GET",
			"description": "Get sensors",
			"contentType": "application/json",
			"responseSchema": "Root"
		}
		"Post Stream": {
			"endPoint": "/v1/stream",
			"method": "POST",
			"description": "Get stream",
			"contentType": "application/json",
			"parameters": [
				{
					"name": "sensorId",
					"in": "header",
					"type": "string",
					"required": true
				},
				{
					"name": "postStreamRequest",
					"in": "body",
					"type": "object",
					"required": true,
					"schema": "streamRequest"
				}
			],
			"responseSchema": "RawJSON"
		}
	}

Parameters Object

The Parameters Object describes the input parameters that are required by the REST operation. This object is of type JSON array in which each item describes one parameter. The parameters will be displayed in the Input Mapping section of the Agents' configuration blade. Each parameter object has several properties, as explained below.

Example:

//For endPoint: /v1/rootCause?pattern={pattern}&clusterId={clusterID}
"parameters": [
	{
		"name": "sensorId",
		"in": "header",
		"type": "string",
		"required": true
	},
	{
		"name": "clusterID",
		"in": "path",
		"type": "string",
		"required": true
	},
	{
		"name": "pattern",
		"in": "path",
		"type": "string",
		"required": true
	}
]

//For endPoint: /v1/stream
"parameters": [
	{
		"name": "sensorId",
		"in": "header",
		"type": "string",
		"required": true
	},
	{
		"name": "postStreamRequest",
		"in": "body",
		"type": "object",
		"required": true,
		"schema": "streamRequest"
	}
]

Definitions Object

The Definitions Object describes the definition of schema referred to the Operations object's responseSchema property. This object contains one or more definitions specified as key-value pairs separated by commas, where the "key" is the name of the schema which must be unique and the "value" is an object that contains several properties that describe the schema, as explained below.

The value must conform to Newtonsoft JSON Schema specifications.

Example:

"definitions": {
    	"Root": {
		"title": "Root",
		"type": "array",
		"items": {
			"$ref": "#/definitions/Sensor"
		}
	},
	"Sensor": {
		"title": "Sensor",
		"type": "object",
		"properties": {
			"label": {
				"type": "string"
			},
			"sensorId": {
				"type": "string"
			}
		},
		"required": [
			"label",
			"sensorId"
		]
	},
	"RawJSON": {
		"title": "RawJSON",
		"type": "string"
	},
	"streamRequest": {
		"title": "streamRequest",
		"type": "object",
		"properties": {
			"data": {
				"type": "string"
			},
		},
		"required": [
			"data",
		]
	}
}

Last updated