@namespace("keybase.1") protocol NotifyTeam { import idl "common.avdl"; record TeamChangeSet { // Set to `true` if the membership of the team changed boolean membershipChanged; // Set to `true` if the key rotated. This might have happened if a user // was kicked out, or left, or if a user revoked a device. boolean keyRotated; // Set to `true` if the team was renamed, either explicitly, or implicitly // if one of its ancestors changed names boolean renamed; // Set to `true` if the team has miscellaneous information updated (i.e. // settings, showcasing, tars) boolean misc; } // All fields are unverified void teamChangedByID( TeamID teamID, Seqno latestSeqno, boolean implicitTeam, TeamChangeSet changes, Seqno latestHiddenSeqno, Seqno latestOffchainSeqno ) oneway; // All fields are unverified void teamChangedByName( string teamName, Seqno latestSeqno, boolean implicitTeam, TeamChangeSet changes, Seqno latestHiddenSeqno, Seqno latestOffchainSeqno ) oneway; void teamDeleted(TeamID teamID) oneway; void teamAbandoned(TeamID teamID) oneway; void teamExit(TeamID teamID) oneway; void newlyAddedToTeam(TeamID teamID) oneway; void teamRoleMapChanged(UserTeamVersion newVersion) oneway; enum AvatarUpdateType { NONE_0, USER_1, TEAM_2 } void avatarUpdated(string name, array formats, AvatarUpdateType typ) oneway; // Sent when any information on the top-level teams tab changes void teamMetadataUpdate() oneway; }