wekan-cli 2.0.0

Agent-first, human-friendly command-line client for Wekan
Documentation
use crate::client::metadata::*;
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>,
}

#[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 granted_by: Option<Vec<String>>,
    pub custom_role_id: Option<String>,
    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 due_at: Option<String>,
    pub shared_label_id: Option<String>,
    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 scrum: Option<Box<ScrumSettings>>,
    pub scrum_import_losses: Option<Vec<ScrumImportLoss>>,
    pub announcement: Option<BoardAnnouncement>,
    pub wip_limit_groups: Option<Vec<BoardWipGroup>>,
    pub email_to_card: Option<Box<BoardEmailToCard>>,
    pub notification_delivery: Option<Box<NotificationDelivery>>,
    pub column_sets: Option<Vec<BoardColumnSet>>,

    pub scrum_revision: Option<serde_json::Number>,
    pub allows_instance_editing: Option<bool>,
    pub import_run_id: Option<String>,
    pub sync_effects_enabled: Option<bool>,
    pub map_image_attachment_id: Option<String>,
    pub auto_archive_inactive_days: Option<Number>,
    pub rules_visible_to_members: Option<bool>,
    pub card_field_order: Option<Vec<String>>,
    pub minicard_field_order: Option<Vec<String>>,
    pub notify_override_tray: Option<bool>,
    pub notify_override_email: Option<bool>,
    pub due_reminder_days: Option<Vec<Number>>,
    pub due_reminder_webhook: Option<bool>,
    pub labels_above_title_on_card: Option<bool>,
    pub allows_checklist_due_date_on_minicard: Option<bool>,
    pub allows_location_on_minicard: Option<bool>,
    pub allows_swimlane_name_on_card: Option<bool>,
    pub allows_flowtime_on_minicard: Option<bool>,
    pub allows_pomodoro_on_minicard: Option<bool>,
    pub allows_attachment_list_on_minicard: Option<bool>,
    pub allows_text_notes_on_minicard: Option<bool>,
    pub allows_comment_count_on_card: Option<bool>,
    pub allows_activities_on_minicard: Option<bool>,
    pub allows_card_buttons_on_minicard: Option<bool>,
    pub allows_description_badge_on_card: Option<bool>,
    pub allows_unread_comments_on_card: Option<bool>,
    pub allows_due_from_title_on_card: Option<bool>,
    pub allows_due_from_title_on_minicard: Option<bool>,
    pub allows_similar_cards_on_card: Option<bool>,
    pub allows_similar_cards_on_minicard: Option<bool>,
    pub allows_at_risk_on_card: Option<bool>,
    pub allows_at_risk_on_minicard: Option<bool>,
    pub allows_suggested_members_on_card: Option<bool>,
    pub allows_forecast_on_card: Option<bool>,
    pub allows_forecast_on_minicard: Option<bool>,
    pub allows_checklist_from_description_on_card: Option<bool>,
    pub allows_action_items_on_card: Option<bool>,
    pub allows_whiteboard_on_card: Option<bool>,
    pub shared_list_headers: Option<bool>,
    pub board_view_settings: Option<
        std::collections::BTreeMap<
            String,
            crate::client::boards::presentation::StoredBoardViewVisibility,
        >,
    >,
    pub board_view_order: Option<Vec<String>>,
    pub date_format_override: Option<bool>,
    pub date_format: Option<String>,
    pub ask_for_move_reason: Option<bool>,
    pub subtasks_default_swimlane_id: Option<String>,
    pub allows_swimlane_dragging: Option<bool>,
    pub allows_list_dragging: Option<bool>,
    pub allows_card_dragging: Option<bool>,
    pub allows_checklist_dragging: Option<bool>,
    pub allows_checklist_item_dragging: Option<bool>,
    pub allows_subtask_dragging: Option<bool>,
    pub allows_minicard_collapse: Option<bool>,
    pub labels_above_title_on_minicard: Option<bool>,
    pub allows_checklist_due_date: Option<bool>,
    pub allows_checklist_title: Option<bool>,
    pub allows_comments_on_minicard: Option<bool>,
    pub show_label_text: Option<bool>,
    pub allows_swimlane_name_on_minicard: Option<bool>,
    pub allows_spent_time: Option<bool>,
    pub allows_spent_time_on_minicard: Option<bool>,
    pub allows_stickers: Option<bool>,
    pub allows_stickers_on_minicard: Option<bool>,
    pub allows_location: Option<bool>,
    pub allows_dependencies: Option<bool>,
    pub allows_dependencies_on_minicard: Option<bool>,
    pub allows_flowtime: Option<bool>,
    pub allows_pomodoro: Option<bool>,
    pub allows_vote: Option<bool>,
    pub allows_vote_on_minicard: Option<bool>,
    pub allows_poker: Option<bool>,
    pub allows_poker_on_minicard: Option<bool>,
    pub allows_text_notes: Option<bool>,
    pub allows_comment_count_on_minicard: Option<bool>,
    pub allows_card_collapse: Option<bool>,
    pub allows_checklist_title_on_minicard: Option<bool>,
    pub allows_label_text_on_card: Option<bool>,
    pub allows_card_color_on_card: Option<bool>,
    pub allows_card_color_on_minicard: Option<bool>,
    pub allows_parent_card_on_card: Option<bool>,
    pub allows_parent_card_on_minicard: Option<bool>,
    pub allows_linked_card_on_card: Option<bool>,
    pub allows_linked_card_on_minicard: Option<bool>,
    pub allows_card_buttons_on_card: Option<bool>,
    pub allows_description_badge_on_minicard: Option<bool>,
    pub allows_unread_comments_on_minicard: Option<bool>,
    pub allows_issue_type_on_minicard: Option<bool>,
    pub sticky_list_headers: Option<bool>,
    pub list_width_resize_locked: Option<bool>,
    pub swimlane_height_resize_locked: Option<bool>,
    pub default_public_board_view: Option<String>,
    pub default_private_board_view: Option<String>,
    pub same_width_for_all_lists: Option<bool>,
    pub same_width_for_all_lists_value: Option<Number>,
    pub key: Option<String>,
    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 instance: u64,
    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,
}