{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Gives an administrator access to a community account that lives on this AppView's server, so they can move it to another server. The AppView sets the given email on the account, so codes the server sends reach the administrator, and returns a new password once. The password works for 60 minutes. If the account has not moved by then, the AppView replaces it and signs out every session.",
      "errors": [
        {
          "description": "The request is missing, malformed, or unverifiable service auth.",
          "name": "AuthRequired"
        },
        {
          "description": "The requesting user lacks permission for this community.",
          "name": "Forbidden"
        },
        {
          "description": "The arguments are inconsistent or malformed beyond schema validation.",
          "name": "InvalidRequest"
        },
        {
          "description": "No community exists at that identifier.",
          "name": "CommunityNotFound"
        },
        {
          "description": "The account does not live on this AppView's server, already moved, or the AppView cannot manage accounts there.",
          "name": "HandOverUnavailable"
        },
        {
          "description": "A PDS or third-party call the AppView depends on failed.",
          "name": "UpstreamFailure"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "community": {
              "description": "The community.",
              "format": "did",
              "type": "string"
            },
            "email": {
              "description": "The address that receives the server's codes for the move.",
              "maxLength": 254,
              "type": "string"
            }
          },
          "required": [
            "community",
            "email"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "expiresAt": {
              "description": "When the password stops working.",
              "format": "datetime",
              "type": "string"
            },
            "identifier": {
              "description": "The account's handle, to sign in with.",
              "type": "string"
            },
            "password": {
              "description": "The account's new password. It is not shown again.",
              "type": "string"
            }
          },
          "required": [
            "identifier",
            "password",
            "expiresAt"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.colibri.beta.community.handOverHost",
  "lexicon": 1
}
