dart-tools 0.6.16__py3-none-any.whl → 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dart-tools might be problematic. Click here for more details.

Files changed (285) hide show
  1. dart/__init__.py +8 -6
  2. dart/dart.py +421 -698
  3. dart/generated/__init__.py +1 -1
  4. dart/generated/api/__init__.py +8 -0
  5. dart/generated/api/comment/__init__.py +1 -0
  6. dart/generated/api/{transactions/transactions_create.py → comment/create_comment.py} +57 -58
  7. dart/generated/api/config/__init__.py +1 -0
  8. dart/generated/api/config/get_config.py +141 -0
  9. dart/generated/api/dartboard/__init__.py +1 -0
  10. dart/generated/api/{attachments/attachments_list.py → dartboard/retrieve_dartboard.py} +58 -62
  11. dart/generated/api/doc/__init__.py +1 -0
  12. dart/generated/api/doc/create_doc.py +179 -0
  13. dart/generated/api/doc/delete_doc.py +165 -0
  14. dart/generated/api/{comments/comments_list.py → doc/list_docs.py} +115 -111
  15. dart/generated/api/{forms/forms_list.py → doc/retrieve_doc.py} +58 -62
  16. dart/generated/api/doc/update_doc.py +188 -0
  17. dart/generated/api/folder/__init__.py +1 -0
  18. dart/generated/api/{webhooks/webhooks_list.py → folder/retrieve_folder.py} +58 -62
  19. dart/generated/api/task/__init__.py +1 -0
  20. dart/generated/api/task/create_task.py +172 -0
  21. dart/generated/api/task/delete_task.py +165 -0
  22. dart/generated/api/task/list_tasks.py +497 -0
  23. dart/generated/api/{layouts/layouts_list.py → task/retrieve_task.py} +58 -62
  24. dart/generated/api/task/update_task.py +188 -0
  25. dart/generated/api/view/__init__.py +1 -0
  26. dart/generated/api/{tenants/tenants_list.py → view/retrieve_view.py} +58 -62
  27. dart/generated/client.py +13 -13
  28. dart/generated/models/__init__.py +34 -342
  29. dart/generated/models/comment.py +34 -150
  30. dart/generated/models/comment_create.py +18 -97
  31. dart/generated/models/concise_doc.py +84 -0
  32. dart/generated/models/concise_task.py +267 -0
  33. dart/generated/models/dartboard.py +37 -237
  34. dart/generated/models/doc.py +31 -183
  35. dart/generated/models/doc_create.py +22 -238
  36. dart/generated/models/doc_update.py +26 -233
  37. dart/generated/models/folder.py +39 -84
  38. dart/generated/models/list_docs_o_item.py +15 -0
  39. dart/generated/models/{paginated_attachment_list.py → paginated_concise_doc_list.py} +18 -17
  40. dart/generated/models/{paginated_dartboard_list.py → paginated_concise_task_list.py} +18 -17
  41. dart/generated/models/task.py +149 -406
  42. dart/generated/models/task_create.py +113 -428
  43. dart/generated/models/task_update.py +113 -421
  44. dart/generated/models/user.py +14 -192
  45. dart/generated/models/user_space_configuration.py +147 -0
  46. dart/generated/models/view.py +39 -149
  47. dart/generated/models/wrapped_comment.py +65 -0
  48. dart/generated/models/wrapped_comment_create.py +65 -0
  49. dart/generated/models/wrapped_dartboard.py +65 -0
  50. dart/generated/models/wrapped_doc.py +65 -0
  51. dart/generated/models/wrapped_doc_create.py +65 -0
  52. dart/generated/models/wrapped_doc_update.py +65 -0
  53. dart/generated/models/wrapped_folder.py +65 -0
  54. dart/generated/models/wrapped_task.py +65 -0
  55. dart/generated/models/wrapped_task_create.py +65 -0
  56. dart/generated/models/wrapped_task_update.py +65 -0
  57. dart/generated/models/wrapped_view.py +65 -0
  58. dart/generated/types.py +4 -3
  59. dart/old.py +216 -0
  60. dart/order_manager.py +4 -15
  61. dart/webhook.py +2 -7
  62. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/METADATA +15 -75
  63. dart_tools-0.7.0.dist-info/RECORD +71 -0
  64. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/WHEEL +1 -1
  65. dart/generated/api/attachments/__init__.py +0 -0
  66. dart/generated/api/comments/__init__.py +0 -0
  67. dart/generated/api/dartboards/__init__.py +0 -0
  68. dart/generated/api/dartboards/dartboards_list.py +0 -286
  69. dart/generated/api/dashboards/__init__.py +0 -0
  70. dart/generated/api/dashboards/dashboards_list.py +0 -199
  71. dart/generated/api/docs/__init__.py +0 -0
  72. dart/generated/api/docs/docs_list.py +0 -387
  73. dart/generated/api/folders/__init__.py +0 -0
  74. dart/generated/api/folders/folders_list.py +0 -249
  75. dart/generated/api/form_fields/__init__.py +0 -0
  76. dart/generated/api/form_fields/form_fields_list.py +0 -169
  77. dart/generated/api/forms/__init__.py +0 -0
  78. dart/generated/api/layouts/__init__.py +0 -0
  79. dart/generated/api/links/__init__.py +0 -0
  80. dart/generated/api/links/links_list.py +0 -169
  81. dart/generated/api/options/__init__.py +0 -0
  82. dart/generated/api/options/options_list.py +0 -244
  83. dart/generated/api/properties/__init__.py +0 -0
  84. dart/generated/api/properties/properties_list.py +0 -219
  85. dart/generated/api/reactions/__init__.py +0 -0
  86. dart/generated/api/reactions/reactions_list.py +0 -169
  87. dart/generated/api/relationship_kinds/__init__.py +0 -0
  88. dart/generated/api/relationship_kinds/relationship_kinds_list.py +0 -169
  89. dart/generated/api/relationships/__init__.py +0 -0
  90. dart/generated/api/relationships/relationships_list.py +0 -169
  91. dart/generated/api/spaces/__init__.py +0 -0
  92. dart/generated/api/spaces/spaces_list.py +0 -229
  93. dart/generated/api/statuses/__init__.py +0 -0
  94. dart/generated/api/statuses/statuses_list.py +0 -264
  95. dart/generated/api/task_doc_relationships/__init__.py +0 -0
  96. dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +0 -169
  97. dart/generated/api/task_kinds/__init__.py +0 -0
  98. dart/generated/api/task_kinds/task_kinds_list.py +0 -219
  99. dart/generated/api/tasks/__init__.py +0 -0
  100. dart/generated/api/tasks/tasks_list.py +0 -461
  101. dart/generated/api/tenants/__init__.py +0 -0
  102. dart/generated/api/transactions/__init__.py +0 -0
  103. dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
  104. dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +0 -169
  105. dart/generated/api/user_data/__init__.py +0 -0
  106. dart/generated/api/user_data/user_data_entity_retrieve.py +0 -580
  107. dart/generated/api/users/__init__.py +0 -0
  108. dart/generated/api/users/users_list.py +0 -229
  109. dart/generated/api/views/__init__.py +0 -0
  110. dart/generated/api/views/views_list.py +0 -199
  111. dart/generated/api/webhooks/__init__.py +0 -0
  112. dart/generated/models/attachment.py +0 -112
  113. dart/generated/models/attachment_create.py +0 -121
  114. dart/generated/models/attachment_update.py +0 -125
  115. dart/generated/models/bar_chart_adtl.py +0 -98
  116. dart/generated/models/brainstorm.py +0 -149
  117. dart/generated/models/brainstorm_create.py +0 -134
  118. dart/generated/models/brainstorm_state.py +0 -10
  119. dart/generated/models/brainstorm_update.py +0 -153
  120. dart/generated/models/burn_up_chart_adtl.py +0 -103
  121. dart/generated/models/chart.py +0 -208
  122. dart/generated/models/chart_aggregation.py +0 -10
  123. dart/generated/models/chart_type.py +0 -14
  124. dart/generated/models/comment_reaction.py +0 -84
  125. dart/generated/models/comment_reaction_create.py +0 -82
  126. dart/generated/models/comment_reaction_update.py +0 -87
  127. dart/generated/models/comment_update.py +0 -148
  128. dart/generated/models/dartboard_create.py +0 -315
  129. dart/generated/models/dartboard_kind.py +0 -12
  130. dart/generated/models/dartboard_update.py +0 -317
  131. dart/generated/models/dartboards_list_kind.py +0 -12
  132. dart/generated/models/dashboard.py +0 -185
  133. dart/generated/models/dashboard_create.py +0 -171
  134. dart/generated/models/dashboard_update.py +0 -173
  135. dart/generated/models/discord_integration.py +0 -72
  136. dart/generated/models/doc_source_type.py +0 -13
  137. dart/generated/models/docs_list_o_item.py +0 -15
  138. dart/generated/models/entity_name.py +0 -22
  139. dart/generated/models/event.py +0 -420
  140. dart/generated/models/event_actor.py +0 -19
  141. dart/generated/models/event_create.py +0 -158
  142. dart/generated/models/event_kind.py +0 -88
  143. dart/generated/models/event_subscription.py +0 -74
  144. dart/generated/models/event_subscription_update.py +0 -173
  145. dart/generated/models/filter_applicability.py +0 -22
  146. dart/generated/models/filter_assignee.py +0 -116
  147. dart/generated/models/filter_connector.py +0 -9
  148. dart/generated/models/filter_group.py +0 -112
  149. dart/generated/models/filter_search.py +0 -82
  150. dart/generated/models/filter_set.py +0 -116
  151. dart/generated/models/folder_create.py +0 -150
  152. dart/generated/models/folder_kind.py +0 -10
  153. dart/generated/models/folder_update.py +0 -152
  154. dart/generated/models/folders_list_kind.py +0 -10
  155. dart/generated/models/form.py +0 -147
  156. dart/generated/models/form_create.py +0 -141
  157. dart/generated/models/form_field.py +0 -144
  158. dart/generated/models/form_field_create.py +0 -129
  159. dart/generated/models/form_field_update.py +0 -132
  160. dart/generated/models/form_update.py +0 -142
  161. dart/generated/models/github_integration.py +0 -163
  162. dart/generated/models/github_integration_tenant_extension_status.py +0 -11
  163. dart/generated/models/google_data.py +0 -94
  164. dart/generated/models/icon_kind.py +0 -10
  165. dart/generated/models/layout.py +0 -167
  166. dart/generated/models/layout_config.py +0 -70
  167. dart/generated/models/layout_create.py +0 -130
  168. dart/generated/models/layout_kind.py +0 -11
  169. dart/generated/models/layout_kind_config_map.py +0 -56
  170. dart/generated/models/layout_update.py +0 -130
  171. dart/generated/models/line_chart_adtl.py +0 -72
  172. dart/generated/models/models_response.py +0 -671
  173. dart/generated/models/notification.py +0 -120
  174. dart/generated/models/notification_update.py +0 -100
  175. dart/generated/models/notion_integration.py +0 -90
  176. dart/generated/models/notion_integration_tenant_extension_status.py +0 -10
  177. dart/generated/models/number_chart_adtl.py +0 -77
  178. dart/generated/models/operation.py +0 -874
  179. dart/generated/models/operation_kind.py +0 -12
  180. dart/generated/models/operation_model_kind.py +0 -36
  181. dart/generated/models/option.py +0 -118
  182. dart/generated/models/option_create.py +0 -105
  183. dart/generated/models/option_update.py +0 -107
  184. dart/generated/models/paginated_comment_list.py +0 -122
  185. dart/generated/models/paginated_comment_reaction_list.py +0 -122
  186. dart/generated/models/paginated_dashboard_list.py +0 -122
  187. dart/generated/models/paginated_doc_list.py +0 -122
  188. dart/generated/models/paginated_folder_list.py +0 -122
  189. dart/generated/models/paginated_form_field_list.py +0 -122
  190. dart/generated/models/paginated_form_list.py +0 -122
  191. dart/generated/models/paginated_layout_list.py +0 -122
  192. dart/generated/models/paginated_option_list.py +0 -122
  193. dart/generated/models/paginated_property_list.py +0 -122
  194. dart/generated/models/paginated_relationship_kind_list.py +0 -122
  195. dart/generated/models/paginated_relationship_list.py +0 -122
  196. dart/generated/models/paginated_space_list.py +0 -122
  197. dart/generated/models/paginated_status_list.py +0 -122
  198. dart/generated/models/paginated_task_doc_relationship_list.py +0 -122
  199. dart/generated/models/paginated_task_kind_list.py +0 -122
  200. dart/generated/models/paginated_task_link_list.py +0 -122
  201. dart/generated/models/paginated_task_list.py +0 -122
  202. dart/generated/models/paginated_tenant_list.py +0 -122
  203. dart/generated/models/paginated_user_dartboard_layout_list.py +0 -122
  204. dart/generated/models/paginated_user_list.py +0 -122
  205. dart/generated/models/paginated_view_list.py +0 -122
  206. dart/generated/models/paginated_webhook_list.py +0 -122
  207. dart/generated/models/pie_chart_adtl.py +0 -69
  208. dart/generated/models/pie_chart_display_metric.py +0 -9
  209. dart/generated/models/properties_list_kind.py +0 -32
  210. dart/generated/models/property_.py +0 -153
  211. dart/generated/models/property_create.py +0 -137
  212. dart/generated/models/property_kind.py +0 -32
  213. dart/generated/models/property_update.py +0 -146
  214. dart/generated/models/relationship.py +0 -74
  215. dart/generated/models/relationship_create.py +0 -93
  216. dart/generated/models/relationship_kind.py +0 -123
  217. dart/generated/models/relationship_kind_create.py +0 -117
  218. dart/generated/models/relationship_kind_kind.py +0 -12
  219. dart/generated/models/relationship_kind_update.py +0 -119
  220. dart/generated/models/report_kind.py +0 -9
  221. dart/generated/models/request_body.py +0 -83
  222. dart/generated/models/response_body.py +0 -72
  223. dart/generated/models/saml_config.py +0 -77
  224. dart/generated/models/saml_config_tenant_extension_status.py +0 -9
  225. dart/generated/models/slack_integration.py +0 -90
  226. dart/generated/models/slack_integration_tenant_extension_status.py +0 -10
  227. dart/generated/models/sort.py +0 -66
  228. dart/generated/models/space.py +0 -311
  229. dart/generated/models/space_create.py +0 -340
  230. dart/generated/models/space_kind.py +0 -10
  231. dart/generated/models/space_update.py +0 -341
  232. dart/generated/models/sprint_mode.py +0 -9
  233. dart/generated/models/status.py +0 -141
  234. dart/generated/models/status_create.py +0 -125
  235. dart/generated/models/status_kind.py +0 -12
  236. dart/generated/models/status_update.py +0 -135
  237. dart/generated/models/statuses_list_kind.py +0 -12
  238. dart/generated/models/subscription.py +0 -9
  239. dart/generated/models/subtask_display_mode.py +0 -10
  240. dart/generated/models/summary_statistic_kind.py +0 -14
  241. dart/generated/models/table_chart_adtl.py +0 -98
  242. dart/generated/models/task_detail_mode.py +0 -10
  243. dart/generated/models/task_doc_relationship.py +0 -96
  244. dart/generated/models/task_doc_relationship_create.py +0 -74
  245. dart/generated/models/task_kind.py +0 -149
  246. dart/generated/models/task_kind_create.py +0 -144
  247. dart/generated/models/task_kind_kind.py +0 -9
  248. dart/generated/models/task_kind_update.py +0 -153
  249. dart/generated/models/task_kinds_list_kind.py +0 -9
  250. dart/generated/models/task_link.py +0 -131
  251. dart/generated/models/task_link_create.py +0 -152
  252. dart/generated/models/task_link_kind.py +0 -19
  253. dart/generated/models/task_link_update.py +0 -155
  254. dart/generated/models/task_notion_document.py +0 -196
  255. dart/generated/models/task_notion_document_block_children_map_type_0.py +0 -43
  256. dart/generated/models/task_notion_document_block_map_type_0.py +0 -43
  257. dart/generated/models/task_notion_document_page_map_type_0.py +0 -43
  258. dart/generated/models/task_properties.py +0 -43
  259. dart/generated/models/task_source_type.py +0 -31
  260. dart/generated/models/tenant.py +0 -386
  261. dart/generated/models/tenant_update.py +0 -166
  262. dart/generated/models/theme.py +0 -10
  263. dart/generated/models/transaction.py +0 -158
  264. dart/generated/models/transaction_kind.py +0 -74
  265. dart/generated/models/transaction_response.py +0 -96
  266. dart/generated/models/user_dartboard_layout.py +0 -66
  267. dart/generated/models/user_dartboard_layout_create.py +0 -74
  268. dart/generated/models/user_data_entity_retrieve_entity_kind.py +0 -32
  269. dart/generated/models/user_role.py +0 -12
  270. dart/generated/models/user_status.py +0 -12
  271. dart/generated/models/user_update.py +0 -210
  272. dart/generated/models/validation_error_response.py +0 -64
  273. dart/generated/models/validation_error_response_items.py +0 -43
  274. dart/generated/models/view_create.py +0 -213
  275. dart/generated/models/view_kind.py +0 -11
  276. dart/generated/models/view_update.py +0 -215
  277. dart/generated/models/webhook.py +0 -96
  278. dart/generated/models/webhook_create.py +0 -77
  279. dart/generated/models/webhook_update.py +0 -78
  280. dart/generated/models/zapier_integration.py +0 -66
  281. dart_tools-0.6.16.dist-info/RECORD +0 -257
  282. dart_tools-0.6.16.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  283. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/entry_points.txt +0 -0
  284. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info/licenses}/LICENSE +0 -0
  285. {dart_tools-0.6.16.dist-info → dart_tools-0.7.0.dist-info}/top_level.txt +0 -0
