blob: 41fbf4e9b9944de67892ab940fa9d6e9bbb9dbab [file] [log] [blame]
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://www.onap.org/policy/models/schemas/onap.policies.native.drools.Controller.schema.json",
"type": "object",
"title": "Domain onap.policies.native.drools.Controller Policy root schema",
"required": [
"type",
"type_version",
"version",
"metadata",
"properties"
],
"properties": {
"type": {
"$id": "#/properties/type",
"type": "string",
"title": "Policy Type",
"default": "onap.policies.native.drools.Controller",
"examples": [
"onap.policies.native.drools.Controller"
],
"pattern": "^(.+)$"
},
"type_version": {
"$id": "#/properties/type_version",
"type": "string",
"title": "Policy Type Version",
"examples": [
"1.0.0"
],
"pattern": "^(.+)$"
},
"version": {
"$id": "#/properties/version",
"type": "string",
"title": "Version",
"examples": [
"1.0.0"
],
"pattern": "^(.+)$"
},
"name": {
"$id": "#/properties/name",
"type": "string",
"title": "Name",
"examples": [
"example"
],
"pattern": "^(.+)$"
},
"metadata": {
"$id": "#/properties/metadata",
"type": "object",
"title": "Metadata",
"required": [
"policy-id"
],
"properties": {
"policy-id": {
"$id": "#/properties/metadata/properties/policy-id",
"type": "string",
"title": "The policy-id Schema",
"examples": [
"example"
],
"pattern": "^(.+)$"
}
}
},
"properties": {
"$id": "#/properties/properties",
"type": "object",
"title": "Policy Domain Properties",
"required": [
"controllerName"
],
"properties": {
"controllerName": {
"$id": "#/properties/properties/properties/controllerName",
"type": "string",
"title": "Controller Name",
"examples": [
"example"
],
"pattern": "^(.+)$"
},
"sourceTopics": {
"$id": "#/properties/properties/properties/sourceTopics",
"type": "array",
"title": "Source Topics",
"items": {
"$id": "#/properties/properties/properties/sourceTopics/items",
"type": "object",
"title": "Topic Sources",
"required": [
"topicName",
"events"
],
"properties": {
"topicName": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/topicName",
"type": "string",
"title": "Topic Name",
"examples": [
"DCAE_TOPIC"
],
"pattern": "^(.+)$"
},
"events": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events",
"type": "array",
"title": "Source Events",
"items": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items",
"type": "object",
"title": "Event Information",
"required": [
"eventClass"
],
"properties": {
"eventClass": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items/properties/eventClass",
"type": "string",
"title": "Event Class",
"examples": [
"org.onap.policy.controlloop.CanonicalOnset"
],
"pattern": "^(.+)$"
},
"eventFilter": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items/properties/eventFilter",
"type": "string",
"title": "Event Filter",
"examples": [
"[?($.closedLoopEventStatus == 'ONSET')]"
],
"pattern": "^(.+)$"
},
"customSerialization": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items/properties/customSerialization",
"type": "object",
"title": "Custom Serialization",
"required": [
"customSerializerClass",
"jsonParser"
],
"properties": {
"customSerializerClass": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items/properties/customSerialization/properties/customSerializerClass",
"type": "string",
"title": "Custom Serializer Class for customized JSON parsing",
"examples": [
"org.onap.policy.controlloop.util.Serialization"
],
"pattern": "^(.+)$"
},
"jsonParser": {
"$id": "#/properties/properties/properties/sourceTopics/items/properties/events/items/properties/customSerialization/properties/jsonParser",
"type": "string",
"title": "JSON Parser Static Field (currently only GSON is supported)",
"examples": [
"gson"
],
"pattern": "^(.+)$"
}
}
}
}
}
}
}
}
},
"sinkTopics": {
"$id": "#/properties/properties/properties/sinkTopics",
"type": "array",
"title": "Sink Topics",
"items": {
"$id": "#/properties/properties/properties/sinkTopics/items",
"type": "object",
"title": "Sink Topic Data",
"required": [
"topicName",
"events"
],
"properties": {
"topicName": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/topicName",
"type": "string",
"title": "Topic Name",
"default": "",
"examples": [
"APPC-CL"
],
"pattern": "^(.+)$"
},
"events": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events",
"type": "array",
"title": "Source Events",
"items": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items",
"type": "object",
"title": "Event Information",
"required": [
"eventClass"
],
"properties": {
"eventClass": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items/properties/eventClass",
"type": "string",
"title": "Event Class",
"examples": [
"org.onap.policy.appc.Response"
],
"pattern": "^(.+)$"
},
"eventFilter": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items/properties/eventFilter",
"type": "string",
"title": "Event Filter",
"examples": [
"[?($.CommonHeader && $.Status)]"
],
"pattern": "^(.+)$"
},
"customSerialization": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items/properties/customSerialization",
"type": "object",
"title": "Custom Serialization",
"required": [
"customSerializerClass",
"jsonParser"
],
"properties": {
"customSerializerClass": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items/properties/customSerialization/properties/customSerializerClass",
"type": "string",
"title": "Custom Serializer Class for customized JSON parsing",
"examples": [
"org.onap.policy.controlloop.util.Serialization"
],
"pattern": "^(.+)$"
},
"jsonParser": {
"$id": "#/properties/properties/properties/sinkTopics/items/properties/events/items/properties/customSerialization/properties/jsonParser",
"type": "string",
"title": "JSON Parser Static Field (currently only GSON is supported)",
"examples": [
"gson"
],
"pattern": "^(.+)$"
}
}
}
}
}
}
}
}
},
"customConfig": {
"$id": "#/properties/properties/properties/customConfig",
"type": "object",
"title": "other Configuration",
"additionalProperties": {
"type": "string"
}
}
}
}
}
}