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,264 @@
1
+ import datetime
2
+ from typing import TYPE_CHECKING, 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.dartboard_kind import DartboardKind
9
+ from ..models.icon_kind import IconKind
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.user_dartboard_layout import UserDartboardLayout
14
+
15
+
16
+ T = TypeVar("T", bound="Dartboard")
17
+
18
+
19
+ @_attrs_define
20
+ class Dartboard:
21
+ """
22
+ Attributes:
23
+ duid (str):
24
+ space_duid (str):
25
+ kind (DartboardKind): * `Active` - ACTIVE
26
+ * `Next` - NEXT
27
+ * `Backlog` - BACKLOG
28
+ * `Finished` - FINISHED
29
+ * `Custom` - CUSTOM
30
+ order (str):
31
+ title (str):
32
+ description (str):
33
+ icon_kind (IconKind): * `None` - NONE
34
+ * `Icon` - ICON
35
+ * `Emoji` - EMOJI
36
+ icon_name_or_emoji (str):
37
+ color_hex (str):
38
+ user_duids_to_layout_duids (List['UserDartboardLayout']):
39
+ index (Union[None, int]):
40
+ started_at (Union[None, datetime.datetime]):
41
+ finished_at (Union[None, datetime.datetime]):
42
+ always_shown_property_duids (List[str]):
43
+ always_hidden_property_duids (List[str]):
44
+ property_order_duids (List[str]):
45
+ updated_by_client_duid (Union[None, Unset, str]):
46
+ """
47
+
48
+ duid: str
49
+ space_duid: str
50
+ kind: DartboardKind
51
+ order: str
52
+ title: str
53
+ description: str
54
+ icon_kind: IconKind
55
+ icon_name_or_emoji: str
56
+ color_hex: str
57
+ user_duids_to_layout_duids: List["UserDartboardLayout"]
58
+ index: Union[None, int]
59
+ started_at: Union[None, datetime.datetime]
60
+ finished_at: Union[None, datetime.datetime]
61
+ always_shown_property_duids: List[str]
62
+ always_hidden_property_duids: List[str]
63
+ property_order_duids: List[str]
64
+ updated_by_client_duid: Union[None, Unset, str] = UNSET
65
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ duid = self.duid
69
+
70
+ space_duid = self.space_duid
71
+
72
+ kind = self.kind.value
73
+
74
+ order = self.order
75
+
76
+ title = self.title
77
+
78
+ description = self.description
79
+
80
+ icon_kind = self.icon_kind.value
81
+
82
+ icon_name_or_emoji = self.icon_name_or_emoji
83
+
84
+ color_hex = self.color_hex
85
+
86
+ user_duids_to_layout_duids = []
87
+ for user_duids_to_layout_duids_item_data in self.user_duids_to_layout_duids:
88
+ user_duids_to_layout_duids_item = user_duids_to_layout_duids_item_data.to_dict()
89
+ user_duids_to_layout_duids.append(user_duids_to_layout_duids_item)
90
+
91
+ index: Union[None, int]
92
+ index = self.index
93
+
94
+ started_at: Union[None, str]
95
+ if isinstance(self.started_at, datetime.datetime):
96
+ started_at = self.started_at.isoformat()
97
+ else:
98
+ started_at = self.started_at
99
+
100
+ finished_at: Union[None, str]
101
+ if isinstance(self.finished_at, datetime.datetime):
102
+ finished_at = self.finished_at.isoformat()
103
+ else:
104
+ finished_at = self.finished_at
105
+
106
+ always_shown_property_duids = self.always_shown_property_duids
107
+
108
+ always_hidden_property_duids = self.always_hidden_property_duids
109
+
110
+ property_order_duids = self.property_order_duids
111
+
112
+ updated_by_client_duid: Union[None, Unset, str]
113
+ if isinstance(self.updated_by_client_duid, Unset):
114
+ updated_by_client_duid = UNSET
115
+ else:
116
+ updated_by_client_duid = self.updated_by_client_duid
117
+
118
+ field_dict: Dict[str, Any] = {}
119
+ field_dict.update(self.additional_properties)
120
+ field_dict.update(
121
+ {
122
+ "duid": duid,
123
+ "spaceDuid": space_duid,
124
+ "kind": kind,
125
+ "order": order,
126
+ "title": title,
127
+ "description": description,
128
+ "iconKind": icon_kind,
129
+ "iconNameOrEmoji": icon_name_or_emoji,
130
+ "colorHex": color_hex,
131
+ "userDuidsToLayoutDuids": user_duids_to_layout_duids,
132
+ "index": index,
133
+ "startedAt": started_at,
134
+ "finishedAt": finished_at,
135
+ "alwaysShownPropertyDuids": always_shown_property_duids,
136
+ "alwaysHiddenPropertyDuids": always_hidden_property_duids,
137
+ "propertyOrderDuids": property_order_duids,
138
+ }
139
+ )
140
+ if updated_by_client_duid is not UNSET:
141
+ field_dict["updatedByClientDuid"] = updated_by_client_duid
142
+
143
+ return field_dict
144
+
145
+ @classmethod
146
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
147
+ from ..models.user_dartboard_layout import UserDartboardLayout
148
+
149
+ d = src_dict.copy()
150
+ duid = d.pop("duid")
151
+
152
+ space_duid = d.pop("spaceDuid")
153
+
154
+ kind = DartboardKind(d.pop("kind"))
155
+
156
+ order = d.pop("order")
157
+
158
+ title = d.pop("title")
159
+
160
+ description = d.pop("description")
161
+
162
+ icon_kind = IconKind(d.pop("iconKind"))
163
+
164
+ icon_name_or_emoji = d.pop("iconNameOrEmoji")
165
+
166
+ color_hex = d.pop("colorHex")
167
+
168
+ user_duids_to_layout_duids = []
169
+ _user_duids_to_layout_duids = d.pop("userDuidsToLayoutDuids")
170
+ for user_duids_to_layout_duids_item_data in _user_duids_to_layout_duids:
171
+ user_duids_to_layout_duids_item = UserDartboardLayout.from_dict(user_duids_to_layout_duids_item_data)
172
+
173
+ user_duids_to_layout_duids.append(user_duids_to_layout_duids_item)
174
+
175
+ def _parse_index(data: object) -> Union[None, int]:
176
+ if data is None:
177
+ return data
178
+ return cast(Union[None, int], data)
179
+
180
+ index = _parse_index(d.pop("index"))
181
+
182
+ def _parse_started_at(data: object) -> Union[None, datetime.datetime]:
183
+ if data is None:
184
+ return data
185
+ try:
186
+ if not isinstance(data, str):
187
+ raise TypeError()
188
+ started_at_type_0 = isoparse(data)
189
+
190
+ return started_at_type_0
191
+ except: # noqa: E722
192
+ pass
193
+ return cast(Union[None, datetime.datetime], data)
194
+
195
+ started_at = _parse_started_at(d.pop("startedAt"))
196
+
197
+ def _parse_finished_at(data: object) -> Union[None, datetime.datetime]:
198
+ if data is None:
199
+ return data
200
+ try:
201
+ if not isinstance(data, str):
202
+ raise TypeError()
203
+ finished_at_type_0 = isoparse(data)
204
+
205
+ return finished_at_type_0
206
+ except: # noqa: E722
207
+ pass
208
+ return cast(Union[None, datetime.datetime], data)
209
+
210
+ finished_at = _parse_finished_at(d.pop("finishedAt"))
211
+
212
+ always_shown_property_duids = cast(List[str], d.pop("alwaysShownPropertyDuids"))
213
+
214
+ always_hidden_property_duids = cast(List[str], d.pop("alwaysHiddenPropertyDuids"))
215
+
216
+ property_order_duids = cast(List[str], d.pop("propertyOrderDuids"))
217
+
218
+ def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
219
+ if data is None:
220
+ return data
221
+ if isinstance(data, Unset):
222
+ return data
223
+ return cast(Union[None, Unset, str], data)
224
+
225
+ updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
226
+
227
+ dartboard = cls(
228
+ duid=duid,
229
+ space_duid=space_duid,
230
+ kind=kind,
231
+ order=order,
232
+ title=title,
233
+ description=description,
234
+ icon_kind=icon_kind,
235
+ icon_name_or_emoji=icon_name_or_emoji,
236
+ color_hex=color_hex,
237
+ user_duids_to_layout_duids=user_duids_to_layout_duids,
238
+ index=index,
239
+ started_at=started_at,
240
+ finished_at=finished_at,
241
+ always_shown_property_duids=always_shown_property_duids,
242
+ always_hidden_property_duids=always_hidden_property_duids,
243
+ property_order_duids=property_order_duids,
244
+ updated_by_client_duid=updated_by_client_duid,
245
+ )
246
+
247
+ dartboard.additional_properties = d
248
+ return dartboard
249
+
250
+ @property
251
+ def additional_keys(self) -> List[str]:
252
+ return list(self.additional_properties.keys())
253
+
254
+ def __getitem__(self, key: str) -> Any:
255
+ return self.additional_properties[key]
256
+
257
+ def __setitem__(self, key: str, value: Any) -> None:
258
+ self.additional_properties[key] = value
259
+
260
+ def __delitem__(self, key: str) -> None:
261
+ del self.additional_properties[key]
262
+
263
+ def __contains__(self, key: str) -> bool:
264
+ return key in self.additional_properties
@@ -0,0 +1,267 @@
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.dartboard_kind import DartboardKind
9
+ from ..models.icon_kind import IconKind
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="DartboardCreate")
13
+
14
+
15
+ @_attrs_define
16
+ class DartboardCreate:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ space_duid (str):
21
+ order (str):
22
+ kind (Union[Unset, DartboardKind]): * `Active` - ACTIVE
23
+ * `Next` - NEXT
24
+ * `Backlog` - BACKLOG
25
+ * `Finished` - FINISHED
26
+ * `Custom` - CUSTOM
27
+ title (Union[Unset, str]):
28
+ description (Union[Unset, str]):
29
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
30
+ * `Icon` - ICON
31
+ * `Emoji` - EMOJI
32
+ icon_name_or_emoji (Union[Unset, str]):
33
+ color_hex (Union[Unset, str]):
34
+ index (Union[None, Unset, int]):
35
+ started_at (Union[None, Unset, datetime.datetime]):
36
+ finished_at (Union[None, Unset, datetime.datetime]):
37
+ always_shown_property_duids (Union[Unset, List[str]]):
38
+ always_hidden_property_duids (Union[Unset, List[str]]):
39
+ property_order_duids (Union[Unset, List[str]]):
40
+ """
41
+
42
+ duid: str
43
+ space_duid: str
44
+ order: str
45
+ kind: Union[Unset, DartboardKind] = UNSET
46
+ title: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
48
+ icon_kind: Union[Unset, IconKind] = UNSET
49
+ icon_name_or_emoji: Union[Unset, str] = UNSET
50
+ color_hex: Union[Unset, str] = UNSET
51
+ index: Union[None, Unset, int] = UNSET
52
+ started_at: Union[None, Unset, datetime.datetime] = UNSET
53
+ finished_at: Union[None, Unset, datetime.datetime] = UNSET
54
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
55
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
56
+ property_order_duids: Union[Unset, List[str]] = UNSET
57
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ duid = self.duid
61
+
62
+ space_duid = self.space_duid
63
+
64
+ order = self.order
65
+
66
+ kind: Union[Unset, str] = UNSET
67
+ if not isinstance(self.kind, Unset):
68
+ kind = self.kind.value
69
+
70
+ title = self.title
71
+
72
+ description = self.description
73
+
74
+ icon_kind: Union[Unset, str] = UNSET
75
+ if not isinstance(self.icon_kind, Unset):
76
+ icon_kind = self.icon_kind.value
77
+
78
+ icon_name_or_emoji = self.icon_name_or_emoji
79
+
80
+ color_hex = self.color_hex
81
+
82
+ index: Union[None, Unset, int]
83
+ if isinstance(self.index, Unset):
84
+ index = UNSET
85
+ else:
86
+ index = self.index
87
+
88
+ started_at: Union[None, Unset, str]
89
+ if isinstance(self.started_at, Unset):
90
+ started_at = UNSET
91
+ elif isinstance(self.started_at, datetime.datetime):
92
+ started_at = self.started_at.isoformat()
93
+ else:
94
+ started_at = self.started_at
95
+
96
+ finished_at: Union[None, Unset, str]
97
+ if isinstance(self.finished_at, Unset):
98
+ finished_at = UNSET
99
+ elif isinstance(self.finished_at, datetime.datetime):
100
+ finished_at = self.finished_at.isoformat()
101
+ else:
102
+ finished_at = self.finished_at
103
+
104
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
105
+ if not isinstance(self.always_shown_property_duids, Unset):
106
+ always_shown_property_duids = self.always_shown_property_duids
107
+
108
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
109
+ if not isinstance(self.always_hidden_property_duids, Unset):
110
+ always_hidden_property_duids = self.always_hidden_property_duids
111
+
112
+ property_order_duids: Union[Unset, List[str]] = UNSET
113
+ if not isinstance(self.property_order_duids, Unset):
114
+ property_order_duids = self.property_order_duids
115
+
116
+ field_dict: Dict[str, Any] = {}
117
+ field_dict.update(self.additional_properties)
118
+ field_dict.update(
119
+ {
120
+ "duid": duid,
121
+ "spaceDuid": space_duid,
122
+ "order": order,
123
+ }
124
+ )
125
+ if kind is not UNSET:
126
+ field_dict["kind"] = kind
127
+ if title is not UNSET:
128
+ field_dict["title"] = title
129
+ if description is not UNSET:
130
+ field_dict["description"] = description
131
+ if icon_kind is not UNSET:
132
+ field_dict["iconKind"] = icon_kind
133
+ if icon_name_or_emoji is not UNSET:
134
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
135
+ if color_hex is not UNSET:
136
+ field_dict["colorHex"] = color_hex
137
+ if index is not UNSET:
138
+ field_dict["index"] = index
139
+ if started_at is not UNSET:
140
+ field_dict["startedAt"] = started_at
141
+ if finished_at is not UNSET:
142
+ field_dict["finishedAt"] = finished_at
143
+ if always_shown_property_duids is not UNSET:
144
+ field_dict["alwaysShownPropertyDuids"] = always_shown_property_duids
145
+ if always_hidden_property_duids is not UNSET:
146
+ field_dict["alwaysHiddenPropertyDuids"] = always_hidden_property_duids
147
+ if property_order_duids is not UNSET:
148
+ field_dict["propertyOrderDuids"] = property_order_duids
149
+
150
+ return field_dict
151
+
152
+ @classmethod
153
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
154
+ d = src_dict.copy()
155
+ duid = d.pop("duid")
156
+
157
+ space_duid = d.pop("spaceDuid")
158
+
159
+ order = d.pop("order")
160
+
161
+ _kind = d.pop("kind", UNSET)
162
+ kind: Union[Unset, DartboardKind]
163
+ if isinstance(_kind, Unset):
164
+ kind = UNSET
165
+ else:
166
+ kind = DartboardKind(_kind)
167
+
168
+ title = d.pop("title", UNSET)
169
+
170
+ description = d.pop("description", UNSET)
171
+
172
+ _icon_kind = d.pop("iconKind", UNSET)
173
+ icon_kind: Union[Unset, IconKind]
174
+ if isinstance(_icon_kind, Unset):
175
+ icon_kind = UNSET
176
+ else:
177
+ icon_kind = IconKind(_icon_kind)
178
+
179
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
180
+
181
+ color_hex = d.pop("colorHex", UNSET)
182
+
183
+ def _parse_index(data: object) -> Union[None, Unset, int]:
184
+ if data is None:
185
+ return data
186
+ if isinstance(data, Unset):
187
+ return data
188
+ return cast(Union[None, Unset, int], data)
189
+
190
+ index = _parse_index(d.pop("index", UNSET))
191
+
192
+ def _parse_started_at(data: object) -> Union[None, Unset, datetime.datetime]:
193
+ if data is None:
194
+ return data
195
+ if isinstance(data, Unset):
196
+ return data
197
+ try:
198
+ if not isinstance(data, str):
199
+ raise TypeError()
200
+ started_at_type_0 = isoparse(data)
201
+
202
+ return started_at_type_0
203
+ except: # noqa: E722
204
+ pass
205
+ return cast(Union[None, Unset, datetime.datetime], data)
206
+
207
+ started_at = _parse_started_at(d.pop("startedAt", UNSET))
208
+
209
+ def _parse_finished_at(data: object) -> Union[None, Unset, datetime.datetime]:
210
+ if data is None:
211
+ return data
212
+ if isinstance(data, Unset):
213
+ return data
214
+ try:
215
+ if not isinstance(data, str):
216
+ raise TypeError()
217
+ finished_at_type_0 = isoparse(data)
218
+
219
+ return finished_at_type_0
220
+ except: # noqa: E722
221
+ pass
222
+ return cast(Union[None, Unset, datetime.datetime], data)
223
+
224
+ finished_at = _parse_finished_at(d.pop("finishedAt", UNSET))
225
+
226
+ always_shown_property_duids = cast(List[str], d.pop("alwaysShownPropertyDuids", UNSET))
227
+
228
+ always_hidden_property_duids = cast(List[str], d.pop("alwaysHiddenPropertyDuids", UNSET))
229
+
230
+ property_order_duids = cast(List[str], d.pop("propertyOrderDuids", UNSET))
231
+
232
+ dartboard_create = cls(
233
+ duid=duid,
234
+ space_duid=space_duid,
235
+ order=order,
236
+ kind=kind,
237
+ title=title,
238
+ description=description,
239
+ icon_kind=icon_kind,
240
+ icon_name_or_emoji=icon_name_or_emoji,
241
+ color_hex=color_hex,
242
+ index=index,
243
+ started_at=started_at,
244
+ finished_at=finished_at,
245
+ always_shown_property_duids=always_shown_property_duids,
246
+ always_hidden_property_duids=always_hidden_property_duids,
247
+ property_order_duids=property_order_duids,
248
+ )
249
+
250
+ dartboard_create.additional_properties = d
251
+ return dartboard_create
252
+
253
+ @property
254
+ def additional_keys(self) -> List[str]:
255
+ return list(self.additional_properties.keys())
256
+
257
+ def __getitem__(self, key: str) -> Any:
258
+ return self.additional_properties[key]
259
+
260
+ def __setitem__(self, key: str, value: Any) -> None:
261
+ self.additional_properties[key] = value
262
+
263
+ def __delitem__(self, key: str) -> None:
264
+ del self.additional_properties[key]
265
+
266
+ def __contains__(self, key: str) -> bool:
267
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DartboardKind(str, Enum):
5
+ ACTIVE = "Active"
6
+ BACKLOG = "Backlog"
7
+ CUSTOM = "Custom"
8
+ FINISHED = "Finished"
9
+ NEXT = "Next"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)