dart-tools 0.6.6__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 (256) hide show
  1. dart/__init__.py +18 -0
  2. dart/dart.py +1134 -0
  3. dart/exception.py +6 -0
  4. dart/generated/__init__.py +8 -0
  5. dart/generated/api/__init__.py +1 -0
  6. dart/generated/api/attachments/__init__.py +0 -0
  7. dart/generated/api/attachments/attachments_list.py +169 -0
  8. dart/generated/api/comments/__init__.py +0 -0
  9. dart/generated/api/comments/comments_list.py +278 -0
  10. dart/generated/api/dartboards/__init__.py +0 -0
  11. dart/generated/api/dartboards/dartboards_list.py +271 -0
  12. dart/generated/api/dashboards/__init__.py +0 -0
  13. dart/generated/api/dashboards/dashboards_list.py +184 -0
  14. dart/generated/api/docs/__init__.py +0 -0
  15. dart/generated/api/docs/docs_list.py +334 -0
  16. dart/generated/api/folders/__init__.py +0 -0
  17. dart/generated/api/folders/folders_list.py +234 -0
  18. dart/generated/api/form_fields/__init__.py +0 -0
  19. dart/generated/api/form_fields/form_fields_list.py +169 -0
  20. dart/generated/api/forms/__init__.py +0 -0
  21. dart/generated/api/forms/forms_list.py +169 -0
  22. dart/generated/api/layouts/__init__.py +0 -0
  23. dart/generated/api/layouts/layouts_list.py +169 -0
  24. dart/generated/api/links/__init__.py +0 -0
  25. dart/generated/api/links/links_list.py +169 -0
  26. dart/generated/api/options/__init__.py +0 -0
  27. dart/generated/api/options/options_list.py +229 -0
  28. dart/generated/api/properties/__init__.py +0 -0
  29. dart/generated/api/properties/properties_list.py +204 -0
  30. dart/generated/api/reactions/__init__.py +0 -0
  31. dart/generated/api/reactions/reactions_list.py +169 -0
  32. dart/generated/api/relationship_kinds/__init__.py +0 -0
  33. dart/generated/api/relationship_kinds/relationship_kinds_list.py +169 -0
  34. dart/generated/api/relationships/__init__.py +0 -0
  35. dart/generated/api/relationships/relationships_list.py +169 -0
  36. dart/generated/api/spaces/__init__.py +0 -0
  37. dart/generated/api/spaces/spaces_list.py +214 -0
  38. dart/generated/api/statuses/__init__.py +0 -0
  39. dart/generated/api/statuses/statuses_list.py +249 -0
  40. dart/generated/api/task_doc_relationships/__init__.py +0 -0
  41. dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +169 -0
  42. dart/generated/api/task_kinds/__init__.py +0 -0
  43. dart/generated/api/task_kinds/task_kinds_list.py +204 -0
  44. dart/generated/api/tasks/__init__.py +0 -0
  45. dart/generated/api/tasks/tasks_list.py +446 -0
  46. dart/generated/api/tenants/__init__.py +0 -0
  47. dart/generated/api/tenants/tenants_list.py +169 -0
  48. dart/generated/api/transactions/__init__.py +0 -0
  49. dart/generated/api/transactions/transactions_create.py +176 -0
  50. dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
  51. dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +169 -0
  52. dart/generated/api/user_data/__init__.py +0 -0
  53. dart/generated/api/user_data/user_data_entity_retrieve.py +580 -0
  54. dart/generated/api/users/__init__.py +0 -0
  55. dart/generated/api/users/users_list.py +214 -0
  56. dart/generated/api/views/__init__.py +0 -0
  57. dart/generated/api/views/views_list.py +184 -0
  58. dart/generated/api/webhooks/__init__.py +0 -0
  59. dart/generated/api/webhooks/webhooks_list.py +169 -0
  60. dart/generated/client.py +268 -0
  61. dart/generated/errors.py +16 -0
  62. dart/generated/models/__init__.py +371 -0
  63. dart/generated/models/attachment.py +112 -0
  64. dart/generated/models/attachment_create.py +121 -0
  65. dart/generated/models/attachment_update.py +125 -0
  66. dart/generated/models/bar_chart_adtl.py +72 -0
  67. dart/generated/models/brainstorm.py +149 -0
  68. dart/generated/models/brainstorm_create.py +134 -0
  69. dart/generated/models/brainstorm_state.py +10 -0
  70. dart/generated/models/brainstorm_update.py +153 -0
  71. dart/generated/models/burn_up_chart_adtl.py +103 -0
  72. dart/generated/models/chart.py +207 -0
  73. dart/generated/models/chart_type.py +13 -0
  74. dart/generated/models/comment.py +207 -0
  75. dart/generated/models/comment_create.py +146 -0
  76. dart/generated/models/comment_reaction.py +84 -0
  77. dart/generated/models/comment_reaction_create.py +82 -0
  78. dart/generated/models/comment_reaction_update.py +87 -0
  79. dart/generated/models/comment_update.py +148 -0
  80. dart/generated/models/dartboard.py +264 -0
  81. dart/generated/models/dartboard_create.py +267 -0
  82. dart/generated/models/dartboard_kind.py +12 -0
  83. dart/generated/models/dartboard_update.py +269 -0
  84. dart/generated/models/dartboards_list_kind.py +12 -0
  85. dart/generated/models/dashboard.py +185 -0
  86. dart/generated/models/dashboard_create.py +171 -0
  87. dart/generated/models/dashboard_update.py +173 -0
  88. dart/generated/models/discord_integration.py +72 -0
  89. dart/generated/models/doc.py +243 -0
  90. dart/generated/models/doc_create.py +295 -0
  91. dart/generated/models/doc_source_type.py +13 -0
  92. dart/generated/models/doc_update.py +295 -0
  93. dart/generated/models/entity_name.py +22 -0
  94. dart/generated/models/event.py +420 -0
  95. dart/generated/models/event_actor.py +18 -0
  96. dart/generated/models/event_create.py +158 -0
  97. dart/generated/models/event_kind.py +88 -0
  98. dart/generated/models/event_subscription.py +74 -0
  99. dart/generated/models/event_subscription_update.py +173 -0
  100. dart/generated/models/filter_applicability.py +22 -0
  101. dart/generated/models/filter_assignee.py +116 -0
  102. dart/generated/models/filter_connector.py +9 -0
  103. dart/generated/models/filter_group.py +112 -0
  104. dart/generated/models/filter_search.py +82 -0
  105. dart/generated/models/filter_set.py +116 -0
  106. dart/generated/models/folder.py +150 -0
  107. dart/generated/models/folder_create.py +150 -0
  108. dart/generated/models/folder_kind.py +10 -0
  109. dart/generated/models/folder_update.py +152 -0
  110. dart/generated/models/folders_list_kind.py +10 -0
  111. dart/generated/models/form.py +147 -0
  112. dart/generated/models/form_create.py +141 -0
  113. dart/generated/models/form_field.py +144 -0
  114. dart/generated/models/form_field_create.py +129 -0
  115. dart/generated/models/form_field_update.py +132 -0
  116. dart/generated/models/form_update.py +142 -0
  117. dart/generated/models/github_integration.py +163 -0
  118. dart/generated/models/github_integration_tenant_extension_status.py +11 -0
  119. dart/generated/models/google_data.py +94 -0
  120. dart/generated/models/icon_kind.py +10 -0
  121. dart/generated/models/layout.py +167 -0
  122. dart/generated/models/layout_config.py +70 -0
  123. dart/generated/models/layout_create.py +130 -0
  124. dart/generated/models/layout_kind.py +11 -0
  125. dart/generated/models/layout_kind_config_map.py +56 -0
  126. dart/generated/models/layout_update.py +130 -0
  127. dart/generated/models/line_chart_adtl.py +72 -0
  128. dart/generated/models/models_response.py +671 -0
  129. dart/generated/models/notification.py +120 -0
  130. dart/generated/models/notification_update.py +100 -0
  131. dart/generated/models/notion_integration.py +90 -0
  132. dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
  133. dart/generated/models/number_chart_adtl.py +85 -0
  134. dart/generated/models/number_chart_aggregation.py +10 -0
  135. dart/generated/models/operation.py +874 -0
  136. dart/generated/models/operation_kind.py +12 -0
  137. dart/generated/models/operation_model_kind.py +36 -0
  138. dart/generated/models/option.py +118 -0
  139. dart/generated/models/option_create.py +105 -0
  140. dart/generated/models/option_update.py +107 -0
  141. dart/generated/models/paginated_attachment_list.py +122 -0
  142. dart/generated/models/paginated_comment_list.py +122 -0
  143. dart/generated/models/paginated_comment_reaction_list.py +122 -0
  144. dart/generated/models/paginated_dartboard_list.py +122 -0
  145. dart/generated/models/paginated_dashboard_list.py +122 -0
  146. dart/generated/models/paginated_doc_list.py +122 -0
  147. dart/generated/models/paginated_folder_list.py +122 -0
  148. dart/generated/models/paginated_form_field_list.py +122 -0
  149. dart/generated/models/paginated_form_list.py +122 -0
  150. dart/generated/models/paginated_layout_list.py +122 -0
  151. dart/generated/models/paginated_option_list.py +122 -0
  152. dart/generated/models/paginated_property_list.py +122 -0
  153. dart/generated/models/paginated_relationship_kind_list.py +122 -0
  154. dart/generated/models/paginated_relationship_list.py +122 -0
  155. dart/generated/models/paginated_space_list.py +122 -0
  156. dart/generated/models/paginated_status_list.py +122 -0
  157. dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
  158. dart/generated/models/paginated_task_kind_list.py +122 -0
  159. dart/generated/models/paginated_task_link_list.py +122 -0
  160. dart/generated/models/paginated_task_list.py +122 -0
  161. dart/generated/models/paginated_tenant_list.py +122 -0
  162. dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
  163. dart/generated/models/paginated_user_list.py +122 -0
  164. dart/generated/models/paginated_view_list.py +122 -0
  165. dart/generated/models/paginated_webhook_list.py +122 -0
  166. dart/generated/models/pie_chart_adtl.py +69 -0
  167. dart/generated/models/pie_chart_display_metric.py +9 -0
  168. dart/generated/models/priority.py +11 -0
  169. dart/generated/models/properties_list_kind.py +32 -0
  170. dart/generated/models/property_.py +153 -0
  171. dart/generated/models/property_create.py +137 -0
  172. dart/generated/models/property_kind.py +32 -0
  173. dart/generated/models/property_update.py +146 -0
  174. dart/generated/models/relationship.py +74 -0
  175. dart/generated/models/relationship_create.py +93 -0
  176. dart/generated/models/relationship_kind.py +123 -0
  177. dart/generated/models/relationship_kind_create.py +117 -0
  178. dart/generated/models/relationship_kind_kind.py +12 -0
  179. dart/generated/models/relationship_kind_update.py +119 -0
  180. dart/generated/models/report_kind.py +9 -0
  181. dart/generated/models/request_body.py +80 -0
  182. dart/generated/models/response_body.py +72 -0
  183. dart/generated/models/saml_config.py +77 -0
  184. dart/generated/models/saml_config_tenant_extension_status.py +9 -0
  185. dart/generated/models/slack_integration.py +90 -0
  186. dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
  187. dart/generated/models/sort.py +66 -0
  188. dart/generated/models/space.py +286 -0
  189. dart/generated/models/space_create.py +310 -0
  190. dart/generated/models/space_kind.py +10 -0
  191. dart/generated/models/space_update.py +311 -0
  192. dart/generated/models/sprint_mode.py +9 -0
  193. dart/generated/models/status.py +141 -0
  194. dart/generated/models/status_create.py +125 -0
  195. dart/generated/models/status_kind.py +12 -0
  196. dart/generated/models/status_update.py +135 -0
  197. dart/generated/models/statuses_list_kind.py +12 -0
  198. dart/generated/models/subscription.py +9 -0
  199. dart/generated/models/subtask_display_mode.py +10 -0
  200. dart/generated/models/summary_statistic_kind.py +14 -0
  201. dart/generated/models/table_chart_adtl.py +72 -0
  202. dart/generated/models/task.py +531 -0
  203. dart/generated/models/task_create.py +585 -0
  204. dart/generated/models/task_detail_mode.py +10 -0
  205. dart/generated/models/task_doc_relationship.py +96 -0
  206. dart/generated/models/task_doc_relationship_create.py +74 -0
  207. dart/generated/models/task_kind.py +149 -0
  208. dart/generated/models/task_kind_create.py +144 -0
  209. dart/generated/models/task_kind_kind.py +9 -0
  210. dart/generated/models/task_kind_update.py +153 -0
  211. dart/generated/models/task_kinds_list_kind.py +9 -0
  212. dart/generated/models/task_link.py +131 -0
  213. dart/generated/models/task_link_create.py +152 -0
  214. dart/generated/models/task_link_kind.py +19 -0
  215. dart/generated/models/task_link_update.py +155 -0
  216. dart/generated/models/task_notion_document.py +196 -0
  217. dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
  218. dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
  219. dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
  220. dart/generated/models/task_properties.py +43 -0
  221. dart/generated/models/task_source_type.py +31 -0
  222. dart/generated/models/task_update.py +585 -0
  223. dart/generated/models/tenant.py +378 -0
  224. dart/generated/models/tenant_update.py +157 -0
  225. dart/generated/models/theme.py +10 -0
  226. dart/generated/models/transaction.py +155 -0
  227. dart/generated/models/transaction_kind.py +73 -0
  228. dart/generated/models/transaction_response.py +96 -0
  229. dart/generated/models/user.py +245 -0
  230. dart/generated/models/user_dartboard_layout.py +66 -0
  231. dart/generated/models/user_dartboard_layout_create.py +74 -0
  232. dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
  233. dart/generated/models/user_role.py +12 -0
  234. dart/generated/models/user_status.py +12 -0
  235. dart/generated/models/user_update.py +190 -0
  236. dart/generated/models/validation_error_response.py +64 -0
  237. dart/generated/models/validation_error_response_items.py +43 -0
  238. dart/generated/models/view.py +207 -0
  239. dart/generated/models/view_create.py +204 -0
  240. dart/generated/models/view_kind.py +11 -0
  241. dart/generated/models/view_update.py +206 -0
  242. dart/generated/models/webhook.py +96 -0
  243. dart/generated/models/webhook_create.py +77 -0
  244. dart/generated/models/webhook_update.py +78 -0
  245. dart/generated/models/zapier_integration.py +66 -0
  246. dart/generated/py.typed +1 -0
  247. dart/generated/types.py +45 -0
  248. dart/order_manager.py +59 -0
  249. dart/webhook.py +21 -0
  250. dart_tools-0.6.6.dist-info/LICENSE +21 -0
  251. dart_tools-0.6.6.dist-info/METADATA +183 -0
  252. dart_tools-0.6.6.dist-info/RECORD +256 -0
  253. dart_tools-0.6.6.dist-info/WHEEL +5 -0
  254. dart_tools-0.6.6.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  255. dart_tools-0.6.6.dist-info/entry_points.txt +2 -0
  256. dart_tools-0.6.6.dist-info/top_level.txt +1 -0
