74 lines
2.4 KiB
JSON
74 lines
2.4 KiB
JSON
{
|
|
"lexicon": 1,
|
|
"id": "com.atproto.repo.putRecord",
|
|
"defs": {
|
|
"main": {
|
|
"type": "procedure",
|
|
"description": "Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.",
|
|
"input": {
|
|
"encoding": "application/json",
|
|
"schema": {
|
|
"type": "object",
|
|
"required": ["repo", "collection", "rkey", "record"],
|
|
"nullable": ["swapRecord"],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"format": "at-identifier",
|
|
"description": "The handle or DID of the repo (aka, current account)."
|
|
},
|
|
"collection": {
|
|
"type": "string",
|
|
"format": "nsid",
|
|
"description": "The NSID of the record collection."
|
|
},
|
|
"rkey": {
|
|
"type": "string",
|
|
"description": "The Record Key.",
|
|
"maxLength": 15
|
|
},
|
|
"validate": {
|
|
"type": "boolean",
|
|
"description": "Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons."
|
|
},
|
|
"record": {
|
|
"type": "unknown",
|
|
"description": "The record to write."
|
|
},
|
|
"swapRecord": {
|
|
"type": "string",
|
|
"format": "cid",
|
|
"description": "Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation"
|
|
},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"format": "cid",
|
|
"description": "Compare and swap with the previous commit by CID."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"output": {
|
|
"encoding": "application/json",
|
|
"schema": {
|
|
"type": "object",
|
|
"required": ["uri", "cid"],
|
|
"properties": {
|
|
"uri": { "type": "string", "format": "at-uri" },
|
|
"cid": { "type": "string", "format": "cid" },
|
|
"commit": {
|
|
"type": "ref",
|
|
"ref": "com.atproto.repo.defs#commitMeta"
|
|
},
|
|
"validationStatus": {
|
|
"type": "string",
|
|
"knownValues": ["valid", "unknown"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"errors": [{ "name": "InvalidSwap" }]
|
|
}
|
|
}
|
|
}
|