io.atcr.hold.notifyManifest
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"blobInfo": {
"properties": {
"digest": {
"maxLength": 128,
"type": "string"
},
"size": {
"type": "integer"
}
},
"type": "object"
},
"childManifestInfo": {
"properties": {
"digest": {
"maxLength": 128,
"type": "string"
},
"mediaType": {
"maxLength": 256,
"type": "string"
},
"platform": {
"ref": "#platformInfo",
"type": "ref"
},
"size": {
"type": "integer"
}
},
"type": "object"
},
"layerInfo": {
"properties": {
"digest": {
"maxLength": 128,
"type": "string"
},
"mediaType": {
"maxLength": 256,
"type": "string"
},
"size": {
"type": "integer"
}
},
"type": "object"
},
"main": {
"description": "Notify hold about a manifest push or pull operation. For pushes: creates layer records and optionally posts to Bluesky. For pulls: just increments stats. Always increments pull/push counts.",
"errors": [
{
"name": "InvalidOperation"
},
{
"name": "UserMismatch"
},
{
"name": "QuotaExceeded"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"manifest": {
"ref": "#manifestInfo",
"type": "ref"
},
"manifestDigest": {
"description": "Manifest digest for building layer record AT-URIs",
"maxLength": 128,
"type": "string"
},
"operation": {
"default": "push",
"description": "Operation type (defaults to 'push' for backward compatibility)",
"knownValues": [
"push",
"pull"
],
"maxLength": 16,
"type": "string"
},
"repository": {
"description": "Image repository name",
"maxLength": 256,
"type": "string"
},
"tag": {
"description": "Image tag (optional, required for Bluesky posts)",
"maxLength": 128,
"type": "string"
},
"userDid": {
"description": "DID of the image owner",
"format": "did",
"type": "string"
}
},
"required": [
"repository",
"userDid",
"manifestDigest",
"manifest"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"layersCreated": {
"description": "Number of layer records created (push only)",
"type": "integer"
},
"operation": {
"description": "The operation that was performed ('push' or 'pull')",
"maxLength": 16,
"type": "string"
},
"postCreated": {
"description": "Whether a Bluesky post was created (push only)",
"type": "boolean"
},
"postUri": {
"description": "AT-URI of the created Bluesky post (if postCreated is true)",
"format": "at-uri",
"type": "string"
},
"statsUpdated": {
"description": "Whether stats were successfully updated",
"type": "boolean"
},
"success": {
"description": "Whether the operation completed successfully",
"type": "boolean"
}
},
"required": [
"success",
"operation",
"statsUpdated"
],
"type": "object"
}
},
"type": "procedure"
},
"manifestInfo": {
"description": "OCI manifest information",
"properties": {
"config": {
"ref": "#blobInfo",
"type": "ref"
},
"layers": {
"items": {
"ref": "#layerInfo",
"type": "ref"
},
"type": "array"
},
"manifests": {
"description": "Child manifests for multi-arch images",
"items": {
"ref": "#childManifestInfo",
"type": "ref"
},
"type": "array"
},
"mediaType": {
"description": "OCI media type",
"maxLength": 256,
"type": "string"
}
},
"type": "object"
},
"platformInfo": {
"properties": {
"architecture": {
"maxLength": 64,
"type": "string"
},
"os": {
"maxLength": 64,
"type": "string"
}
},
"type": "object"
}
},
"id": "io.atcr.hold.notifyManifest",
"lexicon": 1
}
Metadata
- DID
-
did:plc:wfj5kyialpmcv2fzk6uqwsln - CID
-
bafyreifcfn5q4yqfrmtteivicikyyukkb6plyraodqtuxlzilhnlbr2wxm - Indexed At
- 2026-02-18 19:30 UTC
- AT-URI
-
at://did:plc:wfj5kyialpmcv2fzk6uqwsln/com.atproto.lexicon.schema/io.atcr.hold.notifyManifest
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
io.atcr.manifest record
A container image manifest following OCI specification, stored in ATProto