@@ -0,0 +1,31 @@
1
+ from enum import Enum
2
+
3
+
4
+ class TaskSourceType(str, Enum):
5
+ API = "API"
6
+ APPBOARD = "AppBoard"
7
+ APPENTER = "AppEnter"
8
+ APPINTERNALFORM = "AppInternalForm"
9
+ APPLICATION = "Application"
10
+ APPPASTE = "AppPaste"
11
+ APPQUICKADD = "AppQuickAdd"
12
+ APPRELATIONSHIP = "AppRelationship"
13
+ APPREPLICATE = "AppReplicate"
14
+ APPROADMAPLIST = "AppRoadmapList"
15
+ APPROADMAPTIMELINE = "AppRoadmapTimeline"
16
+ APPSUBTASK = "AppSubtask"
17
+ APPTCM = "AppTcm"
18
+ CHATGPT = "ChatGPT"
19
+ CLI = "CLI"
20
+ EMAIL = "Email"
21
+ EXTERNALFORM = "ExternalForm"
22
+ IMPORT = "Import"
23
+ ONBOARDING = "Onboarding"
24
+ RECOMMENDATION = "Recommendation"
25
+ RECURRENCE = "Recurrence"
26
+ SLACK = "Slack"
27
+ TEMPLATE = "Template"
28
+ UNKNOWN = "Unknown"
29
+
30
+ def __str__(self) -> str:
31
+ return str(self.value)
@@ -0,0 +1,585 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..models.priority import Priority
9
+ from ..models.task_source_type import TaskSourceType
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="TaskUpdate")
13
+
14
+
15
+ @_attrs_define
16
+ class TaskUpdate:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ source_type (Union[Unset, TaskSourceType]): * `Unknown` - UNKNOWN
21
+ * `Import` - IMPORT
22
+ * `Onboarding` - ONBOARDING
23
+ * `Recommendation` - RECOMMENDATION
24
+ * `Recurrence` - RECURRENCE
25
+ * `Template` - TEMPLATE
26
+ * `ChatGPT` - CHAT_GPT
27
+ * `Email` - EMAIL
28
+ * `Slack` - SLACK
29
+ * `API` - API
30
+ * `CLI` - CLI
31
+ * `Application` - APPLICATION
32
+ * `AppTcm` - APP_TCM
33
+ * `AppInternalForm` - APP_INTERNAL_FORM
34
+ * `AppQuickAdd` - APP_QUICK_ADD
35
+ * `AppBoard` - APP_BOARD
36
+ * `AppSubtask` - APP_SUBTASK
37
+ * `AppRelationship` - APP_RELATIONSHIP
38
+ * `AppEnter` - APP_ENTER
39
+ * `AppReplicate` - APP_REPLICATE
40
+ * `AppPaste` - APP_PASTE
41
+ * `AppRoadmapList` - APP_ROADMAP_LIST
42
+ * `AppRoadmapTimeline` - APP_ROADMAP_TIMELINE
43
+ * `ExternalForm` - EXTERNAL_FORM Default: TaskSourceType.UNKNOWN.
44
+ source_template_view_duid (Union[None, Unset, str]):
45
+ source_template_task_duid (Union[None, Unset, str]):
46
+ source_form_duid (Union[None, Unset, str]):
47
+ created_by_duid (Union[None, Unset, str]):
48
+ updated_by_duid (Union[None, Unset, str]):
49
+ drafter_duid (Union[None, Unset, str]):
50
+ in_trash (Union[Unset, bool]):
51
+ dartboard_duid (Union[Unset, str]):
52
+ order (Union[Unset, str]):
53
+ expanded (Union[Unset, bool]):
54
+ kind_duid (Union[Unset, str]):
55
+ title (Union[Unset, str]):
56
+ description (Union[Unset, Any]):
57
+ description_markdown (Union[Unset, str]):
58
+ status_duid (Union[Unset, str]):
59
+ assigned_to_ai (Union[Unset, bool]):
60
+ recommendation_duid (Union[None, Unset, str]):
61
+ assignee_duids (Union[Unset, List[str]]):
62
+ subscriber_duids (Union[Unset, List[str]]):
63
+ tag_duids (Union[Unset, List[str]]):
64
+ attachment_duids (Union[Unset, List[str]]):
65
+ priority (Union[None, Priority, Unset]):
66
+ size (Union[None, Unset, int]):
67
+ start_at (Union[None, Unset, datetime.datetime]):
68
+ due_at (Union[None, Unset, datetime.datetime]):
69
+ time_tracking (Union[Unset, Any]):
70
+ remind_at (Union[None, Unset, datetime.datetime]):
71
+ recurrence (Union[Any, None, Unset]):
72
+ recurs_next_at (Union[None, Unset, datetime.datetime]):
73
+ properties (Union[Unset, Any]):
74
+ """
75
+
76
+ duid: str
77
+ source_type: Union[Unset, TaskSourceType] = TaskSourceType.UNKNOWN
78
+ source_template_view_duid: Union[None, Unset, str] = UNSET
79
+ source_template_task_duid: Union[None, Unset, str] = UNSET
80
+ source_form_duid: Union[None, Unset, str] = UNSET
81
+ created_by_duid: Union[None, Unset, str] = UNSET
82
+ updated_by_duid: Union[None, Unset, str] = UNSET
83
+ drafter_duid: Union[None, Unset, str] = UNSET
84
+ in_trash: Union[Unset, bool] = UNSET
85
+ dartboard_duid: Union[Unset, str] = UNSET
86
+ order: Union[Unset, str] = UNSET
87
+ expanded: Union[Unset, bool] = UNSET
88
+ kind_duid: Union[Unset, str] = UNSET
89
+ title: Union[Unset, str] = UNSET
90
+ description: Union[Unset, Any] = UNSET
91
+ description_markdown: Union[Unset, str] = UNSET
92
+ status_duid: Union[Unset, str] = UNSET
93
+ assigned_to_ai: Union[Unset, bool] = UNSET
94
+ recommendation_duid: Union[None, Unset, str] = UNSET
95
+ assignee_duids: Union[Unset, List[str]] = UNSET
96
+ subscriber_duids: Union[Unset, List[str]] = UNSET
97
+ tag_duids: Union[Unset, List[str]] = UNSET
98
+ attachment_duids: Union[Unset, List[str]] = UNSET
99
+ priority: Union[None, Priority, Unset] = UNSET
100
+ size: Union[None, Unset, int] = UNSET
101
+ start_at: Union[None, Unset, datetime.datetime] = UNSET
102
+ due_at: Union[None, Unset, datetime.datetime] = UNSET
103
+ time_tracking: Union[Unset, Any] = UNSET
104
+ remind_at: Union[None, Unset, datetime.datetime] = UNSET
105
+ recurrence: Union[Any, None, Unset] = UNSET
106
+ recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
107
+ properties: Union[Unset, Any] = UNSET
108
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
109
+
110
+ def to_dict(self) -> Dict[str, Any]:
111
+ duid = self.duid
112
+
113
+ source_type: Union[Unset, str] = UNSET
114
+ if not isinstance(self.source_type, Unset):
115
+ source_type = self.source_type.value
116
+
117
+ source_template_view_duid: Union[None, Unset, str]
118
+ if isinstance(self.source_template_view_duid, Unset):
119
+ source_template_view_duid = UNSET
120
+ else:
121
+ source_template_view_duid = self.source_template_view_duid
122
+
123
+ source_template_task_duid: Union[None, Unset, str]
124
+ if isinstance(self.source_template_task_duid, Unset):
125
+ source_template_task_duid = UNSET
126
+ else:
127
+ source_template_task_duid = self.source_template_task_duid
128
+
129
+ source_form_duid: Union[None, Unset, str]
130
+ if isinstance(self.source_form_duid, Unset):
131
+ source_form_duid = UNSET
132
+ else:
133
+ source_form_duid = self.source_form_duid
134
+
135
+ created_by_duid: Union[None, Unset, str]
136
+ if isinstance(self.created_by_duid, Unset):
137
+ created_by_duid = UNSET
138
+ else:
139
+ created_by_duid = self.created_by_duid
140
+
141
+ updated_by_duid: Union[None, Unset, str]
142
+ if isinstance(self.updated_by_duid, Unset):
143
+ updated_by_duid = UNSET
144
+ else:
145
+ updated_by_duid = self.updated_by_duid
146
+
147
+ drafter_duid: Union[None, Unset, str]
148
+ if isinstance(self.drafter_duid, Unset):
149
+ drafter_duid = UNSET
150
+ else:
151
+ drafter_duid = self.drafter_duid
152
+
153
+ in_trash = self.in_trash
154
+
155
+ dartboard_duid = self.dartboard_duid
156
+
157
+ order = self.order
158
+
159
+ expanded = self.expanded
160
+
161
+ kind_duid = self.kind_duid
162
+
163
+ title = self.title
164
+
165
+ description = self.description
166
+
167
+ description_markdown = self.description_markdown
168
+
169
+ status_duid = self.status_duid
170
+
171
+ assigned_to_ai = self.assigned_to_ai
172
+
173
+ recommendation_duid: Union[None, Unset, str]
174
+ if isinstance(self.recommendation_duid, Unset):
175
+ recommendation_duid = UNSET
176
+ else:
177
+ recommendation_duid = self.recommendation_duid
178
+
179
+ assignee_duids: Union[Unset, List[str]] = UNSET
180
+ if not isinstance(self.assignee_duids, Unset):
181
+ assignee_duids = self.assignee_duids
182
+
183
+ subscriber_duids: Union[Unset, List[str]] = UNSET
184
+ if not isinstance(self.subscriber_duids, Unset):
185
+ subscriber_duids = self.subscriber_duids
186
+
187
+ tag_duids: Union[Unset, List[str]] = UNSET
188
+ if not isinstance(self.tag_duids, Unset):
189
+ tag_duids = self.tag_duids
190
+
191
+ attachment_duids: Union[Unset, List[str]] = UNSET
192
+ if not isinstance(self.attachment_duids, Unset):
193
+ attachment_duids = self.attachment_duids
194
+
195
+ priority: Union[None, Unset, str]
196
+ if isinstance(self.priority, Unset):
197
+ priority = UNSET
198
+ elif isinstance(self.priority, Priority):
199
+ priority = self.priority.value
200
+ else:
201
+ priority = self.priority
202
+
203
+ size: Union[None, Unset, int]
204
+ if isinstance(self.size, Unset):
205
+ size = UNSET
206
+ else:
207
+ size = self.size
208
+
209
+ start_at: Union[None, Unset, str]
210
+ if isinstance(self.start_at, Unset):
211
+ start_at = UNSET
212
+ elif isinstance(self.start_at, datetime.datetime):
213
+ start_at = self.start_at.isoformat()
214
+ else:
215
+ start_at = self.start_at
216
+
217
+ due_at: Union[None, Unset, str]
218
+ if isinstance(self.due_at, Unset):
219
+ due_at = UNSET
220
+ elif isinstance(self.due_at, datetime.datetime):
221
+ due_at = self.due_at.isoformat()
222
+ else:
223
+ due_at = self.due_at
224
+
225
+ time_tracking = self.time_tracking
226
+
227
+ remind_at: Union[None, Unset, str]
228
+ if isinstance(self.remind_at, Unset):
229
+ remind_at = UNSET
230
+ elif isinstance(self.remind_at, datetime.datetime):
231
+ remind_at = self.remind_at.isoformat()
232
+ else:
233
+ remind_at = self.remind_at
234
+
235
+ recurrence: Union[Any, None, Unset]
236
+ if isinstance(self.recurrence, Unset):
237
+ recurrence = UNSET
238
+ else:
239
+ recurrence = self.recurrence
240
+
241
+ recurs_next_at: Union[None, Unset, str]
242
+ if isinstance(self.recurs_next_at, Unset):
243
+ recurs_next_at = UNSET
244
+ elif isinstance(self.recurs_next_at, datetime.datetime):
245
+ recurs_next_at = self.recurs_next_at.isoformat()
246
+ else:
247
+ recurs_next_at = self.recurs_next_at
248
+
249
+ properties = self.properties
250
+
251
+ field_dict: Dict[str, Any] = {}
252
+ field_dict.update(self.additional_properties)
253
+ field_dict.update(
254
+ {
255
+ "duid": duid,
256
+ }
257
+ )
258
+ if source_type is not UNSET:
259
+ field_dict["sourceType"] = source_type
260
+ if source_template_view_duid is not UNSET:
261
+ field_dict["sourceTemplateViewDuid"] = source_template_view_duid
262
+ if source_template_task_duid is not UNSET:
263
+ field_dict["sourceTemplateTaskDuid"] = source_template_task_duid
264
+ if source_form_duid is not UNSET:
265
+ field_dict["sourceFormDuid"] = source_form_duid
266
+ if created_by_duid is not UNSET:
267
+ field_dict["createdByDuid"] = created_by_duid
268
+ if updated_by_duid is not UNSET:
269
+ field_dict["updatedByDuid"] = updated_by_duid
270
+ if drafter_duid is not UNSET:
271
+ field_dict["drafterDuid"] = drafter_duid
272
+ if in_trash is not UNSET:
273
+ field_dict["inTrash"] = in_trash
274
+ if dartboard_duid is not UNSET:
275
+ field_dict["dartboardDuid"] = dartboard_duid
276
+ if order is not UNSET:
277
+ field_dict["order"] = order
278
+ if expanded is not UNSET:
279
+ field_dict["expanded"] = expanded
280
+ if kind_duid is not UNSET:
281
+ field_dict["kindDuid"] = kind_duid
282
+ if title is not UNSET:
283
+ field_dict["title"] = title
284
+ if description is not UNSET:
285
+ field_dict["description"] = description
286
+ if description_markdown is not UNSET:
287
+ field_dict["descriptionMarkdown"] = description_markdown
288
+ if status_duid is not UNSET:
289
+ field_dict["statusDuid"] = status_duid
290
+ if assigned_to_ai is not UNSET:
291
+ field_dict["assignedToAi"] = assigned_to_ai
292
+ if recommendation_duid is not UNSET:
293
+ field_dict["recommendationDuid"] = recommendation_duid
294
+ if assignee_duids is not UNSET:
295
+ field_dict["assigneeDuids"] = assignee_duids
296
+ if subscriber_duids is not UNSET:
297
+ field_dict["subscriberDuids"] = subscriber_duids
298
+ if tag_duids is not UNSET:
299
+ field_dict["tagDuids"] = tag_duids
300
+ if attachment_duids is not UNSET:
301
+ field_dict["attachmentDuids"] = attachment_duids
302
+ if priority is not UNSET:
303
+ field_dict["priority"] = priority
304
+ if size is not UNSET:
305
+ field_dict["size"] = size
306
+ if start_at is not UNSET:
307
+ field_dict["startAt"] = start_at
308
+ if due_at is not UNSET:
309
+ field_dict["dueAt"] = due_at
310
+ if time_tracking is not UNSET:
311
+ field_dict["timeTracking"] = time_tracking
312
+ if remind_at is not UNSET:
313
+ field_dict["remindAt"] = remind_at
314
+ if recurrence is not UNSET:
315
+ field_dict["recurrence"] = recurrence
316
+ if recurs_next_at is not UNSET:
317
+ field_dict["recursNextAt"] = recurs_next_at
318
+ if properties is not UNSET:
319
+ field_dict["properties"] = properties
320
+
321
+ return field_dict
322
+
323
+ @classmethod
324
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
325
+ d = src_dict.copy()
326
+ duid = d.pop("duid")
327
+
328
+ _source_type = d.pop("sourceType", UNSET)
329
+ source_type: Union[Unset, TaskSourceType]
330
+ if isinstance(_source_type, Unset):
331
+ source_type = UNSET
332
+ else:
333
+ source_type = TaskSourceType(_source_type)
334
+
335
+ def _parse_source_template_view_duid(data: object) -> Union[None, Unset, str]:
336
+ if data is None:
337
+ return data
338
+ if isinstance(data, Unset):
339
+ return data
340
+ return cast(Union[None, Unset, str], data)
341
+
342
+ source_template_view_duid = _parse_source_template_view_duid(d.pop("sourceTemplateViewDuid", UNSET))
343
+
344
+ def _parse_source_template_task_duid(data: object) -> Union[None, Unset, str]:
345
+ if data is None:
346
+ return data
347
+ if isinstance(data, Unset):
348
+ return data
349
+ return cast(Union[None, Unset, str], data)
350
+
351
+ source_template_task_duid = _parse_source_template_task_duid(d.pop("sourceTemplateTaskDuid", UNSET))
352
+
353
+ def _parse_source_form_duid(data: object) -> Union[None, Unset, str]:
354
+ if data is None:
355
+ return data
356
+ if isinstance(data, Unset):
357
+ return data
358
+ return cast(Union[None, Unset, str], data)
359
+
360
+ source_form_duid = _parse_source_form_duid(d.pop("sourceFormDuid", UNSET))
361
+
362
+ def _parse_created_by_duid(data: object) -> Union[None, Unset, str]:
363
+ if data is None:
364
+ return data
365
+ if isinstance(data, Unset):
366
+ return data
367
+ return cast(Union[None, Unset, str], data)
368
+
369
+ created_by_duid = _parse_created_by_duid(d.pop("createdByDuid", UNSET))
370
+
371
+ def _parse_updated_by_duid(data: object) -> Union[None, Unset, str]:
372
+ if data is None:
373
+ return data
374
+ if isinstance(data, Unset):
375
+ return data
376
+ return cast(Union[None, Unset, str], data)
377
+
378
+ updated_by_duid = _parse_updated_by_duid(d.pop("updatedByDuid", UNSET))
379
+
380
+ def _parse_drafter_duid(data: object) -> Union[None, Unset, str]:
381
+ if data is None:
382
+ return data
383
+ if isinstance(data, Unset):
384
+ return data
385
+ return cast(Union[None, Unset, str], data)
386
+
387
+ drafter_duid = _parse_drafter_duid(d.pop("drafterDuid", UNSET))
388
+
389
+ in_trash = d.pop("inTrash", UNSET)
390
+
391
+ dartboard_duid = d.pop("dartboardDuid", UNSET)
392
+
393
+ order = d.pop("order", UNSET)
394
+
395
+ expanded = d.pop("expanded", UNSET)
396
+
397
+ kind_duid = d.pop("kindDuid", UNSET)
398
+
399
+ title = d.pop("title", UNSET)
400
+
401
+ description = d.pop("description", UNSET)
402
+
403
+ description_markdown = d.pop("descriptionMarkdown", UNSET)
404
+
405
+ status_duid = d.pop("statusDuid", UNSET)
406
+
407
+ assigned_to_ai = d.pop("assignedToAi", UNSET)
408
+
409
+ def _parse_recommendation_duid(data: object) -> Union[None, Unset, str]:
410
+ if data is None:
411
+ return data
412
+ if isinstance(data, Unset):
413
+ return data
414
+ return cast(Union[None, Unset, str], data)
415
+
416
+ recommendation_duid = _parse_recommendation_duid(d.pop("recommendationDuid", UNSET))
417
+
418
+ assignee_duids = cast(List[str], d.pop("assigneeDuids", UNSET))
419
+
420
+ subscriber_duids = cast(List[str], d.pop("subscriberDuids", UNSET))
421
+
422
+ tag_duids = cast(List[str], d.pop("tagDuids", UNSET))
423
+
424
+ attachment_duids = cast(List[str], d.pop("attachmentDuids", UNSET))
425
+
426
+ def _parse_priority(data: object) -> Union[None, Priority, Unset]:
427
+ if data is None:
428
+ return data
429
+ if isinstance(data, Unset):
430
+ return data
431
+ try:
432
+ if not isinstance(data, str):
433
+ raise TypeError()
434
+ priority_type_0 = Priority(data)
435
+
436
+ return priority_type_0
437
+ except: # noqa: E722
438
+ pass
439
+ return cast(Union[None, Priority, Unset], data)
440
+
441
+ priority = _parse_priority(d.pop("priority", UNSET))
442
+
443
+ def _parse_size(data: object) -> Union[None, Unset, int]:
444
+ if data is None:
445
+ return data
446
+ if isinstance(data, Unset):
447
+ return data
448
+ return cast(Union[None, Unset, int], data)
449
+
450
+ size = _parse_size(d.pop("size", UNSET))
451
+
452
+ def _parse_start_at(data: object) -> Union[None, Unset, datetime.datetime]:
453
+ if data is None:
454
+ return data
455
+ if isinstance(data, Unset):
456
+ return data
457
+ try:
458
+ if not isinstance(data, str):
459
+ raise TypeError()
460
+ start_at_type_0 = isoparse(data)
461
+
462
+ return start_at_type_0
463
+ except: # noqa: E722
464
+ pass
465
+ return cast(Union[None, Unset, datetime.datetime], data)
466
+
467
+ start_at = _parse_start_at(d.pop("startAt", UNSET))
468
+
469
+ def _parse_due_at(data: object) -> Union[None, Unset, datetime.datetime]:
470
+ if data is None:
471
+ return data
472
+ if isinstance(data, Unset):
473
+ return data
474
+ try:
475
+ if not isinstance(data, str):
476
+ raise TypeError()
477
+ due_at_type_0 = isoparse(data)
478
+
479
+ return due_at_type_0
480
+ except: # noqa: E722
481
+ pass
482
+ return cast(Union[None, Unset, datetime.datetime], data)
483
+
484
+ due_at = _parse_due_at(d.pop("dueAt", UNSET))
485
+
486
+ time_tracking = d.pop("timeTracking", UNSET)
487
+
488
+ def _parse_remind_at(data: object) -> Union[None, Unset, datetime.datetime]:
489
+ if data is None:
490
+ return data
491
+ if isinstance(data, Unset):
492
+ return data
493
+ try:
494
+ if not isinstance(data, str):
495
+ raise TypeError()
496
+ remind_at_type_0 = isoparse(data)
497
+
498
+ return remind_at_type_0
499
+ except: # noqa: E722
500
+ pass
501
+ return cast(Union[None, Unset, datetime.datetime], data)
502
+
503
+ remind_at = _parse_remind_at(d.pop("remindAt", UNSET))
504
+
505
+ def _parse_recurrence(data: object) -> Union[Any, None, Unset]:
506
+ if data is None:
507
+ return data
508
+ if isinstance(data, Unset):
509
+ return data
510
+ return cast(Union[Any, None, Unset], data)
511
+
512
+ recurrence = _parse_recurrence(d.pop("recurrence", UNSET))
513
+
514
+ def _parse_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
515
+ if data is None:
516
+ return data
517
+ if isinstance(data, Unset):
518
+ return data
519
+ try:
520
+ if not isinstance(data, str):
521
+ raise TypeError()
522
+ recurs_next_at_type_0 = isoparse(data)
523
+
524
+ return recurs_next_at_type_0
525
+ except: # noqa: E722
526
+ pass
527
+ return cast(Union[None, Unset, datetime.datetime], data)
528
+
529
+ recurs_next_at = _parse_recurs_next_at(d.pop("recursNextAt", UNSET))
530
+
531
+ properties = d.pop("properties", UNSET)
532
+
533
+ task_update = cls(
534
+ duid=duid,
535
+ source_type=source_type,
536
+ source_template_view_duid=source_template_view_duid,
537
+ source_template_task_duid=source_template_task_duid,
538
+ source_form_duid=source_form_duid,
539
+ created_by_duid=created_by_duid,
540
+ updated_by_duid=updated_by_duid,
541
+ drafter_duid=drafter_duid,
542
+ in_trash=in_trash,
543
+ dartboard_duid=dartboard_duid,
544
+ order=order,
545
+ expanded=expanded,
546
+ kind_duid=kind_duid,
547
+ title=title,
548
+ description=description,
549
+ description_markdown=description_markdown,
550
+ status_duid=status_duid,
551
+ assigned_to_ai=assigned_to_ai,
552
+ recommendation_duid=recommendation_duid,
553
+ assignee_duids=assignee_duids,
554
+ subscriber_duids=subscriber_duids,
555
+ tag_duids=tag_duids,
556
+ attachment_duids=attachment_duids,
557
+ priority=priority,
558
+ size=size,
559
+ start_at=start_at,
560
+ due_at=due_at,
561
+ time_tracking=time_tracking,
562
+ remind_at=remind_at,
563
+ recurrence=recurrence,
564
+ recurs_next_at=recurs_next_at,
565
+ properties=properties,
566
+ )
567
+
568
+ task_update.additional_properties = d
569
+ return task_update
570
+
571
+ @property
572
+ def additional_keys(self) -> List[str]:
573
+ return list(self.additional_properties.keys())
574
+
575
+ def __getitem__(self, key: str) -> Any:
576
+ return self.additional_properties[key]
577
+
578
+ def __setitem__(self, key: str, value: Any) -> None:
579
+ self.additional_properties[key] = value
580
+
581
+ def __delitem__(self, key: str) -> None:
582
+ del self.additional_properties[key]
583
+
584
+ def __contains__(self, key: str) -> bool:
585
+ return key in self.additional_properties