{ "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" }] } } }