{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tylereno.me/oidf/schemas/security/authorize_request.json",
  "title": "AuthorizeRequest",
  "x-keel-schema-version": "1.0.0",
  "type": "object",
  "additionalProperties": false,
  "required": ["principal_id", "action", "resource"],
  "properties": {
    "principal_id": { "$ref": "../common/identifier.json" },
    "action": {
      "type": "string",
      "enum": [
        "evidence.submit",
        "evidence.validate",
        "transition.request",
        "config.revise",
        "sync.import",
        "plugin.admin"
      ]
    },
    "resource": {
      "type": "object",
      "additionalProperties": false,
      "required": ["kind", "id"],
      "properties": {
        "kind": {
          "type": "string",
          "enum": ["Deployment", "Asset", "Configuration", "Node", "Plugin"]
        },
        "id": { "$ref": "../common/identifier.json" }
      }
    }
  }
}
