From 94b873f20f2f6af3c5284881cdd4d1d28b5cf15b Mon Sep 17 00:00:00 2001 From: Piotr Jaszczyk Date: Mon, 25 Mar 2019 09:19:01 +0100 Subject: JSON Schema support for direct Kafka connections A follow up of https://gerrit.onap.org/r/#/c/78906/ Change-Id: Iaa4f48963c335396c1f647b1071fbad3e5285245 Issue-ID: DCAEGEN2-1266 Signed-off-by: Piotr Jaszczyk --- .../dcae-cli-v3-draft/dmaap-schema.json | 149 +++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json (limited to 'component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json') diff --git a/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json b/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json new file mode 100644 index 0000000..1c36972 --- /dev/null +++ b/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json @@ -0,0 +1,149 @@ +{ + "$id": "http://onap.org/dcaegen2/platform/dmaap", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema for dmaap inputs", + "type": "object", + + "oneOf": [ + { "$ref": "#/definitions/message_router" }, + { "$ref": "#/definitions/data_router" }, + { "$ref": "#/definitions/kafka" } + ], + + "definitions": { + + "message_router": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["message_router"] + }, + "aaf_credentials": { + "$ref": "#/definitions/aaf_credentials" + }, + "aaf_username": { + "description": "Used for backward compatibility. Use aaf_credentials object in new code.", + "type": "string" + }, + "aaf_password": { + "description": "Used for backward compatibility. Use aaf_credentials object in new code.", + "type": "string" + }, + "dmaap_info": { + "$ref":"#/definitions/dmaap_info" + } + }, + "required": [ + "type", + "dmaap_info" + ], + "additionalProperties": false + }, + + "data_router": { + "type": "object", + "$comment": "This is currently not specified in schema. However, it is specified in RTD documentation. TODO: specify schema for DMaaP DR", + "properties": { + "type": { + "type": "string", + "enum": ["data_router"] + } + }, + "required": [ + "type" + ], + "additionalProperties": true + }, + + "dmaap_info": { + "type": "object", + "properties": { + "client_role": { + "type": "string" + }, + "client_id": { + "type": "string" + }, + "location": { + "type": "string" + }, + "topic_url": { + "type": "string" + } + }, + "required": [ + "topic_url" + ], + "additionalProperties": false + }, + + "kafka": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["kafka"] + }, + "aaf_credentials": { + "$ref": "#/definitions/aaf_credentials" + }, + "kafka_info": { + "$ref": "#/definitions/kafka_info" + } + }, + "required": [ + "type", + "kafka_info" + ], + "additionalProperties": false + }, + + "kafka_info": { + "type": "object", + "description": "Defines Kafka-specific topid properties", + "properties": { + "client_role": { + "type": "string" + }, + "client_id": { + "type": "string" + }, + "bootstrap_servers": { + "description": "Comma separated list of Kafka bootstrap servers as defined in Kafka documentation", + "type": "string" + }, + "topic_name": { + "description": "Name of the topic", + "type": "string" + }, + "consumer_group_id": { + "description": "Can be specifed only for subscribers. More details in Kafka documentation on group.id property", + "type": "string" + }, + "max_payload_size_bytes": { + "description": "Maximum payload size in bytes. Can be used for validation or creating Kafka client properties.", + "type": "string" + } + }, + "required": [ + "bootstrap_servers", + "topic_name" + ], + "additionalProperties": false + }, + + "aaf_credentials": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false + } + } +} -- cgit 1.2.3-korg