{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Update community profile. Requires authentication and moderator/admin permissions.",
      "errors": [
        {
          "description": "Community not found",
          "name": "NotFound"
        },
        {
          "description": "User is not authorized to update this community",
          "name": "NotAuthorized"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "allowExternalDiscovery": {
              "description": "Whether other Coves instances can index and discover this community",
              "type": "boolean"
            },
            "avatarBlob": {
              "description": "Base64-encoded avatar image data (png, jpeg, or webp)",
              "maxLength": 1400000,
              "type": "string"
            },
            "avatarMimeType": {
              "description": "MIME type of the avatar image (image/png, image/jpeg, image/webp)",
              "maxLength": 128,
              "type": "string"
            },
            "bannerBlob": {
              "description": "Base64-encoded banner image data (png, jpeg, or webp)",
              "maxLength": 2800000,
              "type": "string"
            },
            "bannerMimeType": {
              "description": "MIME type of the banner image (image/png, image/jpeg, image/webp)",
              "maxLength": 128,
              "type": "string"
            },
            "communityDid": {
              "description": "DID of the community to update",
              "format": "did",
              "type": "string"
            },
            "contentWarnings": {
              "description": "Required content warnings for this community",
              "items": {
                "knownValues": [
                  "nsfw",
                  "violence",
                  "spoilers"
                ],
                "maxLength": 32,
                "type": "string"
              },
              "maxLength": 10,
              "type": "array"
            },
            "description": {
              "description": "Community description",
              "maxGraphemes": 1000,
              "maxLength": 10000,
              "type": "string"
            },
            "displayName": {
              "description": "Display name for the community",
              "maxGraphemes": 128,
              "maxLength": 1280,
              "type": "string"
            },
            "moderationType": {
              "description": "Type of moderation system",
              "knownValues": [
                "moderator",
                "sortition"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "visibility": {
              "description": "Community visibility level",
              "knownValues": [
                "public",
                "unlisted",
                "private"
              ],
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "communityDid"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cid": {
              "description": "CID of the updated community profile",
              "format": "cid",
              "type": "string"
            },
            "uri": {
              "description": "AT-URI of the updated community profile",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri",
            "cid"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.coves.community.update",
  "lexicon": 1
}
