{ "$defs": { "service_state": { "oneOf": [ { "const": "unavailable" }, { "const": "available" }, { "const": "error" } ], "type": "string" }, "service_type": { "oneOf": [ { "const": "public" }, { "const": "internal" } ], "type": "string" }, "service": { "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "state": { "$ref": "#/$defs/service_state" }, "type": { "$ref": "#/$defs/service_type" }, "uri": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" } }, "required": [ "name", "version", "state", "type", "uri" ], "type": "object" }, "service_deleted_event": { "properties": { "name": { "type": "string" }, "timestamp": { "type": "string" } }, "required": [ "name", "timestamp" ], "type": "object" }, "service_upserted_event": { "properties": { "service": { "$ref": "#/$defs/service" }, "timestamp": { "type": "string" } }, "required": [ "service", "timestamp" ], "type": "object" }, "service_event": { "anyOf": [ { "$ref": "#/$defs/service_upserted_event" }, { "$ref": "#/$defs/service_deleted_event" } ] } }, "additionalProperties": true, "properties": { "authenticated": { "const": true, "type": "boolean" }, "body": { "type": "object" }, "rawBody": { "type": "object" }, "headers": { "type": "object" }, "method": { "const": "GET", "type": "string" }, "parameterizedUrl": { "const": "/", "type": "string" }, "path": { "type": "string" }, "query": { "properties": { "offset": { "type": "integer" }, "limit": { "type": "integer" }, "sort_by": { "type": "string" }, "direction": { "$ref": "#/$defs/sort_direction" } }, "required": [ "offset", "limit", "sort_by", "direction" ], "type": "object" }, "url": { "type": "string" } }, "required": [ "body", "rawBody", "query", "path", "url", "method" ], "type": "object" }