{
"id": "dev.mccue.jvm.module",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"variants",
"createdAt"
],
"properties": {
"indexMe": {
"type": "boolean",
"default": false
},
"variants": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#variant",
"type": "ref"
},
"minLength": 1,
"description": "Variants of the same module at the same 'version'"
},
"createdAt": {
"type": "string",
"format": "datetime"
}
}
},
"description": "A JVM Module published for wider consumption."
},
"uses": {
"type": "object",
"required": [
"service"
],
"properties": {
"service": {
"type": "string",
"minLength": 3
}
}
},
"hashes": {
"type": "object",
"required": [
"module",
"algorithm",
"hash"
],
"properties": {
"hash": {
"type": "string",
"minLength": 1
},
"module": {
"type": "string",
"minLength": 1
},
"algorithm": {
"type": "string",
"minLength": 1
}
}
},
"exports": {
"type": "object",
"required": [
"package"
],
"properties": {
"to": {
"type": "string",
"minLength": 1
},
"package": {
"type": "string",
"minLength": 1
},
"mandated": {
"type": "boolean",
"default": false
},
"synthetic": {
"type": "boolean",
"default": false
}
}
},
"variant": {
"type": "object",
"required": [
"artifact"
],
"properties": {
"license": {
"type": "string",
"description": "SPDX License String"
},
"artifact": {
"type": "blob",
"accept": [
"application/zip",
"application/java-archive"
],
"maxSize": 10000000
},
"copiedFrom": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "A reference to where this module was copied from."
},
"moduleInfo": {
"ref": "dev.mccue.jvm.module#moduleInfo",
"type": "ref"
},
"billOfMaterials": {
"type": "string",
"description": "SBOM in CycloneDX format"
},
"cpuArchitecture": {
"type": "string"
},
"operatingSystem": {
"type": "string"
}
}
},
"packages": {
"type": "object",
"required": [
"package"
],
"properties": {
"package": {
"type": "string",
"minLength": 1
}
}
},
"provides": {
"type": "object",
"required": [
"service",
"with"
],
"properties": {
"with": {
"type": "string",
"minLength": 3
},
"service": {
"type": "string",
"minLength": 3
}
}
},
"requires": {
"type": "object",
"required": [
"module"
],
"properties": {
"module": {
"type": "string",
"minLength": 1
},
"static": {
"type": "boolean",
"default": false
},
"version": {
"type": "string",
"minLength": 1
},
"mandated": {
"type": "boolean",
"default": false
},
"synthetic": {
"type": "boolean",
"default": false
},
"transitive": {
"type": "boolean",
"default": false
}
}
},
"moduleInfo": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"uses": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#uses",
"type": "ref"
}
},
"hashes": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#hashes",
"type": "ref"
}
},
"exports": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#exports",
"type": "ref"
}
},
"version": {
"type": "string",
"minLength": 1
},
"mandated": {
"type": "boolean",
"default": false
},
"packages": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#requires",
"type": "ref"
}
},
"provides": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#provides",
"type": "ref"
}
},
"requires": {
"type": "array",
"items": {
"ref": "dev.mccue.jvm.module#requires",
"type": "ref"
}
},
"synthetic": {
"type": "boolean",
"default": false
},
"targetPlatform": {
"type": "string",
"minLength": 1
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}