{ "$schema": "https://internect.info/lexicon-schema.json", "lexicon": 1, "id": "ac.hexmani.firehook.hook", "description": "A declaration of a webhook", "defs": { "main": { "type": "record", "key": "any", "record": { "type": "object", "required": ["identifier", "scope"], "properties": { "name": { "type": "string", "description": "String that identifies the webhook's purpose" }, "scope": { "type": "union", "description": "Arbitrary permissions for valid webhook events", "refs": ["#publicScope", "#didScope", "#signatureScope"] }, "parcel": { "type": "unknown", "description": "Section for defining additional data" } } } }, "publicScope": { "type": "object", "required": ["scope"], "description": "Scope that allows anyone to create verified events", "properties": { "scope": { "type": "string", "const": "publicScope" } } }, "didScope": { "type": "object", "required": ["scope", "dids"], "description": "Scope that declares a list of DIDs that can create verified events", "properties": { "scope": { "type": "string", "const": "didScope" }, "dids": { "type": "array", "items": { "type": "string", "format": "did", "description": "DIDs of the entities that can trigger the webhook" } } } }, "signatureScope": { "type": "object", "required": ["scope", "key"], "description": "Scope that declares a public key that must be used to verify events", "properties": { "scope": { "type": "string", "const": "signatureScope" }, "key": { "type": "string", "description": "Multibase-encoded p256 public key" } } } } }