74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
{
 | 
						|
  "$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
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |