keybase-protocol 0.1.1

Provides the Keybase types defined in the Keybase AVDL Protocol files for Rust.
Documentation
// Namespace: "chat.1"
// Protocol: "api"
#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;

use crate::protocol::gregor1;
use crate::protocol::keybase1;
use super::common::*;
use super::chat_ui::*;
use super::unfurl::*;
use super::commands::*;
#[derive(Serialize, Deserialize, Debug)]
pub struct RateLimitRes {
  #[serde(default)]
  pub tank: Option<String>,
  pub capacity: Option<i32>,
  pub reset: Option<i32>,
  pub gas: Option<i32>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ChatChannel {
  #[serde(rename = "name")]
  #[serde(default)]
  pub name: Option<String>,
  #[serde(rename = "public")]
  #[serde(default)]
  pub public: Option<bool>,
  #[serde(rename = "members_type")]
  #[serde(default)]
  pub membersType: Option<String>,
  #[serde(rename = "topic_type")]
  #[serde(default)]
  pub topicType: Option<String>,
  #[serde(rename = "topic_name")]
  #[serde(default)]
  pub topicName: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ChatMessage {
  #[serde(rename = "body")]
  #[serde(default)]
  pub body: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MsgSender {
  #[serde(rename = "uid")]
  #[serde(default)]
  pub uid: Option<String>,
  #[serde(rename = "username")]
  #[serde(default)]
  pub username: Option<String>,
  #[serde(rename = "device_id")]
  #[serde(default)]
  pub deviceID: Option<String>,
  #[serde(rename = "device_name")]
  #[serde(default)]
  pub deviceName: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MsgFlipContent {
  #[serde(rename = "text")]
  #[serde(default)]
  pub text: Option<String>,
  #[serde(rename = "game_id")]
  #[serde(default)]
  pub gameID: Option<String>,
  #[serde(rename = "flip_conv_id")]
  #[serde(default)]
  pub flipConvID: Option<String>,
  #[serde(rename = "user_mentions")]
  #[serde(default)]
  pub userMentions: Option<Vec<KnownUserMention>>,
  #[serde(rename = "team_mentions")]
  #[serde(default)]
  pub teamMentions: Option<Vec<KnownTeamMention>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MsgContent {
  #[serde(rename = "type")]
  #[serde(default)]
  pub typeName: Option<String>,
  #[serde(rename = "text")]
  pub text: Option<MessageText>,
  #[serde(rename = "attachment")]
  pub attachment: Option<MessageAttachment>,
  #[serde(rename = "edit")]
  pub edit: Option<MessageEdit>,
  #[serde(rename = "reaction")]
  pub reaction: Option<MessageReaction>,
  #[serde(rename = "delete")]
  pub delete: Option<MessageDelete>,
  #[serde(rename = "metadata")]
  pub metadata: Option<MessageConversationMetadata>,
  #[serde(rename = "headline")]
  pub headline: Option<MessageHeadline>,
  #[serde(rename = "attachment_uploaded")]
  pub attachmentUploaded: Option<MessageAttachmentUploaded>,
  #[serde(rename = "system")]
  pub system: Option<MessageSystem>,
  #[serde(rename = "send_payment")]
  pub sendPayment: Option<MessageSendPayment>,
  #[serde(rename = "request_payment")]
  pub requestPayment: Option<MessageRequestPayment>,
  #[serde(rename = "unfurl")]
  pub unfurl: Option<MessageUnfurl>,
  #[serde(rename = "flip")]
  pub flip: Option<MsgFlipContent>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MsgSummary {
  #[serde(rename = "id")]
  pub id: Option<MessageID>,
  #[serde(rename = "conversation_id")]
  #[serde(default)]
  pub convID: Option<String>,
  #[serde(rename = "channel")]
  pub channel: Option<ChatChannel>,
  #[serde(rename = "sender")]
  pub sender: Option<MsgSender>,
  #[serde(rename = "sent_at")]
  pub sentAt: Option<i64>,
  #[serde(rename = "sent_at_ms")]
  pub sentAtMs: Option<i64>,
  #[serde(rename = "content")]
  pub content: Option<MsgContent>,
  #[serde(rename = "prev")]
  #[serde(default)]
  pub prev: Option<Vec<MessagePreviousPointer>>,
  #[serde(rename = "unread")]
  #[serde(default)]
  pub unread: Option<bool>,
  #[serde(rename = "revoked_device")]
  #[serde(default)]
  pub revokedDevice: Option<bool>,
  #[serde(rename = "offline")]
  #[serde(default)]
  pub offline: Option<bool>,
  #[serde(rename = "kbfs_encrypted")]
  #[serde(default)]
  pub kbfsEncrypted: Option<bool>,
  #[serde(rename = "is_ephemeral")]
  #[serde(default)]
  pub isEphemeral: Option<bool>,
  #[serde(rename = "is_ephemeral_expired")]
  #[serde(default)]
  pub isEphemeralExpired: Option<bool>,
  #[serde(rename = "e_time")]
  pub eTime: Option<gregor1::Time>,
  #[serde(rename = "reactions")]
  pub reactions: Option<ReactionMap>,
  #[serde(rename = "has_pairwise_macs")]
  #[serde(default)]
  pub hasPairwiseMacs: Option<bool>,
  #[serde(rename = "at_mention_usernames")]
  #[serde(default)]
  pub atMentionUsernames: Option<Vec<String>>,
  #[serde(rename = "channel_mention")]
  #[serde(default)]
  pub channelMention: Option<String>,
  #[serde(rename = "channel_name_mentions")]
  #[serde(default)]
  pub channelNameMentions: Option<Vec<UIChannelNameMention>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Message {
  #[serde(rename = "msg")]
  pub msg: Option<MsgSummary>,
  #[serde(rename = "error")]
  pub error: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Thread {
  #[serde(rename = "messages")]
  #[serde(default)]
  pub messages: Option<Vec<Message>>,
  #[serde(rename = "pagination")]
  pub pagination: Option<Pagination>,
  #[serde(rename = "offline")]
  #[serde(default)]
  pub offline: Option<bool>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ConvSummary {
  #[serde(rename = "id")]
  #[serde(default)]
  pub id: Option<String>,
  #[serde(rename = "channel")]
  pub channel: Option<ChatChannel>,
  #[serde(rename = "unread")]
  #[serde(default)]
  pub unread: Option<bool>,
  #[serde(rename = "active_at")]
  pub activeAt: Option<i64>,
  #[serde(rename = "active_at_ms")]
  pub activeAtMs: Option<i64>,
  #[serde(rename = "member_status")]
  #[serde(default)]
  pub memberStatus: Option<String>,
  #[serde(rename = "reset_users")]
  #[serde(default)]
  pub resetUsers: Option<Vec<String>>,
  #[serde(rename = "finalize_info")]
  pub finalizeInfo: Option<ConversationFinalizeInfo>,
  #[serde(rename = "supersedes")]
  #[serde(default)]
  pub supersedes: Option<Vec<String>>,
  #[serde(rename = "superseded_by")]
  #[serde(default)]
  pub supersededBy: Option<Vec<String>>,
  #[serde(rename = "error")]
  #[serde(default)]
  pub error: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ChatList {
  #[serde(rename = "conversations")]
  #[serde(default)]
  pub conversations: Option<Vec<ConvSummary>>,
  #[serde(rename = "offline")]
  #[serde(default)]
  pub offline: Option<bool>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "pagination")]
  pub pagination: Option<Pagination>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct SendRes {
  #[serde(rename = "message")]
  #[serde(default)]
  pub message: Option<String>,
  #[serde(rename = "id")]
  pub messageID: Option<MessageID>,
  #[serde(rename = "outbox_id")]
  pub outboxID: Option<OutboxID>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct SearchInboxResOutput {
  #[serde(rename = "results")]
  pub results: Option<ChatSearchInboxResults>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct RegexpRes {
  #[serde(rename = "hits")]
  #[serde(default)]
  pub hits: Option<Vec<ChatSearchHit>>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct NewConvRes {
  #[serde(rename = "id")]
  #[serde(default)]
  pub id: Option<String>,
  #[serde(rename = "identify_failures")]
  #[serde(default)]
  pub identifyFailures: Option<Vec<keybase1::TLFIdentifyFailure>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ListCommandsRes {
  #[serde(rename = "commands")]
  #[serde(default)]
  pub commands: Option<Vec<UserBotCommandOutput>>,
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct EmptyRes {
  #[serde(rename = "ratelimits")]
  #[serde(default)]
  pub rateLimits: Option<Vec<RateLimitRes>>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MsgNotification {
  #[serde(rename = "type")]
  #[serde(default)]
  pub ty: Option<String>,
  #[serde(default)]
  pub source: Option<String>,
  pub msg: Option<MsgSummary>,
  pub error: Option<String>,
  pub pagination: Option<UIPagination>,
}