{"$id":"https://zenith-research.ca/ontology/zenith/shared/v0.1.0/product.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"@id":{"maxLength":2048,"type":"string"},"@type":{"const":"https://zenith-research.ca/ontology/zenith/terms/Product"},"applications":{"items":{"maxLength":2048,"type":"string"},"maxItems":32,"type":"array"},"definition":{"additionalProperties":false,"properties":{"context":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"definition":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"pointer":{"maxLength":1024,"type":"string"}},"required":["artifact","pointer"],"type":"object"},"schema":{"additionalProperties":false,"properties":{"artifact":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"dialect":{"const":"http://json-schema.org/draft-07/schema#","type":"string"},"pointer":{"maxLength":1024,"type":"string"}},"required":["artifact","pointer","dialect"],"type":"object"},"termIri":{"const":"https://zenith-research.ca/ontology/zenith/terms/Product"}},"required":["termIri","definition","schema","context"],"type":"object"},"description":{"maxLength":10000,"minLength":1,"type":"string"},"evidence":{"items":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"maxItems":32,"minItems":1,"type":"array"},"name":{"maxLength":256,"minLength":1,"type":"string"},"ontologyAssociations":{"contains":{"properties":{"role":{"const":"product-specific-vocabulary"}},"required":["role"],"type":"object"},"items":{"additionalProperties":false,"properties":{"evidence":{"items":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"maxItems":32,"minItems":1,"type":"array"},"family":{"maxLength":128,"minLength":1,"type":"string"},"ontologyId":{"maxLength":2048,"type":"string"},"role":{"enum":["product-specific-vocabulary","dependency","reference"],"type":"string"},"selections":{"items":{"additionalProperties":false,"properties":{"dependencyArtifacts":{"items":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"maxItems":256,"type":"array"},"format":{"maxLength":128,"minLength":1,"type":"string"},"manifest":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"profile":{"maxLength":256,"minLength":1,"type":"string"},"readerContext":{"additionalProperties":false,"properties":{"catalogue":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"occurrenceRef":{"pattern":"^o-[a-f0-9]{64}$","type":"string"},"profileRef":{"pattern":"^p-[a-f0-9]{64}$","type":"string"},"revisionRef":{"pattern":"^d-[a-f0-9]{64}$","type":"string"},"sourceRef":{"pattern":"^s-[a-f0-9]{64}$","type":"string"}},"required":["sourceRef","profileRef","revisionRef","occurrenceRef","catalogue"],"type":"object"},"release":{"maxLength":128,"minLength":1,"type":"string"},"requiredArtifacts":{"items":{"additionalProperties":false,"properties":{"bytes":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"mediaType":{"maxLength":128,"pattern":"^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$","type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","sha256","bytes","mediaType"],"type":"object"},"maxItems":256,"minItems":1,"type":"array"}},"required":["manifest","format","release","requiredArtifacts","dependencyArtifacts"],"type":"object"},"maxItems":32,"minItems":1,"type":"array"}},"required":["ontologyId","role","selections","evidence"],"type":"object"},"maxItems":32,"minItems":1,"type":"array"},"repositories":{"items":{"maxLength":2048,"type":"string"},"maxItems":32,"type":"array"},"schemaVersion":{"const":"zenith.product-record.v1","type":"string"}},"required":["@id","@type","schemaVersion","name","description","definition","evidence","ontologyAssociations"],"type":"object"}
