{
  "protocol": "identifyUi",
  "imports": [
    {
      "path": "common.avdl",
      "type": "idl"
    },
    {
      "path": "identify_common.avdl",
      "type": "idl"
    }
  ],
  "types": [
    {
      "type": "record",
      "name": "ProofResult",
      "fields": [
        {
          "type": "ProofState",
          "name": "state"
        },
        {
          "type": "ProofStatus",
          "name": "status"
        },
        {
          "type": "string",
          "name": "desc"
        }
      ]
    },
    {
      "type": "record",
      "name": "IdentifyRow",
      "fields": [
        {
          "type": "int",
          "name": "rowId",
          "lint": "ignore"
        },
        {
          "type": "RemoteProof",
          "name": "proof"
        },
        {
          "type": [
            null,
            "TrackDiff"
          ],
          "name": "trackDiff"
        }
      ]
    },
    {
      "type": "record",
      "name": "IdentifyKey",
      "fields": [
        {
          "type": "bytes",
          "name": "pgpFingerprint"
        },
        {
          "type": "KID",
          "name": "KID",
          "lint": "ignore"
        },
        {
          "type": [
            null,
            "TrackDiff"
          ],
          "name": "trackDiff"
        },
        {
          "type": "boolean",
          "name": "breaksTracking"
        }
      ]
    },
    {
      "type": "record",
      "name": "Cryptocurrency",
      "fields": [
        {
          "type": "int",
          "name": "rowId",
          "lint": "ignore"
        },
        {
          "type": "bytes",
          "name": "pkhash"
        },
        {
          "type": "string",
          "name": "address"
        },
        {
          "type": "SigID",
          "name": "sigID"
        },
        {
          "type": "string",
          "name": "type"
        },
        {
          "type": "string",
          "name": "family"
        }
      ]
    },
    {
      "type": "record",
      "name": "RevokedProof",
      "fields": [
        {
          "type": "RemoteProof",
          "name": "proof"
        },
        {
          "type": "TrackDiff",
          "name": "diff"
        }
      ]
    },
    {
      "type": "record",
      "name": "Identity",
      "fields": [
        {
          "type": [
            null,
            "Status"
          ],
          "name": "status"
        },
        {
          "type": "Time",
          "name": "whenLastTracked"
        },
        {
          "type": {
            "type": "array",
            "items": "IdentifyRow"
          },
          "name": "proofs"
        },
        {
          "type": {
            "type": "array",
            "items": "Cryptocurrency"
          },
          "name": "cryptocurrency"
        },
        {
          "type": {
            "type": "array",
            "items": "TrackDiff"
          },
          "name": "revoked"
        },
        {
          "type": {
            "type": "array",
            "items": "RevokedProof"
          },
          "name": "revokedDetails"
        },
        {
          "type": "boolean",
          "name": "breaksTracking"
        }
      ]
    },
    {
      "type": "record",
      "name": "SigHint",
      "fields": [
        {
          "type": "string",
          "name": "remoteId",
          "lint": "ignore"
        },
        {
          "type": "string",
          "name": "humanUrl"
        },
        {
          "type": "string",
          "name": "apiUrl"
        },
        {
          "type": "string",
          "name": "checkText"
        }
      ]
    },
    {
      "type": "enum",
      "name": "CheckResultFreshness",
      "symbols": [
        "FRESH_0",
        "AGED_1",
        "RANCID_2"
      ]
    },
    {
      "type": "record",
      "name": "CheckResult",
      "fields": [
        {
          "type": "ProofResult",
          "name": "proofResult"
        },
        {
          "type": "Time",
          "name": "time"
        },
        {
          "type": "CheckResultFreshness",
          "name": "freshness"
        }
      ]
    },
    {
      "type": "record",
      "name": "LinkCheckResult",
      "fields": [
        {
          "type": "int",
          "name": "proofId",
          "lint": "ignore"
        },
        {
          "type": "ProofResult",
          "name": "proofResult"
        },
        {
          "type": "ProofResult",
          "name": "snoozedResult"
        },
        {
          "type": "boolean",
          "name": "torWarning"
        },
        {
          "type": "Time",
          "name": "tmpTrackExpireTime"
        },
        {
          "type": [
            null,
            "CheckResult"
          ],
          "name": "cached"
        },
        {
          "type": [
            null,
            "TrackDiff"
          ],
          "name": "diff"
        },
        {
          "type": [
            null,
            "TrackDiff"
          ],
          "name": "remoteDiff"
        },
        {
          "type": [
            null,
            "SigHint"
          ],
          "name": "hint"
        },
        {
          "type": "boolean",
          "name": "breaksTracking"
        }
      ]
    },
    {
      "type": "record",
      "name": "UserCard",
      "fields": [
        {
          "type": "int",
          "name": "following"
        },
        {
          "type": "int",
          "name": "followers"
        },
        {
          "type": "UID",
          "name": "uid"
        },
        {
          "type": "string",
          "name": "fullName"
        },
        {
          "type": "string",
          "name": "location"
        },
        {
          "type": "string",
          "name": "bio"
        },
        {
          "type": "string",
          "name": "website"
        },
        {
          "type": "string",
          "name": "twitter"
        },
        {
          "type": "boolean",
          "name": "youFollowThem"
        },
        {
          "type": "boolean",
          "name": "theyFollowYou"
        }
      ]
    },
    {
      "type": "record",
      "name": "ConfirmResult",
      "fields": [
        {
          "type": "boolean",
          "name": "identityConfirmed"
        },
        {
          "type": "boolean",
          "name": "remoteConfirmed"
        },
        {
          "type": "boolean",
          "name": "expiringLocal"
        }
      ]
    },
    {
      "type": "enum",
      "name": "DismissReasonType",
      "symbols": [
        "NONE_0",
        "HANDLED_ELSEWHERE_1"
      ]
    },
    {
      "type": "record",
      "name": "DismissReason",
      "fields": [
        {
          "type": "DismissReasonType",
          "name": "type"
        },
        {
          "type": "string",
          "name": "reason"
        },
        {
          "type": "string",
          "name": "resource"
        }
      ]
    }
  ],
  "messages": {
    "displayTLFCreateWithInvite": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "folderName",
          "type": "string"
        },
        {
          "name": "isPrivate",
          "type": "boolean"
        },
        {
          "name": "assertion",
          "type": "string"
        },
        {
          "name": "socialAssertion",
          "type": "SocialAssertion"
        },
        {
          "name": "inviteLink",
          "type": "string"
        },
        {
          "name": "throttled",
          "type": "boolean"
        }
      ],
      "response": null
    },
    "delegateIdentifyUI": {
      "request": [],
      "response": "int"
    },
    "start": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "username",
          "type": "string"
        },
        {
          "name": "reason",
          "type": "IdentifyReason"
        },
        {
          "name": "forceDisplay",
          "type": "boolean",
          "default": false
        }
      ],
      "response": null
    },
    "displayKey": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "key",
          "type": "IdentifyKey"
        }
      ],
      "response": null
    },
    "reportLastTrack": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "track",
          "type": [
            null,
            "TrackSummary"
          ]
        }
      ],
      "response": null
    },
    "launchNetworkChecks": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "identity",
          "type": "Identity"
        },
        {
          "name": "user",
          "type": "User"
        }
      ],
      "response": null
    },
    "displayTrackStatement": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "stmt",
          "type": "string"
        }
      ],
      "response": null
    },
    "finishWebProofCheck": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "rp",
          "type": "RemoteProof"
        },
        {
          "name": "lcr",
          "type": "LinkCheckResult"
        }
      ],
      "response": null
    },
    "finishSocialProofCheck": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "rp",
          "type": "RemoteProof"
        },
        {
          "name": "lcr",
          "type": "LinkCheckResult"
        }
      ],
      "response": null
    },
    "displayCryptocurrency": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "c",
          "type": "Cryptocurrency"
        }
      ],
      "response": null
    },
    "reportTrackToken": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "trackToken",
          "type": "TrackToken"
        }
      ],
      "response": null
    },
    "displayUserCard": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "card",
          "type": "UserCard"
        }
      ],
      "response": null
    },
    "confirm": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "outcome",
          "type": "IdentifyOutcome"
        }
      ],
      "response": "ConfirmResult"
    },
    "cancel": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        }
      ],
      "response": null
    },
    "finish": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        }
      ],
      "response": null
    },
    "dismiss": {
      "request": [
        {
          "name": "sessionID",
          "type": "int"
        },
        {
          "name": "username",
          "type": "string"
        },
        {
          "name": "reason",
          "type": "DismissReason"
        }
      ],
      "response": null
    }
  },
  "namespace": "keybase.1"
}