.. This file is part of monday-client. Copyright (C) 2024 Leet Cyber Security monday-client is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. monday-client is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with monday-client. If not, see . Types ----- The types in this package are implemented as Python dataclasses that model the structure of Monday.com's GraphQL API responses and query parameters. Data Types ^^^^^^^^^^ These dataclasses represent the structure of data returned from the Monday.com API. For example: .. code-block:: python @dataclass class Item: name: str = '' updated_at: str = '' state: str = '' subitems: list[Subitem] | None = None You can access the attributes directly: .. rstcheck: ignore-next-code-block .. code-block:: python # Get item data from API items = await monday_client.items.query(item_ids=[123456789]) for item in items: print(f"Item: {item.name}") print(f"Last updated: {item.updated_at}") print(f"State: {item.state}") if item.subitems: print(f"Has {len(item.subitems)} subitems") for subitem in item.subitems: print(f" - {subitem.name}") Account Types """"""""""""" .. autoclass:: monday.types.account.Account :members: :show-inheritance: .. autoclass:: monday.types.account.AccountProduct :members: :show-inheritance: .. autoclass:: monday.types.account.Plan :members: :show-inheritance: Asset Types """"""""""" .. autoclass:: monday.types.asset.Asset :members: :show-inheritance: Board Types """"""""""" .. autoclass:: monday.types.board.Board :members: :show-inheritance: .. autoclass:: monday.types.board.ActivityLog :members: :show-inheritance: .. autoclass:: monday.types.board.BoardView :members: :show-inheritance: .. autoclass:: monday.types.board.UndoData :members: :show-inheritance: .. autoclass:: monday.types.board.UpdateBoard :members: :show-inheritance: Column Types """""""""""" .. autoclass:: monday.types.column.Column :members: :show-inheritance: .. autoclass:: monday.types.column.ColumnValue :members: :show-inheritance: .. autoclass:: monday.types.column.ColumnFilter :members: :show-inheritance: .. py:data:: monday.types.column.ColumnType :type: Literal Literal of supported column type names used throughout the API. Group Types """"""""""" .. autoclass:: monday.types.group.Group :members: :show-inheritance: .. autoclass:: monday.types.group.GroupList :members: :show-inheritance: Item Types """""""""" .. note:: Items can be filtered and queried using :class:`QueryParams` and :class:`QueryRule`. See :ref:`Query Types ` for details. .. autoclass:: monday.types.item.Item :members: :show-inheritance: .. autoclass:: monday.types.item.ItemList :members: :show-inheritance: .. autoclass:: monday.types.item.ItemsPage :members: :show-inheritance: .. autoclass:: monday.types.item.OrderBy :members: :show-inheritance: .. autoclass:: monday.types.item.QueryRule :members: :show-inheritance: .. autoclass:: monday.types.item.QueryParams :members: :show-inheritance: .. note:: For examples of how to use QueryParams to filter items, see :ref:`Filtering and Querying Items ` in the Usage documentation. Subitem Types """"""""""""" .. autoclass:: monday.types.subitem.Subitem :members: :show-inheritance: .. autoclass:: monday.types.subitem.SubitemList :members: :show-inheritance: Tag Types """"""""" .. autoclass:: monday.types.tag.Tag :members: :show-inheritance: Team Types """""""""" .. autoclass:: monday.types.team.Team :members: :show-inheritance: Update Types """""""""""" .. autoclass:: monday.types.update.Update :members: :show-inheritance: User Types """""""""" .. autoclass:: monday.types.user.User :members: :show-inheritance: .. autoclass:: monday.types.user.OutOfOffice :members: :show-inheritance: Workspace Types """"""""""""""" .. autoclass:: monday.types.workspace.Workspace :members: :show-inheritance: .. _column_input_types: Column Input Types """""""""""""""""" These dataclasses provide type-safe ways to set column values when updating items via the Monday.com API. For example: .. rstcheck: ignore-next-code-block .. code-block:: python from monday.types.column_inputs import DateInput, StatusInput, TextInput, NumberInput # Update multiple column values at once await client.items.change_column_values( item_id=123456789, column_values=[ DateInput('date_column_id', '2024-01-15', '14:30:00'), StatusInput('status_column_id', 'Working on it'), TextInput('text_column_id', 'Updated content'), NumberInput('number_column_id', 42.5) ] ) .. autoclass:: monday.types.column_inputs.CheckboxInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.CountryInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.DateInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.DropdownInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.EmailInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.HourInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.LinkInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.LocationInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.LongTextInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.NumberInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.PeopleInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.PhoneInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.RatingInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.StatusInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.TagInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.TextInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.TimelineInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.WeekInput :members: :show-inheritance: .. autoclass:: monday.types.column_inputs.WorldClockInput :members: :show-inheritance: Column Default Types """""""""""""""""""" These dataclasses are used to define default values when creating columns. .. autoclass:: monday.types.column_defaults.StatusDefaults :members: :show-inheritance: .. autoclass:: monday.types.column_defaults.StatusLabel :members: :show-inheritance: .. autoclass:: monday.types.column_defaults.DropdownDefaults :members: :show-inheritance: .. autoclass:: monday.types.column_defaults.DropdownLabel :members: :show-inheritance: .. _query_types: Query Types ^^^^^^^^^^^ These dataclasses are used to build complex queries and filter data from the Monday.com API. They are primarily used with the :meth:`boards.get_items() ` method to filter items based on column values, dates, text content, and other criteria. For basic usage examples, see :ref:`Filtering and Querying Items ` in the Usage documentation. For example: .. rstcheck: ignore-next-code-block .. code-block:: python from monday.types.item import QueryParams, QueryRule, OrderBy # Create a query to find items with status "Done" or "In Progress" query_params = QueryParams( rules=[ QueryRule( column_id='status', compare_value=['Done', 'In Progress'], operator='any_of' ) ], operator='and', order_by=OrderBy( column_id='date', direction='desc' ) ) # Use the query parameters items = await monday_client.items.query(query_params=query_params)