at.happyproto.registry.putStatus
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Add a software.release.status record about one of the caller's projects or versions. Statuses are never edited or deleted: to cancel one, add another with status `withdrawn` that names it in `withdraws`.",
"errors": [
{
"description": "The caller's identity could not be determined, so there is no repo to write to.",
"name": "AuthRequired"
},
{
"description": "The registry has no identity configured. An operator problem, not a caller's.",
"name": "NotConfigured"
},
{
"description": "The input breaks a rule the registry applies, so it would refuse the records. The message names the field.",
"name": "InvalidRecord"
},
{
"description": "A record could not be written to the caller's repo. Records written before the failure stay, and the same call can be made again.",
"name": "Upstream"
},
{
"description": "The subject, or the status named in withdraws, is not an indexed record of the caller's.",
"name": "SubjectNotFound"
},
{
"description": "The status is missing a field it requires, such as supersededBy or withdraws, or names one that is not valid.",
"name": "InvalidStatus"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"kind": {
"description": "Why, as a category a client can act on.",
"knownValues": [
"security",
"broken",
"superseded"
],
"maxLength": 64,
"type": "string"
},
"reason": {
"description": "Why, in words shown to operators.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"status": {
"description": "An ECMA-428 event type. `endOfDevelopment`, `endOfSupport` and `supersededBy` deprecate the subject; `endOfDistribution` makes it unavailable; `endOfLife` retires it; `withdrawn` cancels the status named in `withdraws`.",
"knownValues": [
"endOfDevelopment",
"endOfSupport",
"supersededBy",
"endOfDistribution",
"endOfLife",
"withdrawn"
],
"maxLength": 64,
"type": "string"
},
"subject": {
"description": "The caller's software.release.project or software.release.version the status is about.",
"format": "at-uri",
"type": "string"
},
"supersededBy": {
"description": "Required when status is `supersededBy`: the version of the same project to use instead.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"withdraws": {
"description": "Required when status is `withdrawn`: the caller's software.release.status record to cancel.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"subject",
"status"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"format": "cid",
"type": "string"
},
"uri": {
"description": "The software.release.status written.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"cid"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "at.happyproto.registry.putStatus",
"lexicon": 1
}
Metadata
- DID
-
did:plc:mo7vq4jbioxwafy5zkcc3eux - CID
-
bafyreihjmpcok36b2lasrdnwsyjqcc5hsylluwdv5vos6cb575ywzmeyxa - Indexed At
- 2026-10-26 21:34 UTC
- AT-URI
-
at://did:plc:mo7vq4jbioxwafy5zkcc3eux/com.atproto.lexicon.schema/at.happyproto.registry.putStatus
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.happyproto.registry.withdrawRelease procedure
Delete a release record the caller published. This is how a publisher withdraws a release: it deletes from the caller's own repo as them, where com.atproto.repo.deleteRecord sent through a HappyView instance goes wherev…