@@ -1,21 +1,12 @@
1
- import datetime
2
- from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
- from dateutil.parser import isoparse
7
6
 
8
7
  from ..models.priority import Priority
9
- from ..models.task_source_type import TaskSourceType
10
8
  from ..types import UNSET, Unset
11
9
 
12
- if TYPE_CHECKING:
13
- from ..models.relationship import Relationship
14
- from ..models.task_link import TaskLink
15
- from ..models.task_notion_document import TaskNotionDocument
16
- from ..models.task_properties import TaskProperties
17
-
18
-
19
10
  T = TypeVar("T", bound="Task")
20
11
 
21
12
 
@@ -23,499 +14,251 @@ T = TypeVar("T", bound="Task")
23
14
  class Task:
24
15
  """
25
16
  Attributes:
26
- duid (str):
27
- source_type (TaskSourceType): * `Unknown` - UNKNOWN
28
- * `Import` - IMPORT
29
- * `Onboarding` - ONBOARDING
30
- * `Recommendation` - RECOMMENDATION
31
- * `Recurrence` - RECURRENCE
32
- * `Template` - TEMPLATE
33
- * `ChatGPT` - CHAT_GPT
34
- * `Email` - EMAIL
35
- * `Slack` - SLACK
36
- * `API` - API
37
- * `CLI` - CLI
38
- * `Application` - APPLICATION
39
- * `AppTcm` - APP_TCM
40
- * `AppInternalForm` - APP_INTERNAL_FORM
41
- * `AppQuickAdd` - APP_QUICK_ADD
42
- * `AppBoard` - APP_BOARD
43
- * `AppSubtask` - APP_SUBTASK
44
- * `AppRelationship` - APP_RELATIONSHIP
45
- * `AppEnter` - APP_ENTER
46
- * `AppReplicate` - APP_REPLICATE
47
- * `AppPaste` - APP_PASTE
48
- * `AppRoadmapList` - APP_ROADMAP_LIST
49
- * `AppRoadmapTimeline` - APP_ROADMAP_TIMELINE
50
- * `ExternalForm` - EXTERNAL_FORM
51
- created_at (datetime.datetime):
52
- created_by_duid (Union[None, str]):
53
- updated_at (datetime.datetime):
54
- updated_by_duid (Union[None, str]):
55
- drafter_duid (Union[None, str]):
56
- in_trash (bool):
57
- dartboard_duid (str):
58
- order (str):
59
- expanded (bool):
60
- kind_duid (str):
61
- title (str):
62
- description (Any):
63
- notion_document (Union['TaskNotionDocument', None]):
64
- status_duid (str):
65
- assigned_to_ai (bool):
66
- recommendation_duid (Union[None, str]):
67
- assignee_duids (List[str]):
68
- subscriber_duids (List[str]):
69
- tag_duids (List[str]):
70
- links (List['TaskLink']):
71
- attachment_duids (List[str]):
72
- relationships (List['Relationship']):
73
- priority (Union[None, Priority]):
74
- size (Union[None, int]):
75
- start_at (Union[None, datetime.datetime]):
76
- due_at (Union[None, datetime.datetime]):
77
- time_tracking (Any):
78
- remind_at (Union[None, datetime.datetime]):
79
- recurrence (Union[Any, None]):
80
- recurs_next_at (Union[None, datetime.datetime]):
81
- properties (TaskProperties):
82
- updated_by_client_duid (Union[None, Unset, str]):
17
+ id (str): The universal, unique ID of the task.
18
+ html_url (str): The URL that can be used to open the task in the Dart web UI.
19
+ title (str): The title, which is a short description of what needs to be done.
20
+ parent_id (Union[None, str]): The universal, unique ID of the parent task. This can be null.
21
+ dartboard (str): The full title of the dartboard, which is a project or list of tasks.
22
+ type_ (str): The title of the type of the task.
23
+ status (str): The status from the list of available statuses.
24
+ description (str): A longer description of the task, which can include markdown formatting.
25
+ assignees (Union[Unset, list[str]]): The names or emails of the users that the task is assigned to. Either this
26
+ or assignee must be included, depending on whether the workspaces allows multiple assignees or not.
27
+ assignee (Union[None, Unset, str]): The name or email of the user that the task is assigned to. Either this or
28
+ assignees must be included, depending on whether the workspaces allows multiple assignees or not.
29
+ tags (Union[Unset, list[str]]): Any tags that should be applied to the task, which can be used to filter and
30
+ search for tasks. Tags are also known as labels or components and are strings that can be anything, but should
31
+ be short and descriptive. This list can be empty.
32
+ priority (Union[None, Priority, Unset]): The priority, which is a string that can be one of the specified
33
+ options. This is used to sort tasks and determine which tasks should be done first.
34
+ start_at (Union[None, Unset, str]): The start date, which is a date and time that the task should be started by
35
+ in ISO format. It should be at 9:00am in the timezone of the user.
36
+ due_at (Union[None, Unset, str]): The due date, which is a date and time that the task should be completed by in
37
+ ISO format. It should be at 9:00am in the timezone of the user.
38
+ size (Union[None, Unset, int]): The size, which is a number that represents the amount of work that needs to be
39
+ done. This is used to determine how long the task will take to complete.
40
+ time_tracking (Union[Unset, str]): The time tracking, which is a string that indicates the amount of time spent
41
+ on the task in hh:mm:ss format (or an empty string if no time has been tracked).
83
42
  """
