{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://xcim.invalid/ietf/as01/schemas/locator.schema.json",
  "title": "AS01-F01 locator",
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "app_id"
      ],
      "properties": {
        "kind": {
          "const": "application"
        },
        "app_id": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "owner_id",
        "kid"
      ],
      "properties": {
        "kind": {
          "const": "key"
        },
        "owner_id": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
        },
        "kid": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/token"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "app_id",
        "domain",
        "role"
      ],
      "properties": {
        "kind": {
          "const": "domain"
        },
        "app_id": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
        },
        "domain": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/domain"
        },
        "role": {
          "enum": [
            "organizational",
            "rfc5322_from",
            "dkim_signing",
            "envelope_from",
            "link_domain",
            "consent_presentation_delegate"
          ]
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind",
        "app_id",
        "authorization_id"
      ],
      "properties": {
        "kind": {
          "const": "msa"
        },
        "app_id": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
        },
        "authorization_id": {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/hash"
        }
      }
    }
  ]
}
