{"openapi":"3.1.0","info":{"title":"KYE PDP™ API","version":"1.0.0","license":{"name":"Apache-2.0","url":"https://kyeprotocol.com/legal.html"}},"paths":{"/decide":{"post":{"summary":"Run the deterministic decision pipeline","operationId":"decide","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["request"],"properties":{"request":{"type":"object","description":"The action to decide on. `authority_grant_id` names the mandate this action is taken under, so the consumption stage can find the quota grants bounding it. `context.units_by_metric` declares what this action would consume, keyed by quota metric_name (e.g. {\"payment_value_gbp_minor\": 62000}) — the PDP cannot infer the value of a payment or the token cost of a completion, so a request that declares nothing is charged against nothing.","properties":{"actor_entity_id":{"type":"string"},"principal_entity_id":{"type":"string"},"authority_grant_id":{"type":"string"},"requested_action":{"type":"string"},"purpose_class_id":{"type":"string"},"context":{"type":"object","properties":{"units_by_metric":{"type":"object","additionalProperties":{"type":"number"}}}}}},"policy_set_id":{"type":"string"}}}}}},"responses":{"200":{"description":"Decision record (kye.decision.record.v1)"},"400":{"description":"invalid_json / missing fields"},"404":{"description":"policy_set_not_found"},"503":{"description":"DB binding unavailable"}}}},"/health":{"get":{"summary":"Liveness probe","operationId":"health","responses":{"200":{"description":"OK"}}}},"/":{"get":{"summary":"Service descriptor","operationId":"descriptor","responses":{"200":{"description":"Descriptor JSON"}}}},"/openapi":{"get":{"summary":"OpenAPI spec","operationId":"openapi","responses":{"200":{"description":"OpenAPI 3.1 document"}}}}}}