84
43
 
85
- duid: str
86
- source_type: TaskSourceType
87
- created_at: datetime.datetime
88
- created_by_duid: Union[None, str]
89
- updated_at: datetime.datetime
90
- updated_by_duid: Union[None, str]
91
- drafter_duid: Union[None, str]
92
- in_trash: bool
93
- dartboard_duid: str
94
- order: str
95
- expanded: bool
96
- kind_duid: str
44
+ id: str
45
+ html_url: str
97
46
  title: str
98
- description: Any
99
- notion_document: Union["TaskNotionDocument", None]
100
- status_duid: str
101
- assigned_to_ai: bool
102
- recommendation_duid: Union[None, str]
103
- assignee_duids: List[str]
104
- subscriber_duids: List[str]
105
- tag_duids: List[str]
106
- links: List["TaskLink"]
107
- attachment_duids: List[str]
108
- relationships: List["Relationship"]
109
- priority: Union[None, Priority]
110
- size: Union[None, int]
111
- start_at: Union[None, datetime.datetime]
112
- due_at: Union[None, datetime.datetime]
113
- time_tracking: Any
114
- remind_at: Union[None, datetime.datetime]
115
- recurrence: Union[Any, None]
116
- recurs_next_at: Union[None, datetime.datetime]
117
- properties: "TaskProperties"
118
- updated_by_client_duid: Union[None, Unset, str] = UNSET
119
- additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
120
-
121
- def to_dict(self) -> Dict[str, Any]:
122
- from ..models.task_notion_document import TaskNotionDocument
123
-
124
- duid = self.duid
125
-
126
- source_type = self.source_type.value
127
-
128
- created_at = self.created_at.isoformat()
129
-
130
- created_by_duid: Union[None, str]
131
- created_by_duid = self.created_by_duid
132
-
133
- updated_at = self.updated_at.isoformat()
134
-
135
- updated_by_duid: Union[None, str]
136
- updated_by_duid = self.updated_by_duid
137
-
138
- drafter_duid: Union[None, str]
139
- drafter_duid = self.drafter_duid
140
-
141
- in_trash = self.in_trash
142
-
143
- dartboard_duid = self.dartboard_duid
144
-
145
- order = self.order
146
-
147
- expanded = self.expanded
148
-
149
- kind_duid = self.kind_duid
47
+ parent_id: Union[None, str]
48
+ dartboard: str
49
+ type_: str
50
+ status: str
51
+ description: str
52
+ assignees: Union[Unset, list[str]] = UNSET
53
+ assignee: Union[None, Unset, str] = UNSET
54
+ tags: Union[Unset, list[str]] = UNSET
55
+ priority: Union[None, Priority, Unset] = UNSET
56
+ start_at: Union[None, Unset, str] = UNSET
57
+ due_at: Union[None, Unset, str] = UNSET
58
+ size: Union[None, Unset, int] = UNSET
59
+ time_tracking: Union[Unset, str] = UNSET
60
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
61
+
62
+ def to_dict(self) -> dict[str, Any]:
63
+ id = self.id
64
+
65
+ html_url = self.html_url
150
66
 
