comAtprotoTempCheckHandleAvailability top-level constant

Map<String, dynamic> const comAtprotoTempCheckHandleAvailability

com.atproto.temp.checkHandleAvailability

Implementation

const comAtprotoTempCheckHandleAvailability = <String, dynamic>{
  "lexicon": 1,
  "id": "com.atproto.temp.checkHandleAvailability",
  "defs": {
    "main": {
      "type": "query",
      "description":
          "Checks whether the provided handle is available. If the handle is not available, available suggestions will be returned. Optional inputs will be used to generate suggestions.",
      "parameters": {
        "type": "params",
        "required": ["handle"],
        "properties": {
          "handle": {
            "type": "string",
            "format": "handle",
            "description":
                "Tentative handle. Will be checked for availability or used to build handle suggestions.",
          },
          "email": {
            "type": "string",
            "description":
                "User-provided email. Might be used to build handle suggestions.",
          },
          "birthDate": {
            "type": "string",
            "format": "datetime",
            "description":
                "User-provided birth date. Might be used to build handle suggestions.",
          },
        },
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["handle", "result"],
          "properties": {
            "handle": {
              "type": "string",
              "format": "handle",
              "description": "Echo of the input handle.",
            },
            "result": {
              "type": "union",
              "refs": ["#resultAvailable", "#resultUnavailable"],
            },
          },
        },
      },
      "errors": [
        {
          "name": "InvalidEmail",
          "description": "An invalid email was provided.",
        },
      ],
    },
    "resultAvailable": {
      "type": "object",
      "description": "Indicates the provided handle is available.",
      "properties": {},
    },
    "resultUnavailable": {
      "type": "object",
      "description":
          "Indicates the provided handle is unavailable and gives suggestions of available handles.",
      "required": ["suggestions"],
      "properties": {
        "suggestions": {
          "type": "array",
          "description":
              "List of suggested handles based on the provided inputs.",
          "items": {"type": "ref", "ref": "#suggestion"},
        },
      },
    },
    "suggestion": {
      "type": "object",
      "required": ["handle", "method"],
      "properties": {
        "handle": {"type": "string", "format": "handle"},
        "method": {
          "type": "string",
          "description":
              "Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics.",
        },
      },
    },
  },
};