{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.opencityitalia.it/tenant-manager/tenant/v1.json",
  "title": "Tenant",
  "description": "Istanza di prodotto Opencontent registrata nel tenant-manager.",
  "type": "object",
  "properties": {
    "uuid":        { "title": "UUID", "type": "string", "format": "uuid", "description": "UUID del tenant." },
    "name":        { "title": "Nome", "type": "string" },
    "app_id":      { "title": "ID applicativo", "type": "string", "description": "ID con cui l'applicativo individua il tenant (UUID, slug, o altro formato a seconda del prodotto)." },
    "app_name": {
      "title": "Tipo prodotto",
      "type": "string",
      "enum": ["oc-forms","website-comuni","website-asl","website-regioni","website-custom","chatbot","connect","crawler","agenda-eventi","sensor-civico","spazi-comuni","sdc"],
      "description": "Tipo di prodotto Opencontent."
    },
    "environment": {
      "title": "Ambiente",
      "type": "string",
      "enum": ["prod", "qa"]
    },
    "cluster": {
      "title": "Cluster",
      "type": "string",
      "enum": ["boat", "lifeboat", "legacy-saas"]
    },
    "status": {
      "title": "Stato",
      "type": "string",
      "enum": ["activation_pending","provisioning","active","deploying","production","grace_period","suspended","locked","archiving","archived","deleting","deleted"]
    },
    "plan_name": {
      "title": "Piano",
      "type": ["string", "null"],
      "enum": ["Small", "Medium", "Large", "XL", "XXL", "XXXL", null]
    },
    "customer":     { "title": "Cliente",  "type": ["string", "null"], "description": "ID del record nella collection customers." },
    "organization": { "title": "Partner",  "type": ["string", "null"], "description": "ID del record nella collection organizations." },
    "config":       { "title": "Configurazione", "type": ["object", "null"], "description": "Configurazione specifica dell'applicativo (JSON form.io)." },
    "config_schema_version": { "title": "Versione schema config", "type": ["number", "null"], "description": "Versione dello schema form.io usata per la config." },
    "job_id":  { "title": "Job ID", "type": ["string", "null"], "description": "ID del job Windmill in corso durante stati transitori." }
  },
  "required": ["uuid", "name", "app_id", "app_name", "environment", "cluster", "status"]
}