151
67
  title = self.title
152
68
 
153
- description = self.description
154
-
155
- notion_document: Union[Dict[str, Any], None]
156
- if isinstance(self.notion_document, TaskNotionDocument):
157
- notion_document = self.notion_document.to_dict()
158
- else:
159
- notion_document = self.notion_document
160
-
161
- status_duid = self.status_duid
69
+ parent_id: Union[None, str]
70
+ parent_id = self.parent_id
162
71
 
163
- assigned_to_ai = self.assigned_to_ai
72
+ dartboard = self.dartboard
164
73
 
165
- recommendation_duid: Union[None, str]
166
- recommendation_duid = self.recommendation_duid
74
+ type_ = self.type_
167
75
 
168
- assignee_duids = self.assignee_duids
76
+ status = self.status
169
77
 
170
- subscriber_duids = self.subscriber_duids
171
-
172
- tag_duids = self.tag_duids
78
+ description = self.description
173
79
 
174
- links = []
175
- for links_item_data in self.links:
176
- links_item = links_item_data.to_dict()
177
- links.append(links_item)
80
+ assignees: Union[Unset, list[str]] = UNSET
81
+ if not isinstance(self.assignees, Unset):
82
+ assignees = self.assignees
178
83
 
179
- attachment_duids = self.attachment_duids
84
+ assignee: Union[None, Unset, str]
85
+ if isinstance(self.assignee, Unset):
86
+ assignee = UNSET
87
+ else:
88
+ assignee = self.assignee
180
89
 
