{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/jupyter-server/main/json-schema/jupyter-server-contents-model.json",
  "title": "Jupyter Server Contents Model",
  "description": "Schema for the contents model returned by the Jupyter Server REST API for files, directories, and notebooks.",
  "type": "object",
  "required": ["name", "path", "type"],
  "properties": {
    "name": {
      "type": "string",
      "description": "Basename of the entity."
    },
    "path": {
      "type": "string",
      "description": "Full path of the entity, relative to the server root."
    },
    "type": {
      "type": "string",
      "enum": ["file", "directory", "notebook"],
      "description": "Kind of contents."
    },
    "writable": {
      "type": "boolean",
      "description": "Whether the entity is writable."
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "Creation timestamp."
    },
    "last_modified": {
      "type": "string",
      "format": "date-time",
      "description": "Last modified timestamp."
    },
    "mimetype": {
      "type": ["string", "null"],
      "description": "MIME type of the file (null for directories and notebooks)."
    },
    "content": {
      "description": "File contents, directory listing, or notebook JSON. Null when content is not requested."
    },
    "format": {
      "type": ["string", "null"],
      "enum": ["text", "base64", "json", null],
      "description": "Encoding of the content."
    },
    "size": {
      "type": ["integer", "null"],
      "description": "Size of the entity in bytes."
    },
    "hash": {
      "type": ["string", "null"],
      "description": "Hash of the file contents."
    }
  }
}
