{ "$id": "https://stella-ops.org/schemas/notify/notify-channel@1.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Notify Channel", "type": "object", "required": [ "schemaVersion", "channelId", "tenantId", "name", "type", "config", "enabled", "createdAt", "updatedAt" ], "properties": { "schemaVersion": {"type": "string", "const": "notify.channel@1"}, "channelId": {"type": "string"}, "tenantId": {"type": "string"}, "name": {"type": "string"}, "type": { "type": "string", "enum": ["slack", "teams", "email", "webhook", "custom"] }, "displayName": {"type": "string"}, "description": {"type": "string"}, "config": {"$ref": "#/$defs/channelConfig"}, "enabled": {"type": "boolean"}, "labels": {"$ref": "#/$defs/stringMap"}, "metadata": {"$ref": "#/$defs/stringMap"}, "createdBy": {"type": "string"}, "createdAt": {"type": "string", "format": "date-time"}, "updatedBy": {"type": "string"}, "updatedAt": {"type": "string", "format": "date-time"} }, "additionalProperties": false, "$defs": { "channelConfig": { "type": "object", "required": ["secretRef"], "properties": { "secretRef": {"type": "string"}, "target": {"type": "string"}, "endpoint": {"type": "string", "format": "uri"}, "properties": {"$ref": "#/$defs/stringMap"}, "limits": {"$ref": "#/$defs/channelLimits"} }, "additionalProperties": false }, "channelLimits": { "type": "object", "properties": { "concurrency": {"type": "integer", "minimum": 1}, "requestsPerMinute": {"type": "integer", "minimum": 1}, "timeout": { "type": "string", "pattern": "^P(T.*)?$", "description": "ISO 8601 duration" }, "maxBatchSize": {"type": "integer", "minimum": 1} }, "additionalProperties": false }, "stringMap": { "type": "object", "patternProperties": { ".*": {"type": "string"} }, "additionalProperties": false } } }