181
- relationships = []
182
- for relationships_item_data in self.relationships:
183
- relationships_item = relationships_item_data.to_dict()
184
- relationships.append(relationships_item)
90
+ tags: Union[Unset, list[str]] = UNSET
91
+ if not isinstance(self.tags, Unset):
92
+ tags = self.tags
185
93
 
186
- priority: Union[None, str]
187
- if isinstance(self.priority, Priority):
94
+ priority: Union[None, Unset, str]
95
+ if isinstance(self.priority, Unset):
96
+ priority = UNSET
97
+ elif isinstance(self.priority, Priority):
188
98
  priority = self.priority.value
189
99
  else:
190
100
  priority = self.priority
191
101
 
192
- size: Union[None, int]
193
- size = self.size
194
-
195
- start_at: Union[None, str]
196
- if isinstance(self.start_at, datetime.datetime):
197
- start_at = self.start_at.isoformat()
102
+ start_at: Union[None, Unset, str]
103
+ if isinstance(self.start_at, Unset):
104
+ start_at = UNSET
198
105
  else:
199
106
  start_at = self.start_at
200
107
 
201
- due_at: Union[None, str]
202
- if isinstance(self.due_at, datetime.datetime):
203
- due_at = self.due_at.isoformat()
108
+ due_at: Union[None, Unset, str]
109
+ if isinstance(self.due_at, Unset):
110
+ due_at = UNSET
204
111
  else:
