wekan-cli 0.11.0

Agent-first, human-friendly command-line client for Wekan
Documentation
use serde::{Deserialize, Serialize};
use serde_json::Number;

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberCollectionSuccess {
    pub board_id: String,
    pub members: Vec<BoardDetailMember>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberMutationSuccess {
    pub board_id: String,
    pub user_id: String,
    pub action: super::MembershipAction,
    pub boards: Vec<BoardSummary>,
    pub mutation_confirmed: bool,
}

#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum BoardMemberSubmittedField {
    Role,
    IsAdmin,
    IsNoComments,
    IsCommentOnly,
    IsWorker,
    IsNormalAssignedOnly,
    IsCommentAssignedOnly,
    IsReadOnly,
    IsReadAssignedOnly,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberUpdateSuccess {
    pub board_id: String,
    pub user_id: String,
    pub affected_documents: u64,
    pub submitted_fields: Vec<BoardMemberSubmittedField>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardSummary {
    pub board_id: String,
    pub title: String,
}

pub type UserBoardSummary = BoardSummary;

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailMember {
    pub user_id: String,
    pub is_admin: bool,
    pub is_active: bool,
    pub is_no_comments: Option<bool>,
    pub is_comment_only: Option<bool>,
    pub is_worker: Option<bool>,
    pub is_normal_assigned_only: Option<bool>,
    pub is_comment_assigned_only: Option<bool>,
    pub is_read_only: Option<bool>,
    pub is_read_assigned_only: Option<bool>,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailWatcher {
    pub user_id: String,
    pub level: String,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailLabel {
    pub label_id: String,
    pub name: Option<String>,
    pub color: String,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailOrganization {
    pub org_id: String,
    pub org_display_name: String,
    pub is_active: bool,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailTeam {
    pub team_id: String,
    pub team_display_name: String,
    pub is_active: bool,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailDomain {
    pub domain: String,
    pub is_active: bool,
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetail {
    pub board_id: String,
    pub title: String,
    pub slug: Option<String>,
    pub archived: Option<bool>,
    pub archived_at: Option<String>,
    pub created_at: Option<String>,
    pub modified_at: Option<String>,
    pub stars: Option<Number>,
    #[serde(default)]
    pub labels: Vec<BoardDetailLabel>,
    #[serde(default)]
    pub members: Vec<BoardDetailMember>,
    #[serde(default)]
    pub watchers: Vec<BoardDetailWatcher>,
    pub permission: Option<String>,
    #[serde(default)]
    pub orgs: Vec<BoardDetailOrganization>,
    #[serde(default)]
    pub teams: Vec<BoardDetailTeam>,
    #[serde(default)]
    pub domains: Vec<BoardDetailDomain>,
    #[serde(default)]
    pub import_usernames: Vec<String>,
    pub color: Option<String>,
    #[serde(default)]
    pub custom_theme_colors: Vec<String>,
    pub background_image_url: Option<String>,
    pub background_image_id: Option<String>,
    pub allows_card_counter_list: Option<bool>,
    pub card_aging: Option<bool>,
    pub show_dependencies: Option<bool>,
    pub card_aging_days1: Option<Number>,
    pub card_aging_days2: Option<Number>,
    pub card_aging_days3: Option<Number>,
    pub allows_board_member_list: Option<bool>,
    pub description: Option<String>,
    pub subtasks_default_board_id: Option<String>,
    pub migration_version: Option<Number>,
    pub subtasks_default_list_id: Option<String>,
    pub date_settings_default_board_id: Option<String>,
    pub date_settings_default_list_id: Option<String>,
    pub allows_subtasks: Option<bool>,
    pub allows_subtasks_on_minicard: Option<bool>,
    pub allows_attachments: Option<bool>,
    pub allows_attachments_on_minicard: Option<bool>,
    pub allows_checklists: Option<bool>,
    pub allows_checklists_on_minicard: Option<bool>,
    pub allows_custom_fields: Option<bool>,
    pub allows_custom_fields_on_minicard: Option<bool>,
    pub allows_checklist_count_badge_on_minicard: Option<bool>,
    pub allows_comments: Option<bool>,
    pub allows_description_title: Option<bool>,
    pub allows_description_title_on_minicard: Option<bool>,
    pub allows_description_text: Option<bool>,
    pub allows_description_text_on_minicard: Option<bool>,
    pub allows_cover_attachment_on_minicard: Option<bool>,
    pub allows_cover_attachment_on_card: Option<bool>,
    pub allows_badge_attachment_on_minicard: Option<bool>,
    pub allows_attachment_count_on_card: Option<bool>,
    pub allows_checklist_count_badge_on_card: Option<bool>,
    pub allows_card_sorting_by_number_on_minicard: Option<bool>,
    pub allows_card_number: Option<bool>,
    pub allows_card_number_on_minicard: Option<bool>,
    pub allows_activities: Option<bool>,
    pub allows_labels: Option<bool>,
    pub allows_labels_on_minicard: Option<bool>,
    pub allows_creator: Option<bool>,
    pub allows_creator_on_minicard: Option<bool>,
    pub allows_assignee: Option<bool>,
    pub allows_assignee_on_minicard: Option<bool>,
    pub allows_members: Option<bool>,
    pub allows_members_on_minicard: Option<bool>,
    pub allows_requested_by: Option<bool>,
    pub allows_requested_by_on_minicard: Option<bool>,
    pub allows_card_sorting_by_number: Option<bool>,
    pub allows_show_lists: Option<bool>,
    pub allows_assigned_by: Option<bool>,
    pub allows_assigned_by_on_minicard: Option<bool>,
    pub allows_show_lists_on_minicard: Option<bool>,
    pub allows_checklist_at_minicard: Option<bool>,
    pub allows_received_date: Option<bool>,
    pub restrict_comment_editing: Option<bool>,
    pub allows_personal_list_width: Option<bool>,
    pub auto_width: Option<bool>,
    pub allows_received_date_on_minicard: Option<bool>,
    pub allows_start_date: Option<bool>,
    pub allows_start_date_on_minicard: Option<bool>,
    pub allows_end_date: Option<bool>,
    pub allows_end_date_on_minicard: Option<bool>,
    pub allows_due_date: Option<bool>,
    pub allows_due_date_on_minicard: Option<bool>,
    pub allows_due_complete: Option<bool>,
    pub allows_due_complete_on_minicard: Option<bool>,
    pub present_parent_task: Option<String>,
    pub received_at: Option<String>,
    pub start_at: Option<String>,
    pub due_at: Option<String>,
    pub end_at: Option<String>,
    pub spent_time: Option<Number>,
    pub is_overtime: Option<bool>,
    pub board_type: Option<String>,
    pub sort: Option<Number>,
    pub show_activities: Option<bool>,
}

#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum BoardListScope {
    Active,
    Public,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardListSuccess {
    pub scope: BoardListScope,
    pub boards: Vec<BoardSummary>,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCountSuccess {
    pub private: u64,
    pub public: u64,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCreateSuccess {
    pub board_id: String,
    pub default_swimlane_id: String,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardRenameSuccess {
    pub board_id: String,
    pub title: String,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardDeleteSuccess {
    pub board_id: String,
    pub deleted: bool,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardLabelCollection {
    pub board_id: String,
    pub labels: Vec<BoardDetailLabel>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardLabelAdded {
    pub board_id: String,
    pub label_id: String,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCopySuccess {
    pub source_board_id: String,
    pub board_id: String,
    /// The returned ID does not confirm completion of unawaited copy effects.
    pub mutation_confirmed: bool,
}