{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:shiin:schema:audit-events:v1",
  "title": "Shiin audit event",
  "type": "object",
  "required": ["schema", "id", "timestamp", "kind", "prev", "self", "seq", "payload"],
  "properties": {
    "schema": { "type": "string", "const": "shiin.audit-event/v1-draft.2" },
    "id": { "$ref": "urn:shiin:schema:common:v1#/$defs/uuid_v4" },
    "timestamp": { "type": "string", "format": "date-time" },
    "kind": {
      "type": "string",
      "enum": [
        "request.received",
        "decision.made",
        "approval.requested",
        "approval.resolved",
        "grant.used",
        "grant.created",
        "grant.revoked"
      ]
    },
    "prev": { "$ref": "urn:shiin:schema:common:v1#/$defs/sha256" },
    "self": { "$ref": "urn:shiin:schema:common:v1#/$defs/sha256" },
    "seq": { "type": "integer", "minimum": 1 },
    "payload": {
      "type": "object",
      "required": ["digest"],
      "properties": { "digest": { "$ref": "urn:shiin:schema:common:v1#/$defs/sha256" } }
    },
    "request_id": { "$ref": "urn:shiin:schema:common:v1#/$defs/uuid" },
    "decision": { "type": "string", "enum": ["allow", "deny", "pending"] },
    "reason": { "type": "string" }
  },
  "additionalProperties": false
}
