social.grain.unspecced.createPrivateGallery

Create a gallery that lives in a permissioned space (proposal 0016) rather than in the public repo. The gallery, its photos and its items are written to the author's space repo, and only the accounts named in members can read them.

Repository @grain.social did:plc:e7rftrdyz5e2rw4y6ocszew2 not from the namespace authority
Details · procedure
Kindprocedure
Authorityunspecced.grain.social
Indexed
cid bafyreiefcfhhuckwgoyqtyrnrt5unxjmxgzc4dvaymxwca54vw4x72px4y

Checks

Valid
  • unlimited-string defs.main.input.schema.properties.members.itemsNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.output.schema.properties.spaceNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.photoInput.properties.altNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Create a gallery that lives in a permissioned space (proposal 0016) rather than in the public repo. The gallery, its photos and its items are written to the author's space repo, and only the accounts named in members can read them.",
      "errors": [
        {
          "description": "The author's PDS does not serve permissioned spaces.",
          "name": "SpacesUnsupported"
        },
        {
          "description": "One of the named members could not be resolved.",
          "name": "ActorNotFound"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "description": {
              "maxLength": 1000,
              "type": "string"
            },
            "members": {
              "description": "Handles or DIDs allowed to read the gallery. The author always can.",
              "items": {
                "type": "string"
              },
              "maxLength": 100,
              "type": "array"
            },
            "photos": {
              "items": {
                "ref": "#photoInput",
                "type": "ref"
              },
              "maxLength": 100,
              "type": "array"
            },
            "rkey": {
              "description": "Record key for the gallery. Doubles as the space's skey, so one gallery is one space.",
              "maxLength": 64,
              "type": "string"
            },
            "title": {
              "maxLength": 100,
              "type": "string"
            }
          },
          "required": [
            "rkey",
            "title"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "space": {
              "description": "The space URI the gallery lives in.",
              "type": "string"
            },
            "uri": {
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "space",
            "uri"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    },
    "photoInput": {
      "properties": {
        "alt": {
          "type": "string"
        },
        "aspectRatio": {
          "ref": "social.grain.defs#aspectRatio",
          "type": "ref"
        },
        "photo": {
          "accept": [
            "image/*"
          ],
          "maxSize": 1000000,
          "type": "blob"
        }
      },
      "required": [
        "photo",
        "aspectRatio"
      ],
      "type": "object"
    }
  },
  "id": "social.grain.unspecced.createPrivateGallery",
  "lexicon": 1
}