diff options
Diffstat (limited to 'mod/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json')
-rw-r--r-- | mod/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/mod/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json b/mod/component-json-schemas/dcae-cli-v3-draft/dmaap-schema.json new file mode 100644 index 0000000..1c36972 --- /dev/null +++ b/mod/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 + } + } +} |