{ "$schema": "http://json-schema.org/draft-06/schema#", "id": "http://cocina.sul.stanford.edu/schemas/File", "title": "File", "description": "Binaries that are the basis of what our domain manages. Binaries here do not include metadata files generated for the domain's own management purposes.", "type": "object", "required": ["@context", "@type", "externalIdentifier", "internalIdentifier", "label", "version", "administrative", "access", "identification", "structural"], "properties": { "@context": { "description": "URI for the JSON-LD context definitions.", "type": "string" }, "@type": { "description": "The content type of the File.", "type": "string", "enum": [ "http://cocina.sul.stanford.edu/models/file.jsonld" ] }, "depositor": { "description": "The Agent (User, Group, Application, Department, other) that deposited the File into SDR.", "$ref": "/Agent" }, "externalIdentifier": { "description": "Identifier for the resource within the SDR architecture but outside of the repository. UUID. Constant across resource versions. What clients will use calling the repository. Same as `identification.identifier`", "type": "string" }, "filename": { "description": "Filename for a file. Can be same as label.", "type": "string" }, "format": { "description": "Format of the File.", "type": "string" }, "hasMessageDigests": { "description": "The output of the message digest algorithm.", "type": "array", "items": { "required": ["type", "digest"], "properties": { "type": { "description": "The algorithm that was used", "type": "string", "enum": ["md5", "sha1"] }, "digest": { "description": "The digest value", "type": "string" } } } }, "hasMimeType": { "description": "MIME Type of the File.", "type": "string" }, "label": { "description": "Primary processing label (can be same as title) for a File.", "type": "string" }, "presentation": { "description": "Presentation data for the File.", "type": "object", "properties": { "height": { "description": "Height in pixels", "type": "integer" }, "width": { "description": "Width in pixels", "type": "integer" } } }, "size": { "description": "Size of the File (binary) in bytes.", "type": "integer" }, "internalIdentifier": { "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.", "type": "string" }, "use": { "description": "Use for the File.", "type": "string" }, "version": { "description": "Version for the File within SDR.", "type": "integer" }, "precedingVersion": { "description": "Preceding version for the File within SDR.", "type": "string" }, "followingVersion": { "description": "Following version for the File within SDR.", "type": "string" }, "access": { "description": "Access Metadata for the File.", "type": "object", "required": ["access", "download"], "properties": { "access": { "description": "Access level for the File. If \"dark\" this won't go into public xml contentMetadata.", "type": "string", "enum": ["world", "stanford", "location-based", "citation-only", "dark"] }, "download": { "description": "Download level for the File binary.", "type": "string", "enum": ["world", "stanford", "location-based", "citation-only", "dark"] } } }, "administrative": { "type": "object", "description": "Administrative metadata for the SDR resource.", "required": ["created", "sdrPreserve"], "properties": { "created": { "description": "When the resource in SDR was created.", "type": "string", "format": "date-time" }, "deleted": { "description": "If the resource has been deleted (but not purged).", "type": "boolean" }, "gravestoneMessage": { "description": "Message describing why the resource was deleted.", "type": "string" }, "lastUpdated": { "description": "When the resource in SDR was last updated.", "type": "string", "format": "date-time" }, "partOfProject": { "description": "Administrative or Internal project this resource is a part of.", "type": "string" }, "sdrPreserve": { "description": "If this resource should be sent to Preservation.", "type": "boolean" }, "shelve": { "description": "If this resource should be sent to Stacks.", "type": "boolean" }, "remediatedBy": { "description": "The Agent (User, Group, Application, Department, other) that remediated this File in SDR.", "type": "array", "items": { "$ref": "/Agent" } } } }, "identification": { "description": "Identifying information for the File.", "type": "object", "required": ["identifier", "sdrUUID"], "properties": { "filename": { "description": "Filename for the File from originating systems.", "type": "string" }, "identifier": { "description": "Identifier for the File within the Stanford Digital Repository system", "type": "string" }, "sdrUUID": { "type": "string", "description": "UUID previously minted for the resource within SDR2 / Fedora 3." } } }, "structural": { "description": "Structural metadata for the File.", "type": "object", "required": ["isContainedBy"], "properties": { "isContainedBy": { "description": "Fileset that contains this File.", "type": "string" }, "isTargetOf": { "description": "An Annotation instance that applies to this File.", "type": "string" } } } } }