wekan-cli 0.11.0

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

#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum CardMembershipKind {
    Member,
    Assignee,
}

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

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardAssigneeCollectionSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub assignees: Vec<String>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardMembershipMutationSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub user_id: String,
    pub kind: CardMembershipKind,
    pub action: super::MembershipAction,
    pub members: Vec<String>,
    pub assignees: Vec<String>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardSummary {
    pub card_id: String,
    pub title: Option<String>,
    pub description: Option<String>,
    pub swimlane_id: Option<String>,
    pub received_at: Option<String>,
    pub start_at: Option<String>,
    pub due_at: Option<String>,
    pub end_at: Option<String>,
    pub assignees: Vec<String>,
    pub sort: Option<Number>,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardCollectionSuccess {
    pub board_id: String,
    pub list_id: String,
    pub cards: Vec<CardSummary>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
#[serde(untagged)]
pub enum CardDetailCustomFieldValue {
    String(String),
    Number(Number),
    Boolean(bool),
    Strings(Vec<Option<String>>),
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailCustomField {
    pub custom_field_id: Option<String>,
    pub value: Option<CardDetailCustomFieldValue>,
}

#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum CardDetailStickerHighlight {
    Underline,
    Round,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailSticker {
    pub icon: Option<String>,
    pub name: Option<String>,
    pub highlight: Option<CardDetailStickerHighlight>,
    pub position: Option<Number>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailLocation {
    pub location_id: String,
    pub name: Option<String>,
    pub address: Option<String>,
    pub latitude: Option<Number>,
    pub longitude: Option<Number>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailDependency {
    pub card_id: String,
    pub dependency_type: Option<String>,
    pub color: Option<String>,
    pub icon: Option<String>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailVote {
    pub question: String,
    pub positive: Vec<String>,
    pub negative: Vec<String>,
    pub end: Option<String>,
    pub public: bool,
    pub allow_non_board_members: bool,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetailPoker {
    pub question: Option<bool>,
    pub one: Vec<String>,
    pub two: Vec<String>,
    pub three: Vec<String>,
    pub five: Vec<String>,
    pub eight: Vec<String>,
    pub thirteen: Vec<String>,
    pub twenty: Vec<String>,
    pub forty: Vec<String>,
    pub one_hundred: Vec<String>,
    pub unsure: Vec<String>,
    pub end: Option<String>,
    pub allow_non_board_members: Option<bool>,
    pub estimation: Option<Number>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardDetail {
    pub card_id: String,
    pub title: Option<String>,
    pub archived: bool,
    pub archived_at: Option<String>,
    pub deleted_at: Option<String>,
    pub deleted_by: Option<String>,
    pub delete_batch_id: Option<String>,
    pub parent_id: Option<String>,
    pub list_id: Option<String>,
    pub swimlane_id: String,
    pub board_id: Option<String>,
    pub cover_id: Option<String>,
    pub color: Option<String>,
    pub created_at: String,
    pub modified_at: String,
    pub custom_fields: Vec<CardDetailCustomField>,
    pub date_last_activity: String,
    pub description: Option<String>,
    pub requested_by: Option<String>,
    pub assigned_by: Option<String>,
    pub label_ids: Vec<Option<String>>,
    pub members: Vec<String>,
    pub assignees: Vec<String>,
    pub requesters: Vec<String>,
    pub assigners: Vec<String>,
    pub received_at: Option<String>,
    pub start_at: Option<String>,
    pub due_at: Option<String>,
    pub end_at: Option<String>,
    pub due_complete: Option<bool>,
    pub stickers: Vec<CardDetailSticker>,
    pub location_name: Option<String>,
    pub location_address: Option<String>,
    pub location_latitude: Option<Number>,
    pub location_longitude: Option<Number>,
    pub locations: Vec<CardDetailLocation>,
    pub spent_time: Option<Number>,
    pub is_overtime: Option<bool>,
    pub user_id: String,
    pub sort: Option<Number>,
    pub subtask_sort: Option<Number>,
    pub card_type: String,
    pub linked_id: Option<String>,
    pub card_dependencies: Vec<CardDetailDependency>,
    pub vote: Option<CardDetailVote>,
    pub poker: Option<CardDetailPoker>,
    pub target_id_gantt: Vec<String>,
    pub link_type_gantt: Vec<Number>,
    pub link_id_gantt: Vec<String>,
    pub card_number: Option<Number>,
    pub show_activities: bool,
    pub show_list_on_minicard: Option<bool>,
    pub show_checklist_at_minicard: Option<bool>,
    pub hide_finished_checklist_if_items_are_hidden: Option<bool>,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardCreateSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
}

#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum CardSubmittedField {
    Title,
    Sort,
    ParentId,
    Description,
    Color,
    LabelIds,
    RequestedBy,
    AssignedBy,
    ReceivedAt,
    StartAt,
    DueAt,
    EndAt,
    SpentTime,
    IsOverTime,
    Members,
    Assignees,
    DueComplete,
    SwimlaneId,
    ListId,
    NewBoardId,
    NewSwimlaneId,
    NewListId,
    Archive,
    Vote,
    Poker,
    CustomFields,
    Stickers,
    Locations,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardUpdateSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub submitted_fields: Vec<CardSubmittedField>,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardArchiveSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub archived: bool,
    pub archived_at: String,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardRestoreSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub archived: bool,
}

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

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardDeleteSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub deleted: bool,
    pub delete_mode: CardDeleteMode,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardCustomFieldSetSuccess {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub custom_field_id: String,
    pub custom_fields: Vec<CardDetailCustomField>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardCustomFieldQuerySuccess {
    pub board_id: String,
    pub custom_field_id: String,
    pub value: String,
    pub cards: Vec<CardDetail>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CardLabelCollection {
    pub board_id: String,
    pub list_id: String,
    pub card_id: String,
    pub label_ids: Vec<Option<String>>,
}

#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardCopySuccess {
    pub source_board_id: String,
    pub source_list_id: String,
    pub source_card_id: String,
    pub target_board_id: String,
    pub target_list_id: String,
    pub target_swimlane_id: String,
    pub card_id: String,
    /// The returned ID does not confirm completion of unawaited copy effects.
    pub mutation_confirmed: bool,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct CardCountSuccess {
    pub board_id: String,
    pub list_id: Option<String>,
    pub count: u64,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct SwimlaneCardCollectionSuccess {
    pub board_id: String,
    pub swimlane_id: String,
    pub cards: Vec<SwimlaneCardSummary>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct SwimlaneCardSummary {
    pub card_id: String,
    pub title: Option<String>,
    pub description: Option<String>,
    pub list_id: Option<String>,
    pub received_at: Option<String>,
    pub start_at: Option<String>,
    pub due_at: Option<String>,
    pub end_at: Option<String>,
    pub assignees: Option<Vec<Option<String>>>,
    pub sort: Option<Number>,
}