205
112
  due_at = self.due_at
206
113
 
207
- time_tracking = self.time_tracking
208
-
209
- remind_at: Union[None, str]
210
- if isinstance(self.remind_at, datetime.datetime):
211
- remind_at = self.remind_at.isoformat()
114
+ size: Union[None, Unset, int]
115
+ if isinstance(self.size, Unset):
116
+ size = UNSET
212
117
  else:
213
- remind_at = self.remind_at
118
+ size = self.size
214
119
 
215
- recurrence: Union[Any, None]
216
- recurrence = self.recurrence
217
-
218
- recurs_next_at: Union[None, str]
219
- if isinstance(self.recurs_next_at, datetime.datetime):
220
- recurs_next_at = self.recurs_next_at.isoformat()
221
- else:
222
- recurs_next_at = self.recurs_next_at
223
-
224
- properties = self.properties.to_dict()
225
-
226
- updated_by_client_duid: Union[None, Unset, str]
227
- if isinstance(self.updated_by_client_duid, Unset):
228
- updated_by_client_duid = UNSET
229
- else:
230
- updated_by_client_duid = self.updated_by_client_duid
120
+ time_tracking = self.time_tracking
231
121
 
232
- field_dict: Dict[str, Any] = {}
122
+ field_dict: dict[str, Any] = {}
233
123
  field_dict.update(self.additional_properties)
234
124
  field_dict.update(
235
125
  {
236
- "duid": duid,
237
- "sourceType": source_type,
238
- "createdAt": created_at,
239
- "createdByDuid": created_by_duid,
240
- "updatedAt": updated_at,
241
- "updatedByDuid": updated_by_duid,
242
- "drafterDuid": drafter_duid,
243
- "inTrash": in_trash,
244
- "dartboardDuid": dartboard_duid,
245
- "order": order,
246
- "expanded": expanded,
247
- "kindDuid": kind_duid,
126
+ "id": id,
127
+ "htmlUrl": html_url,
248
128
  "title": title,
129
+ "parentId": parent_id,
130
+ "dartboard": dartboard,
131
+ "type": type_,
132
+ "status": status,
249
133
  "description": description,
250
- "notionDocument": notion_document,
251
- "statusDuid": status_duid,
252
- "assignedToAi": assigned_to_ai,
253
- "recommendationDuid": recommendation_duid,
254
- "assigneeDuids": assignee_duids,
255
- "subscriberDuids": subscriber_duids,
256
- "tagDuids": tag_duids,
257
- "links": links,
258
- "attachmentDuids": attachment_duids,
259
- "relationships": relationships,
260
- "priority": priority,
261
- "size": size,
262
- "startAt": start_at,
263
- "dueAt": due_at,
264
- "timeTracking": time_tracking,
265
- "remindAt": remind_at,
266
- "recurrence": recurrence,
267
- "recursNextAt": recurs_next_at,
268
- "properties": properties,
269
134
  }
270
135
  )
271
- if updated_by_client_duid is not UNSET:
272
- field_dict["updatedByClientDuid"] = updated_by_client_duid
136
+ if assignees is not UNSET:
137
+ field_dict["assignees"] = assignees
138
+ if assignee is not UNSET:
139
+ field_dict["assignee"] = assignee
140
+ if tags is not UNSET:
141
+ field_dict["tags"] = tags
142
+ if priority is not UNSET:
143
+ field_dict["priority"] = priority
144
+ if start_at is not UNSET:
145
+ field_dict["startAt"] = start_at
146
+ if due_at is not UNSET:
147
+ field_dict["dueAt"] = due_at
148
+ if size is not UNSET:
149
+ field_dict["size"] = size
150
+ if time_tracking is not UNSET:
151
+ field_dict["timeTracking"] = time_tracking
273
152
 
