at.happyproto.registry.putStatus

happyproto.at

Documentation

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`.

main procedure

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`.

Input

Encodingapplication/json
kind string Optional

Why, as a category a client can act on.

maxLength: 64 bytes
reason string Optional

Why, in words shown to operators.

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
status string Required

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`.

maxLength: 64 bytes
subject stringat-uri Required

The caller's software.release.project or software.release.version the status is about.

supersededBy string Optional

Required when status is `supersededBy`: the version of the same project to use instead.

maxLength: 64 bytesminLength: 1 bytes
withdraws stringat-uri Optional

Required when status is `withdrawn`: the caller's software.release.status record to cancel.

Output

Encodingapplication/json
cid stringcid Required

A content identifier (CID) referencing immutable data.

uri stringat-uri Required

The software.release.status written.

Errors

AuthRequired The caller's identity could not be determined, so there is no repo to write to.
NotConfigured The registry has no identity configured. An operator problem, not a caller's.
InvalidRecord The input breaks a rule the registry applies, so it would refuse the records. The message names the field.
Upstream 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.
SubjectNotFound The subject, or the status named in withdraws, is not an indexed record of the caller's.
InvalidStatus The status is missing a field it requires, such as supersededBy or withdraws, or names one that is not valid.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "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"
}

Lexicon Garden

@