{ "definitions": {}, "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://www.onap.org/policy/models/schemas/onap.policies.drools.Controller.schema.json", "type": "object", "title": "Domain onap.policies.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", "examples": [ "onap.policies.native.Drools" ], "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 Data", "required": [ "topicName", "serialization" ], "properties": { "topicName": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/topicName", "type": "string", "title": "Topic Name", "examples": [ "DCAE_TOPIC" ], "pattern": "^(.+)$" }, "serialization": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization", "type": "array", "title": "Serialization", "items": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items", "type": "object", "title": "Serialization Data", "required": [ "eventClass", "eventFilter", "customSerializer" ], "properties": { "eventClass": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items/properties/eventClass", "type": "string", "title": "Event Class", "examples": [ "org.onap.policy.controlloop.CanonicalOnset" ], "pattern": "^(.+)$" }, "eventFilter": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items/properties/eventFilter", "type": "string", "title": "Event Filter", "examples": [ "[?($.closedLoopEventStatus == 'ONSET')]" ], "pattern": "^(.+)$" }, "customSerializer": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items/properties/customSerializer", "type": "object", "title": "Custom Serializer", "required": [ "customSerializerClass", "jsonParser" ], "properties": { "customSerializerClass": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items/properties/customSerializer/properties/customSerializerClass", "type": "string", "title": "Custom Serializer Class", "examples": [ "org.onap.policy.controlloop.util.Serialization" ], "pattern": "^(.*)$" }, "jsonParser": { "$id": "#/properties/properties/properties/sourceTopics/items/properties/serialization/items/properties/customSerializer/properties/jsonParser", "type": "string", "title": "JSON Parser reference", "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", "serialization" ], "properties": { "topicName": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/topicName", "type": "string", "title": "Topic Name", "default": "", "examples": [ "APPC-CL" ], "pattern": "^(.+)$" }, "serialization": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization", "type": "array", "title": "The Serialization Schema", "items": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items", "type": "object", "title": "Serialization Data", "required": [ "eventClass", "eventFilter" ], "properties": { "eventClass": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items/properties/eventClass", "type": "string", "title": "Event Class", "examples": [ "org.onap.policy.appc.Response" ], "pattern": "^(.+)$" }, "eventFilter": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items/properties/eventFilter", "type": "string", "title": "The Eventfilter Schema", "examples": [ "[?($.CommonHeader && $.Status)]" ], "pattern": "^(.+)$" }, "customSerializer": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items/properties/customSerializer", "type": "object", "title": "The Customserializer Schema", "required": [ "customSerializerClass", "jsonParser" ], "properties": { "customSerializerClass": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items/properties/customSerializer/properties/customSerializerClass", "type": "string", "title": "The Customserializerclass Schema", "examples": [ "org.onap.policy.appc.util.Serialization" ], "pattern": "^(.+)$" }, "jsonParser": { "$id": "#/properties/properties/properties/sinkTopics/items/properties/serialization/items/properties/customSerializer/properties/jsonParser", "type": "string", "title": "The Jsonparser Schema", "examples": [ "gsonPretty" ], "pattern": "^(.+)$" } } } } } } } } }, "customConfig": { "$id": "#/properties/properties/properties/customConfig", "type": "object", "title": "other Configuration", "additionalProperties": { "type": "string" } } } } } }