{
  "protocol": "NotifyChat",
  "imports": [
    {
      "path": "github.com/keybase/client/go/protocol/keybase1",
      "type": "idl",
      "import_as": "keybase1"
    }
  ],
  "types": [
    {
      "type": "enum",
      "name": "ChatActivityType",
      "symbols": [
        "RESERVED_0",
        "INCOMING_MESSAGE_1",
        "READ_MESSAGE_2",
        "NEW_CONVERSATION_3",
        "SET_STATUS_4",
        "FAILED_MESSAGE_5"
      ]
    },
    {
      "type": "record",
      "name": "IncomingMessage",
      "fields": [
        {
          "type": "MessageUnboxed",
          "name": "message"
        },
        {
          "type": "ConversationID",
          "name": "convID"
        },
        {
          "type": [
            null,
            "ConversationLocal"
          ],
          "name": "conv"
        },
        {
          "type": [
            null,
            "Pagination"
          ],
          "name": "pagination"
        }
      ]
    },
    {
      "type": "record",
      "name": "ReadMessageInfo",
      "fields": [
        {
          "type": "ConversationID",
          "name": "convID"
        },
        {
          "type": "MessageID",
          "name": "msgID"
        },
        {
          "type": [
            null,
            "ConversationLocal"
          ],
          "name": "conv"
        }
      ]
    },
    {
      "type": "record",
      "name": "NewConversationInfo",
      "fields": [
        {
          "type": "ConversationLocal",
          "name": "conv"
        }
      ]
    },
    {
      "type": "record",
      "name": "SetStatusInfo",
      "fields": [
        {
          "type": "ConversationID",
          "name": "convID"
        },
        {
          "type": "ConversationStatus",
          "name": "status"
        },
        {
          "type": [
            null,
            "ConversationLocal"
          ],
          "name": "conv"
        }
      ]
    },
    {
      "type": "record",
      "name": "FailedMessageInfo",
      "fields": [
        {
          "type": {
            "type": "array",
            "items": "OutboxRecord"
          },
          "name": "outboxRecords"
        }
      ]
    },
    {
      "type": "variant",
      "name": "ChatActivity",
      "switch": {
        "type": "ChatActivityType",
        "name": "activityType"
      },
      "cases": [
        {
          "label": {
            "name": "INCOMING_MESSAGE",
            "def": false
          },
          "body": "IncomingMessage"
        },
        {
          "label": {
            "name": "READ_MESSAGE",
            "def": false
          },
          "body": "ReadMessageInfo"
        },
        {
          "label": {
            "name": "NEW_CONVERSATION",
            "def": false
          },
          "body": "NewConversationInfo"
        },
        {
          "label": {
            "name": "SET_STATUS",
            "def": false
          },
          "body": "SetStatusInfo"
        },
        {
          "label": {
            "name": "FAILED_MESSAGE",
            "def": false
          },
          "body": "FailedMessageInfo"
        }
      ]
    }
  ],
  "messages": {
    "NewChatActivity": {
      "request": [
        {
          "name": "uid",
          "type": "keybase1.UID"
        },
        {
          "name": "activity",
          "type": "ChatActivity"
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    },
    "ChatIdentifyUpdate": {
      "request": [
        {
          "name": "update",
          "type": "keybase1.CanonicalTLFNameAndIDWithBreaks"
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    },
    "ChatTLFFinalize": {
      "request": [
        {
          "name": "uid",
          "type": "keybase1.UID"
        },
        {
          "name": "convID",
          "type": "ConversationID"
        },
        {
          "name": "finalizeInfo",
          "type": "ConversationFinalizeInfo"
        },
        {
          "name": "conv",
          "type": [
            null,
            "ConversationLocal"
          ]
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    },
    "ChatTLFResolve": {
      "request": [
        {
          "name": "uid",
          "type": "keybase1.UID"
        },
        {
          "name": "convID",
          "type": "ConversationID"
        },
        {
          "name": "resolveInfo",
          "type": "ConversationResolveInfo"
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    },
    "ChatInboxStale": {
      "request": [
        {
          "name": "uid",
          "type": "keybase1.UID"
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    },
    "ChatThreadsStale": {
      "request": [
        {
          "name": "uid",
          "type": "keybase1.UID"
        },
        {
          "name": "convIDs",
          "type": {
            "type": "array",
            "items": "ConversationID"
          }
        }
      ],
      "response": null,
      "notify": "",
      "lint": "ignore"
    }
  },
  "namespace": "chat.1"
}