Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions src/monday_sdk/types/monday_enums.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
from __future__ import annotations

from enum import Enum


class ColumnType(Enum):
AUTO_NUMBER = "auto_number" # Number items according to their order in the group/board
BOARD_RELATION = "board_relation" # Link items between boards
BUTTON = "button" # Trigger automations or integrations from a button
CHECKBOX = "checkbox" # Check off items and see what's done at a glance
COUNTRY = "country" # Choose a country
COLOR_PICKER = "color_picker" # Manage a design system using a color palette
Expand All @@ -12,18 +16,24 @@ class ColumnType(Enum):
DROPDOWN = "dropdown" # Create a dropdown list of options
EMAIL = "email" # Email team members and clients directly from your board
FILE = "file" # Add files & docs to your item
FORMULA = "formula" # Computed values from other columns
HOUR = "hour" # Add times to manage and schedule tasks, shifts and more
ITEM_ID = "item_id" # Show a unique ID for each item
LAST_UPDATED = "last_updated" # Add the person that last updated the item and the date
LINK = "link" # Simply hyperlink to any website
LOCATION = "location" # Place multiple locations on a geographic map
LONG_TEXT = "long_text" # Add large amounts of text without changing column width
MIRROR = "mirror" # Mirror values from a connected board
NUMBERS = "numbers" # Add revenue, costs, time estimations and more
PEOPLE = "people" # Assign people to improve team work
PHONE = "phone" # Call your contacts directly from monday.com
PROGRESS = "progress" # Show progress by combining status columns in a battery
PULSE_ID = "pulse_id" # Legacy alias for the item-id column
PULSE_LOG = "pulse_log" # Activity log for the item
PULSE_UPDATED_VALUE = "pulse_updated_value" # Last-updated value summary for the item
RATING = "rating" # Rate or rank anything visually
STATUS = "status" # Get an instant overview of where things stand
SUBTASKS = "subtasks" # Manage subitems on the row
TEAM = "team" # Assign a full team to an item
TAGS = "tags" # Add tags to categorize items across multiple boards
TEXT = "text" # Add textual information e.g. addresses, names or keywords
Expand All @@ -33,6 +43,39 @@ class ColumnType(Enum):
WEEK = "week" # Select the week on which each item should be completed
WORLD_CLOCK = "world_clock" # Keep track of the time anywhere in the world

@property
def is_readonly(self) -> bool:
"""True if column_values mutations cannot write to this column type."""
return self in _READONLY_COLUMN_TYPES

@property
def is_writable(self) -> bool:
return not self.is_readonly


# people / multiple-person / location are intentionally excluded — they
# accept column_values writes but require typed payloads (people IDs,
# lat/lng) rather than free text.
_READONLY_COLUMN_TYPES: frozenset[ColumnType] = frozenset(
{
ColumnType.AUTO_NUMBER,
ColumnType.BOARD_RELATION,
ColumnType.BUTTON,
ColumnType.CREATION_LOG,
ColumnType.DEPENDENCY,
ColumnType.FILE,
ColumnType.FORMULA,
ColumnType.ITEM_ID,
ColumnType.LAST_UPDATED,
ColumnType.MIRROR,
ColumnType.PROGRESS,
ColumnType.PULSE_ID,
ColumnType.PULSE_LOG,
ColumnType.PULSE_UPDATED_VALUE,
ColumnType.SUBTASKS,
}
)


class Operator(Enum):
GREATER_THAN_OR_EQUALS = "greater_than_or_equals"
Expand Down