274
153
  return field_dict
275
154
 
276
155
  @classmethod
277
- def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
278
- from ..models.relationship import Relationship
279
- from ..models.task_link import TaskLink
280
- from ..models.task_notion_document import TaskNotionDocument
281
- from ..models.task_properties import TaskProperties
282
-
283
- d = src_dict.copy()
284
- duid = d.pop("duid")
285
-
286
- source_type = TaskSourceType(d.pop("sourceType"))
287
-
288
- created_at = isoparse(d.pop("createdAt"))
289
-
290
- def _parse_created_by_duid(data: object) -> Union[None, str]:
291
- if data is None:
292
- return data
293
- return cast(Union[None, str], data)
156
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
157
+ d = dict(src_dict)
158
+ id = d.pop("id")
294
159
 
295
- created_by_duid = _parse_created_by_duid(d.pop("createdByDuid"))
160
+ html_url = d.pop("htmlUrl")
296
161
 
297
- updated_at = isoparse(d.pop("updatedAt"))
298
-
299
- def _parse_updated_by_duid(data: object) -> Union[None, str]:
300
- if data is None:
301
- return data
302
- return cast(Union[None, str], data)
303
-
304
- updated_by_duid = _parse_updated_by_duid(d.pop("updatedByDuid"))
162
+ title = d.pop("title")
305
163
 
306
- def _parse_drafter_duid(data: object) -> Union[None, str]:
164
+ def _parse_parent_id(data: object) -> Union[None, str]:
307
165
  if data is None:
308
166
  return data
309
167
  return cast(Union[None, str], data)
310
168
 
311
- drafter_duid = _parse_drafter_duid(d.pop("drafterDuid"))
312
-
313
- in_trash = d.pop("inTrash")
169
+ parent_id = _parse_parent_id(d.pop("parentId"))
314
170
 
315
- dartboard_duid = d.pop("dartboardDuid")
171
+ dartboard = d.pop("dartboard")
316
172
 
317
- order = d.pop("order")
173
+ type_ = d.pop("type")
318
174
 
319
- expanded = d.pop("expanded")
320
-
321
- kind_duid = d.pop("kindDuid")
322
-
323
- title = d.pop("title")
175
+ status = d.pop("status")
324
176
 
325
177
  description = d.pop("description")
326
178
 
327
- def _parse_notion_document(data: object) -> Union["TaskNotionDocument", None]:
328
- if data is None:
329
- return data
330
- try:
331
- if not isinstance(data, dict):
332
- raise TypeError()
333
- notion_document_type_0 = TaskNotionDocument.from_dict(data)
179
+ assignees = cast(list[str], d.pop("assignees", UNSET))
334
180
 
335
- return notion_document_type_0
336
- except: # noqa: E722
337
- pass
338
- return cast(Union["TaskNotionDocument", None], data)
339
-
340
- notion_document = _parse_notion_document(d.pop("notionDocument"))
341
-
342
- status_duid = d.pop("statusDuid")
343
-
344
- assigned_to_ai = d.pop("assignedToAi")
345
-
346
- def _parse_recommendation_duid(data: object) -> Union[None, str]:
181
+ def _parse_assignee(data: object) -> Union[None, Unset, str]:
347
182
  if data is None:
348
183
  return data
349
- return cast(Union[None, str], data)
350
-
351
- recommendation_duid = _parse_recommendation_duid(d.pop("recommendationDuid"))
352
-
353
- assignee_duids = cast(List[str], d.pop("assigneeDuids"))
354
-
355
- subscriber_duids = cast(List[str], d.pop("subscriberDuids"))
356
-
357
- tag_duids = cast(List[str], d.pop("tagDuids"))
358
-
359
- links = []
360
- _links = d.pop("links")
361
- for links_item_data in _links:
362
- links_item = TaskLink.from_dict(links_item_data)
363
-
364
- links.append(links_item)
365
-
366
- attachment_duids = cast(List[str], d.pop("attachmentDuids"))
367
-
368
- relationships = []
369
- _relationships = d.pop("relationships")
370
- for relationships_item_data in _relationships:
371
- relationships_item = Relationship.from_dict(relationships_item_data)
372
-
373
- relationships.append(relationships_item)
374
-
375
- def _parse_priority(data: object) -> Union[None, Priority]:
376
- if data is None:
184
+ if isinstance(data, Unset):
377
185
  return data
378
- try:
379
- if not isinstance(data, str):
380
- raise TypeError()
381
- priority_type_0 = Priority(data)
186
+ return cast(Union[None, Unset, str], data)
382
187
 
383
- return priority_type_0
384
- except: # noqa: E722
385
- pass
386
- return cast(Union[None, Priority], data)
188
+ assignee = _parse_assignee(d.pop("assignee", UNSET))
387
189
 
388
- priority = _parse_priority(d.pop("priority"))
190
+ tags = cast(list[str], d.pop("tags", UNSET))
389
191
 
390
- def _parse_size(data: object) -> Union[None, int]:
192
+ def _parse_priority(data: object) -> Union[None, Priority, Unset]:
391
193
  if data is None:
392
194
  return data
393
- return cast(Union[None, int], data)
394
-
395
- size = _parse_size(d.pop("size"))
396
-
397
- def _parse_start_at(data: object) -> Union[None, datetime.datetime]:
398
- if data is None:
195
+ if isinstance(data, Unset):
399
196
  return data
