{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Validate a site or tile record before writing it and, for an authorized caller, prepare bard to serve it. Returns the AT-URI and CID the record will have, and the canonical record to write with putRecord at that key.",
"errors": [
{
"description": "A site without an rkey, or an rkey that is not a canonical hostname or valid TID.",
"name": "InvalidRecordKey"
},
{
"description": "The bound tile is still pending publication and cannot be bound yet.",
"name": "TileNotReady"
},
{
"description": "Bard is not connected to that space.",
"name": "SpaceNotFound"
},
{
"description": "Only the space's authority may publish in it.",
"name": "NotSpaceAuthority"
},
{
"description": "Too many preparations this hour.",
"name": "RateLimitExceeded"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"dryRun": {
"description": "Validate only, without preparing.",
"type": "boolean"
},
"record": {
"description": "A space.highport.sites.site or space.highport.sites.tile record, including $type.",
"type": "unknown"
},
"rkey": {
"description": "Required for a site (the hostname). For a tile: an existing rkey for a new version, a TID the client chose, or absent to let bard mint one.",
"type": "string"
},
"space": {
"description": "Validate as a record in this space. The caller must be its authority.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"record"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"format": "cid",
"type": "string"
},
"entryCount": {
"type": "integer"
},
"errors": {
"items": {
"ref": "space.highport.defs#validationError",
"type": "ref"
},
"type": "array"
},
"expiresAt": {
"format": "datetime",
"type": "string"
},
"missingBlobs": {
"items": {
"ref": "space.highport.defs#missingBlob",
"type": "ref"
},
"type": "array"
},
"parameterErrors": {
"items": {
"ref": "space.highport.defs#validationError",
"type": "ref"
},
"type": "array"
},
"prepared": {
"type": "boolean"
},
"reason": {
"knownValues": [
"DomainNotVerified",
"TileAuthorNotPermitted",
"PreparedQuotaExceeded",
"SpacePreparationUnsupported",
"DryRun"
],
"type": "string"
},
"record": {
"description": "The record as bard will serialize it. Write it exactly as returned.",
"type": "unknown"
},
"state": {
"ref": "space.highport.defs#indexState",
"type": "ref"
},
"totalBytes": {
"type": "integer"
},
"uri": {
"format": "at-uri",
"type": "string"
},
"valid": {
"type": "boolean"
}
},
"required": [
"valid",
"errors",
"parameterErrors",
"prepared",
"missingBlobs"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "space.highport.manage.validate",
"lexicon": 1
}