{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://accounts.1kuo.net/contracts/application-connect/v1/schema.json",
  "title": "X-Project Application Connect profile v1",
  "type": "object",
  "required": ["contract_version", "profile_version", "registration_id", "issuer", "discovery_url", "tenant_id", "application", "status", "updated_at"],
  "properties": {
    "contract_version": {"const": "xproject.application-connect/v1.0.0"},
    "profile_version": {"type": "integer", "minimum": 1},
    "registration_id": {"$ref": "#/$defs/uuid"},
    "issuer": {"type": "string", "format": "uri", "pattern": "^https://"},
    "discovery_url": {"type": "string", "format": "uri", "pattern": "^https://"},
    "tenant_id": {"$ref": "#/$defs/uuid"},
    "application": {
      "type": "object",
      "required": ["application_record_id", "application_key", "client_id", "audience", "redirect_uri", "launch_uri", "scopes", "consumer_profile"],
      "properties": {
        "application_record_id": {"$ref": "#/$defs/uuid"},
        "application_key": {"type": "string", "pattern": "^[a-z][a-z0-9-]{2,80}$"},
        "client_id": {"type": "string", "minLength": 1, "maxLength": 160},
        "audience": {"type": "string", "format": "uri", "pattern": "^https://"},
        "redirect_uri": {"type": "string", "format": "uri", "pattern": "^https://"},
        "launch_uri": {"type": "string", "format": "uri", "pattern": "^https://"},
        "scopes": {"type": "array", "prefixItems": [{"const": "openid"}, {"const": "profile"}], "items": false, "minItems": 2, "maxItems": 2},
        "consumer_profile": {"const": "xproject.identity-application-admission/v1.0.0"}
      },
      "additionalProperties": false
    },
    "status": {"type": "string", "enum": ["ACTIVE", "DISABLED"]},
    "updated_at": {"type": "string", "format": "date-time"}
  },
  "additionalProperties": false,
  "$defs": {"uuid": {"type": "string", "format": "uuid"}}
}