400
197
  try:
401
198
  if not isinstance(data, str):
402
199
  raise TypeError()
403
- start_at_type_0 = isoparse(data)
200
+ priority_type_0 = Priority(data)
404
201
 
405
- return start_at_type_0
202
+ return priority_type_0
406
203
  except: # noqa: E722
407
204
  pass
408
- return cast(Union[None, datetime.datetime], data)
205
+ return cast(Union[None, Priority, Unset], data)
409
206
 
410
- start_at = _parse_start_at(d.pop("startAt"))
207
+ priority = _parse_priority(d.pop("priority", UNSET))
411
208
 
412
- def _parse_due_at(data: object) -> Union[None, datetime.datetime]:
209
+ def _parse_start_at(data: object) -> Union[None, Unset, str]:
413
210
  if data is None:
414
211
  return data
415
- try:
416
- if not isinstance(data, str):
417
- raise TypeError()
418
- due_at_type_0 = isoparse(data)
419
-
420
- return due_at_type_0
421
- except: # noqa: E722
422
- pass
423
- return cast(Union[None, datetime.datetime], data)
424
-
425
- due_at = _parse_due_at(d.pop("dueAt"))
426
-
427
- time_tracking = d.pop("timeTracking")
428
-
429
- def _parse_remind_at(data: object) -> Union[None, datetime.datetime]:
430
- if data is None:
212
+ if isinstance(data, Unset):
431
213
  return data
432
- try:
433
- if not isinstance(data, str):
434
- raise TypeError()
435
- remind_at_type_0 = isoparse(data)
436
-
437
- return remind_at_type_0
438
- except: # noqa: E722
439
- pass
440
- return cast(Union[None, datetime.datetime], data)
214
+ return cast(Union[None, Unset, str], data)
441
215
 
442
- remind_at = _parse_remind_at(d.pop("remindAt"))
216
+ start_at = _parse_start_at(d.pop("startAt", UNSET))
443
217
 
444
- def _parse_recurrence(data: object) -> Union[Any, None]:
218
+ def _parse_due_at(data: object) -> Union[None, Unset, str]:
445
219
  if data is None:
446
220
  return data
447
- return cast(Union[Any, None], data)
448
-
449
- recurrence = _parse_recurrence(d.pop("recurrence"))
450
-
451
- def _parse_recurs_next_at(data: object) -> Union[None, datetime.datetime]:
452
- if data is None:
221
+ if isinstance(data, Unset):
453
222
  return data
454
- try:
455
- if not isinstance(data, str):
456
- raise TypeError()
457
- recurs_next_at_type_0 = isoparse(data)
458
-
459
- return recurs_next_at_type_0
460
- except: # noqa: E722
461
- pass
462
- return cast(Union[None, datetime.datetime], data)
463
-
464
- recurs_next_at = _parse_recurs_next_at(d.pop("recursNextAt"))
223
+ return cast(Union[None, Unset, str], data)
465
224
 
466
- properties = TaskProperties.from_dict(d.pop("properties"))
225
+ due_at = _parse_due_at(d.pop("dueAt", UNSET))
467
226
 
468
- def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
227
+ def _parse_size(data: object) -> Union[None, Unset, int]:
469
228
  if data is None:
470
229
  return data
471
230
  if isinstance(data, Unset):
472
231
  return data
473
- return cast(Union[None, Unset, str], data)
232
+ return cast(Union[None, Unset, int], data)
474
233
 
475
- updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
234
+ size = _parse_size(d.pop("size", UNSET))
235
+
236
+ time_tracking = d.pop("timeTracking", UNSET)
476
237
 
477
238
  task = cls(
478
- duid=duid,
479
- source_type=source_type,
480
- created_at=created_at,
481
- created_by_duid=created_by_duid,
482
- updated_at=updated_at,
483
- updated_by_duid=updated_by_duid,
484
- drafter_duid=drafter_duid,
485
- in_trash=in_trash,
486
- dartboard_duid=dartboard_duid,
487
- order=order,
488
- expanded=expanded,
489
- kind_duid=kind_duid,
239
+ id=id,
240
+ html_url=html_url,
490
241
  title=title,
242
+ parent_id=parent_id,
243
+ dartboard=dartboard,
244
+ type_=type_,
245
+ status=status,
491
246
  description=description,
492
- notion_document=notion_document,
493
- status_duid=status_duid,
494
- assigned_to_ai=assigned_to_ai,
495
- recommendation_duid=recommendation_duid,
496
- assignee_duids=assignee_duids,
497
- subscriber_duids=subscriber_duids,
498
- tag_duids=tag_duids,
499
- links=links,
500
- attachment_duids=attachment_duids,
501
- relationships=relationships,
247
+ assignees=assignees,
248
+ assignee=assignee,
249
+ tags=tags,
502
250
  priority=priority,
503
- size=size,
504
251
  start_at=start_at,
505
252
  due_at=due_at,
253
+ size=size,
506
254
  time_tracking=time_tracking,
507
- remind_at=remind_at,
508
- recurrence=recurrence,
509
- recurs_next_at=recurs_next_at,
510
- properties=properties,
511
- updated_by_client_duid=updated_by_client_duid,
512
255
  )
513
256
 
514
257
  task.additional_properties = d
515
258
  return task
516
259
 
517
260
  @property
518
- def additional_keys(self) -> List[str]:
261
+ def additional_keys(self) -> list[str]:
519
262
  return list(self.additional_properties.keys())
520
263
 
521
264
  def __getitem__(self, key: str) -> Any: